正确执行会话劫持预防


Implementing Session Hijacking prevention, properly

我对Web开发非常陌生,我读过CSRF, XSS和会话劫持。一个建议的解决方案是简单地使用nonce来检查请求的有效性。我用PHP编写这个脚本是为了防止会话劫持。我认为它在精神上类似于重新生成会话ID,在标识符中,或者它们的组合(会话ID和nonce)在每个请求中都被更改。

if(!isset($_SESSION["user"]["nonce"]) || 
   $_SESSION["user"]["nonce"] == $_COOKIE["SITE_nonce"])
{
    $nonce = md5(uniqid());
    $_SESSION["user"]["nonce"] = $nonce
    setcookie("SITE_nonce", $nonce, 0, "/path");
}
else
    die("Invalid Request");

这就够了吗?我真的不知道我是否能负担得起SSL,我知道它将是会话劫持的一个很好的解决方案,但我希望对这种方法有一些了解。我错过什么了吗?

这确实是一个常见的问题,以前已经讨论过很多次了。我建议您访问安全页面,如http://owasp.com/index.php/Main_Page,以获得一堆非常好的指南。

至于你的实现:你也可以存储一些哈希,你产生的第一次人来得到一个会话和一个IP。我也想一个很好的时间饼干。