gpt4 book ai didi

security - 在单个页面上为多个表单生成 CSRF token

转载 作者:行者123 更新时间:2023-12-04 01:51:54 25 4
gpt4 key购买 nike

我目前正在生成一个 CSRF我的表单中的 token 以防止跨站点请求伪造。看起来像:

<form method="post" action="action.php">
<input type="hidden" id="security_token" name="security_token" value="gTt96phAcretR99rafEjepHebrEZadEdezadagaZ3gAS5es33WReJeZaMADU2AWr" />
...
</form>

问题是我在一个页面上有多个表单。我是否必须为每个表单创建一个安全 token ,以便 security_token_1 , security_token_2 ,或者我可以简单地而不是在表单内生成安全 token ,而是将其附加到整个 body 的属性中标签如:
<body data-csrf-token="gTt96phAcretR99rafEjepHebrEZadEdezadagaZ3gAS5es33WReJeZaMADU2AWr">
...
</body>

这在任何方面都不安全吗?它大大简化了事情,因为我可以简单地将安全 token 附加到 body 元素而不是处理多个安全 token 。

感谢您的见解和评论。

最佳答案

真的没有任何理由不能为两种表单生成相同的 token ,每个表单中的每个隐藏字段都具有相同的 name属性。

毕竟,您真正要验证的是,表单请求是来自具有有效 session 的用户的入站请求,并且一次只会主动发布一个表单。因此,您将发布的 token 与为用户存储在 session 中的 token 进行比较。为了做到这一点,不需要超过一个 token 值。

对于需要根据 AJAX 帖子更新 token 的情况,您需要做的是,如您所说,将新创建的 token 传递回 AJAX 响应,然后将隐藏字段值更新为新的 token 值。

关于security - 在单个页面上为多个表单生成 CSRF token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14715250/

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