gpt4 book ai didi

php - 生成的 CSRF token 太多(PHP),我该如何处理?

转载 作者:可可西里 更新时间:2023-11-01 01:03:55 32 4
gpt4 key购买 nike

我遇到了一个问题。按照 OWASP 备忘单,我在 PHP 中实现了一个一次性使用的 CSRF token 系统(基本上是从 OWASP 复制和粘贴)。每个表单或链接(生成某些操作的链接)都会创建自己的 CSRF token ,一旦使用,就会被删除。应用程序是一个网站,因此可以同时打开多个选项卡。

问题是每次加载页面时,它都会创建一个新的 CSRF token (即使您只是点击重新加载而不发送表单)。例如,在管理面板中,有一个项目列表,每个项目都可以删除一个带有 CSRF token 的链接(所有链接都使用相同的 CSRF token ),但是如果您重新加载页面,则会生成一个新的 csrf。

在一天结束时,我得到的未使用 token 比我想要的要多。这是某些服务器的问题。

TLDR;我为每个请求生成一个 token 。我删除了所有使用过的 token (ajax 请求 token 除外,一个小时后我删除了)。我的问题是未使用的代币,归根结底,它们太多了。

最佳答案

没有(实用的)方法可以知道您的用户是否仍会使用该 token 。因此,您必须在 x 小时后自动删除(并因此使它们失效),例如使用 cronjob。

只是一个建议:你确定你真的需要一次性代币吗? OWASP 自己说这对于安全来说并不是绝对必要的:“一般来说,开发人员只需要为当前 session 生成一次此 token 。[...]) ( https://www.owasp.org/index.php/Cross-Site_Request_Forgery_%28CSRF%29_Prevention_Cheat_Sheet )。

请记住,一次性 token 也会使标签式浏览或使用浏览器历史记录变得非常痛苦。

关于php - 生成的 CSRF token 太多(PHP),我该如何处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15829977/

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