我有这个代码:
if (isset( $_SESSION['user_agent'] )) {
if ($_SESSION['user_agent'] != md5( $_SERVER['HTTP_USER_AGENT'] )) {
die('Session error.');
}
}
一切正常。但是每次我登录(每 24 小时一次)时,我都会收到错误消息。用户代理是改变还是什么?
谢谢你的帮助。
我有这个代码:
if (isset( $_SESSION['user_agent'] )) {
if ($_SESSION['user_agent'] != md5( $_SERVER['HTTP_USER_AGENT'] )) {
die('Session error.');
}
}
一切正常。但是每次我登录(每 24 小时一次)时,我都会收到错误消息。用户代理是改变还是什么?
谢谢你的帮助。
会话的生命周期有限http://www.php.net/manual/en/session.configuration.php通常是几分钟或几个小时
一旦经过身份验证的用户出现,任何能够劫持会话(即通过嗅探未加密的 HTTP)的人都拥有通往王国的钥匙。
HTTP_USER_AGENT
? 是的,这也是明文发送的,攻击者可以欺骗它。任何窃取/欺骗会话 cookie 的 MitM 应用程序通常也会冒充用户浏览器的用户代理。
这里唯一的解决方案是 HTTPS,多亏了Let's Encrypt ,它现在是免费的。