Php 检查会话(Nginx)是否存在

Php 检查会话(Nginx)是否存在,php,session,nginx,Php,Session,Nginx,我有两个PHP会话: $_SESSION["session"]["key"] = md5 ($token . $userAgent . $ip); $_SESSION["session"]["timeout"] = time (); 只想检查使用nginx的会话是否已尝试此代码,但未成功: location / { if ($request_filename ~* "index.php") { break; } if ($http_cookie ~*

我有两个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,总是在
会话启动()时创建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;
}

但这仍然容易受到攻击,请始终检查服务器端值是否匹配

谢谢你帮我,但我不能把“钥匙”放进饼干里,任何人都可以得到,安全原因。