我在我的网站上的每个发布方法中都实现了 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/