【问题标题】:PHP Session Hijacking Detected检测到 PHP 会话劫持
【发布时间】:2013-01-17 18:11:04
【问题描述】:

我有这个代码:

if (isset( $_SESSION['user_agent'] )) {
    if ($_SESSION['user_agent'] != md5( $_SERVER['HTTP_USER_AGENT'] )) {
        die('Session error.');
    }   
}

一切正常。但是每次我登录(每 24 小时一次)时,我都会收到错误消息。用户代理是否发生了变化?

感谢您的帮助。

【问题讨论】:

  • 您的会话可能会过期
  • 您确定在您的代码中的任何其他点都没有显示错误吗?如果未设置$_SESSION['user_agent'] 会怎样?
  • 感谢您的回复,虽然错误只会显示如果会话已设置。
  • Chrome 我听说后台有更新,用户代理字符串也发生了变化。
  • @Jack 设置好了。为了简单起见,我只是删除了那部分。

标签: php security session session-hijacking


【解决方案1】:

一旦经过身份验证的用户出现,任何能够劫持会话(即通过嗅探未加密的 HTTP)的人都拥有通往王国的钥匙。

HTTP_USER_AGENT?是的,这也是明文发送的,攻击者可以欺骗它。任何窃取/欺骗会话 cookie 的 MitM 应用程序通常也会冒充用户浏览器的用户代理。

这里唯一的解决方案是 HTTPS,感谢Let's Encrypt,它现在是免费的。

【讨论】:

    【解决方案2】:

    会话的生命周期有限 http://www.php.net/manual/en/session.configuration.php 通常是几分钟或几小时

    【讨论】:

    • 感谢您的回复,虽然错误只会显示如果会话已设置。
    猜你喜欢
    • 2011-09-22
    • 1970-01-01
    • 2011-12-09
    • 2011-07-02
    • 1970-01-01
    • 2012-02-20
    • 2013-10-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多