我在努力防止CSRF攻击。我在会话和表单中存储了一个随机值。在处理表单时,我比较了这两个值。如果会话和表单的值不相等,我应该终止脚本,还是有更好的方法来处理这个问题?
发布于 2011-04-24 17:55:05
如果这不太可能发生在真正的用户身上,那么我会阻止脚本保存/返回任何数据,但我会返回一条“成功”消息,就好像它已经成功了一样。如果你返回一个失败,它会帮助黑客找出你的验证是如何编码的。
另一方面,如果这发生在真正的用户身上,我会返回一个友好的错误,并可能要求他们重新登录。
发布于 2011-04-24 17:55:26
是。就让它失败吧。恢复这些错误是没有意义的。
但是,您还应该编写一个日志条目来审核潜在的利用漏洞尝试:
syslog(LOG_ERR, "CSRF token mismatch ...");
die("Request failed. (Disabled cookies?) Contact administrator: ...");包括一条humd可读消息,以防它真的是浏览器错误或其他原因。但是不要暴露出失败的是CSRF令牌。
https://stackoverflow.com/questions/5769810
复制相似问题