这对CSRF保护是否足够:
$_SESSION['hash']
存储$_POST['thing']
中)包含随机字符串$_SESSION['hash']
是否等于$_POST['thing']
,如果匹配则继续我网站的一位用户一直告诉我,我的网站容易受到攻击,但我不知道他是否只是在拖我。还有什么我可以做的吗?
答案 0 :(得分:3)
我认为您缺少的是将令牌限制在较短的时间窗口内。
你应该看看Chris's CRSF-article。快速摘要:
答案 1 :(得分:1)
如果它对每个用户都是唯一的,那么它就足够了。即使用户会话持续时间相同,它仍然可以,但我建议定期重新生成它。 此外,您可能希望每个表单使用不同的标记。例如,如果您有登录表单和注释表单,最好为它们使用不同的令牌,但这不是100%必要的。
为什么你认为只是因为有人说你的网站容易受到攻击,这与CSRF附加有关?它们是许多其他可能的漏洞。
也许你的网络服务器已经过时且易受攻击,也许php版本不是最新版本。也许用户可以通过ssh或telnet登录到您的服务器。也许用户能够猜出管理员密码。
也许让人们通过cookie登录并在cookie中存储登录凭据。
除了CSRF之外,还有太多可以被利用的东西。还有可能是用户错了或者不知道他在说什么,或者他只是想让你紧张。
答案 2 :(得分:1)
每次加载页面时,如果尚未设置,则会更改。
那么你有问题。一旦检索到令牌,就可以进一步轻松地执行所有操作。我通常将令牌实现为对单个请求有效,然后重新生成它。
答案 3 :(得分:0)
来自:http://en.wikipedia.org/wiki/Cross-site_request_forgery
然而你的秘密钥匙仍然比没有好......