我在PHP中有两个会话:
$_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;
}
有线索吗?
谢谢.
cookie只保存会话ID,session_start();因此如果您在脚本中调用用户将始终拥有会话ID,则始终会创建一个ID.
你最好的选择是添加第二个cookie:
setcookie('session_key',md5 ($token . $userAgent . $ip));
然后在nginx内:
if ($http_cookie ~* "session_key")
{
    break;
}
检查是否设置了cookie.
如果哈希是敏感的,那么这样做:
setcookie('session_key_active','1');
然后在Nginx:
if ($http_cookie ~* "session_key_active")
{
    break;
}
但这仍然很脆弱,总是检查服务器端值匹配!
| 归档时间: | 
 | 
| 查看次数: | 7236 次 | 
| 最近记录: |