2

我是 Web 开发的新手,我阅读了有关 CSRF、XSS 和会话劫持的信息。一种建议的解决方案是简单地使用 anonce来检查请求的有效性。我用 PHP 编写了这个脚本来防止会话劫持。我认为它在精神上类似于重新生成会话 ID,因为标识符或它们的组合(会话 ID 和随机数)在每次请求时都会更改。

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,而且我知道这将是会话劫持的一个很好的解决方案,但我希望对这种方法有所了解。我错过了什么吗?

4

1 回答 1

0

这确实是一个常见问题 - 之前讨论过很多次。我建议您访问诸如http://owasp.com/index.php/Main_Page之类的安全页面以获取大量非常好的指南。

至于您的实现:您还可以存储某种哈希值,当人们第一次来获取会话和 IP 时生成这些哈希值。我也想在饼干上度过一段美好的时光。

于 2011-08-24T06:42:58.280 回答