gpt4 book ai didi

security - 刷新CSRF token

转载 作者:行者123 更新时间:2023-12-02 21:20:17 29 4
gpt4 key购买 nike

我正在尝试实现一个用户友好的反CSRF机制。

  1. 目前,我的应用程序使用反 csrf token 设置 cookie 和 session 变量,并将其发送给用户。
  2. 每当用户发出不安全的请求(POST、DELETE、PUT)时,javascript 都会读取 cookie 并将 token 添加到通过 ajax 请求发送的表单中
  3. 在服务器上,表单值与 session 包含的值进行比较。

问题是我的应用程序将在多个选项卡中打开,并且 token 很可能会在服务器上过期。

从服务器文件中获取新的 csrf token 是一个好习惯吗?获取-csrf-token.php因为无论如何,攻击者无法读取跨站点请求的响应(考虑到 jsonp 和 cors 被禁用)

编辑:我计划保持每个 session 每小时单个 CSRF token 有效,并且 Web 应用程序将在一小时后重新请求新 token

这种方法有什么问题吗?

最佳答案

每个用户 session 仅需要一个 CSRF token 。由于同源策略,任何攻击者都无法读取 token ,因此您无需刷新 token ,直到下一个 session 处于事件状态。这意味着您的应用程序在多个选项卡中打开不会出现问题。

您的方法是 Synchronizer Token Pattern 的实现CSRF保护机制,这是OWASP推荐的方式。由于 JavaScript 用于将值添加到请求中,因此您无法将 Cookie 标记为 httpOnly。这可以防止任何 XSS 漏洞让攻击者获取您的 cookie 值。但是,如果您确实存在任何 XSS 漏洞,这些漏洞比 CSRF 漏洞稍微严重一些,无论如何都应该立即解决,因为一旦发现 XSS 缺陷,还会有其他攻击媒介。

请参阅这篇文章,了解一些 CSRF 机制的优点和缺点:Why is it common to put CSRF prevention tokens in cookies?

关于security - 刷新CSRF token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28149913/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com