我在PHP中有两个会话:
$_SESSION["session"]["key"] = md5 ($token . $userAgent . $ip);
$_SESSION["session"]["timeout"] = time ();
Run Code Online (Sandbox Code Playgroud)
只想检查与nginx的会话,尝试此代码但没有成功:
location / {
if ($request_filename ~* "index.php") {
break;
}
if ($http_cookie ~* "session") {
break;
}
rewrite ^.+$ https://localhost/index.php last;
}
Run Code Online (Sandbox Code Playgroud)
有线索吗?
谢谢.
cookie只保存会话ID,session_start();因此如果您在脚本中调用用户将始终拥有会话ID,则始终会创建一个ID.
你最好的选择是添加第二个cookie:
setcookie('session_key',md5 ($token . $userAgent . $ip));
Run Code Online (Sandbox Code Playgroud)
然后在nginx内:
if ($http_cookie ~* "session_key")
{
break;
}
Run Code Online (Sandbox Code Playgroud)
检查是否设置了cookie.
如果哈希是敏感的,那么这样做:
setcookie('session_key_active','1');
Run Code Online (Sandbox Code Playgroud)
然后在Nginx:
if ($http_cookie ~* "session_key_active")
{
break;
}
Run Code Online (Sandbox Code Playgroud)
但这仍然很脆弱,总是检查服务器端值匹配!
| 归档时间: |
|
| 查看次数: |
7236 次 |
| 最近记录: |