ForJest
- свежая кровь
Улучшенная авторизация с помощью сессий
Многие делали авторизацию с помощью сессий. Меня интересует, кто какие приемы использует для более точной идентификации пользователя.
Мой пример
-----------------------
auth_func.inc.php
-----------------------
--------------
login.php
--------------
-----------
restr.php
-----------
-----------------------
В общем используются возможные поля из заголовка запроса. Кто еще что использует или какие использует приемы для повышения уровня точности авторизации?
Кто что может сказать плохого о моем способе?
Использует ли кстати кто-нибудь
session.referer_check ?
P.S. наверное нужно было постить в секьюрити. Сорри.
Многие делали авторизацию с помощью сессий. Меня интересует, кто какие приемы использует для более точной идентификации пользователя.
Мой пример
-----------------------
auth_func.inc.php
-----------------------
PHP:
function AuthHash()
{
return md5(
$_SERVER["REMOTE_ADDR"].
(string)@$_SERVER["HTTP_USER_AGENT"].
(string)@$_SERVER['HTTP_ACCEPT_CHARSET'].
(string)@$_SERVER['HTTP_ACCEPT_ENCODING'].
(string)@$_SERVER['HTTP_ACCEPT_LANGUAGE'].
(string)@$_SERVER['HTTP_X_FORWARDED_FOR']
);
}
login.php
--------------
PHP:
session_start();
require_once("auth_func.inc.php");
if (<новая авторизация>)
{
$_SESSION["customer"] = array(
"id" => $id_customer,
"info"=> AuthHash());
}
if (!empty($_SESSION["customer"]["id"]) &&
(AuthHash() == $_SESSION["customer"]["info"]))
{
header("Location: restr.php");
exit();
}
restr.php
-----------
PHP:
session_start();
require_once("auth_func.inc.php");
if (empty($_SESSION["customer"]["info"]) ||
AuthHash()!=$_SESSION["customer"]["info"])
{
Header("location: login.php");
exit();
}
В общем используются возможные поля из заголовка запроса. Кто еще что использует или какие использует приемы для повышения уровня точности авторизации?
Кто что может сказать плохого о моем способе?
Использует ли кстати кто-нибудь
session.referer_check ?
P.S. наверное нужно было постить в секьюрити. Сорри.