两个问题。
哪里可以下载 OWASP 的 CSRF Guard 的 PHP 版本?以下 URL 表示要检查 Git:
https://www.owasp.org/index.php/PHP_CSRF_Guard
然而,我在 Git 上看到的只是 *.java 文件和 *.js 文件。如果有 PHP 文件,它们在目录结构中的什么位置?
phpBB 通过向所有表单添加两个隐藏参数来防止 CSRF。时间和时间的 SHA1 哈希、每个用户的“表单盐”、会话标识符和表单名称。来源:
我的问题是......为什么除了盐以外的其他东西是必需的?为了防止 CSRF,您只需要一个攻击者无法预测的随机字符串,这样他们就无法盲目发送 HTTP 请求,而盐的形式在我看来可以解决问题。将其与其他所有内容一起散列似乎没有必要。
也许他们的动机是,如果有人复制/粘贴页面的 HTML 内容,盐形式可能会受到损害?也许它打算在未来证明它?如果直接使用盐形式,则 XSS 漏洞将永久损害 CSRF 保护,而使用时间散列并且盐形式可以防止这种情况。
另外,如果盐只有两个字符左右,我可以理解做 sha1() 哈希但是两个字符长的盐是不安全的,因为此时您需要做的就是发送 256**2 个盲 HTTP 请求,每个请求都有一个不同的令牌。但它也不是两个字符长。