php - CSRF token 多选项卡问题

标签 php security post csrf csrf-protection

我在我的网站上的每个发布方法中都实现了 CSRF token 。 但是当我在不同的选项卡中访问我的网页时,两个页面上的 token 都会发生变化并且 token 不匹配。 我的 token 存储在 DOM 中,我正在使用 SESSION 匹配 token 。 怎么解决?

最佳答案

i change the token on every successful request

是的,这就是为什么我们不会在每次成功请求时使 token 无效。这不仅会破坏多标签浏览,还意味着您无法执行诸如点击后退按钮然后提交之类的操作。

“每次请求都使 token 无效”是您从渗透测试报告中获得的一种虚假安全建议,测试人员在这些报告中并未发现太多真正容易受到攻击的地方。无论您是否这样做,这都是一种权衡,但可用性的缺点几乎总是超过最小的安全优势。

您只真的需要在特权级别更改时使 CSRF token (连同 session token )无效,尤其是在登录时。这可以防止在登录前知道 session 和 CSRF token 的攻击者在您登录后利用这些 token ,从而减轻 session 固定攻击。

关于php - CSRF token 多选项卡问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19946981/

相关文章:

java 和 phpseclib、RSA 和 OAEP?

jquery - 使用 jQuery 在发布之前修改 POST 变量

php - AFNetworking PostPath php 参数为空

php - (php)导入.sql并添加列(如果表存在)或创建新表

php - 我可以在 PHP 函数 exec() 中使用 linux 内置实用程序 compgen 吗?

php - mysql_real_escape_string() 和 mysql_escape_string() 是否足以保证应用安全?

java - 安装 SSL 证书后站点显示 'Not Secure'

python - 处理 POST 请求 Flask

php - Bigcommerce产品API

php - 用于密码存储的 SHA1 哈希有什么好的替代方案?