2012-07-04 46 views
1

上一个PHP项目我正在努力,我想实施一个反XSRF机制。我生成一个随机令牌,并将其存储在我的会话$_SESSION['token']中。当我提交表单时,我会将我的会话令牌包含在隐藏字段中,并验证transmitted token == stored tokenXSRF令牌应该存储在cookie中还是会话中?

我的问题是,如果我将此令牌存储在cookie中,安全影响如何?

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

感谢您的帮助。

回答

1

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

需要考虑的主要问题是,只有在将收到的令牌与您的(cookie/session)进行匹配之后,POST才能成功。换句话说,页面请求不应该是自包含的。

这些可能是有趣:

而本文介绍CSRF + XSS攻击:
https://www.htbridge.com/publications/xss_csrf_practical_exploitation_of_post_authentication_vulnerabilities_in_web_applications.html

相关问题