2010-08-22 2 views
2

У меня есть две сессии в PHP:Проверьте наличие сессии (Nginx)

$_SESSION["session"]["key"] = md5 ($token . $userAgent . $ip); 
$_SESSION["session"]["timeout"] = time(); 

Просто хочу, чтобы проверить, что занятия с Nginx, попробовал этот код без успеха:

location/{ 
    if ($request_filename ~* "index.php") { 
     break; 
    } 

    if ($http_cookie ~* "session") { 
     break; 
    } 

    rewrite ^.+$ https://localhost/index.php last; 
} 

Все ключи ?

Спасибо.

ответ

5

Файл cookie содержит только идентификатор сеанса, идентификатор всегда создается по адресу session_start();, поэтому, если вы вызываете, что в вашем скрипте пользователь всегда будет иметь идентификатор сеанса.

ваш лучший выбор слишком добавить второе печенье:

setcookie('session_key',md5 ($token . $userAgent . $ip)); 

затем в Nginx:

if ($http_cookie ~* "session_key") 
{ 
    break; 
} 

, чтобы проверить, что куки установлен.

Если хэш чувствителен, то сделать это:

setcookie('session_key_active','1'); 

Тогда в Nginx:

Но это по-прежнему уязвимы, всегда проверяйте матч стороне сервера значения!

+0

Спасибо, что помогли мне, но я не могу положить ключ в файл cookie, любой может получить это, соображения безопасности. – Caio

+0

Nevermind я запутался: S – Caio

+0

снова прочитал, небольшое обновление – RobertPitt

Смежные вопросы