1

在我正在做的一个PHP项目中,我想实现一个反XSRF机制。我正在生成一个随机令牌并将其存储在我的会话中$_SESSION['token']。当我提交表单时,我将会话令牌包含在隐藏字段中并验证transmitted token == stored token.

我的问题是,如果我将此令牌存储在 cookie 中会产生什么安全影响?

我认为这两种解决方案都可以利用,XSS例如,我无法看到哪种存储最适合令牌。

谢谢你的帮助。

4

1 回答 1

1

如果您按照正常程序生成令牌(类似于sha1( $username.$private_per_session_passphrase)),我认为这没有太大区别,您可以将令牌放入 cookie 或会话变量中,并且您应该清除 CSRF 漏洞。

要考虑的主要事情是,在您将收到的令牌与您的令牌(cookie/会话)匹配之前,POST 无法成功。换句话说,页面请求不应该是自包含的。

这些可能很有趣:

并且这篇论文描述了 CSRF + XSS 攻击:
https ://www.htbridge.com/publications/xss_csrf_practical_exploitation_of_post_authentication_vulnerabilities_in_web_applications.html

于 2012-07-04T14:53:43.187 回答