gpt4 book ai didi

asp.net - 了解 ASP.NET MVC 防伪保护

转载 作者:行者123 更新时间:2023-12-02 00:14:36 26 4
gpt4 key购买 nike

在我所有表单都有 @Html.AntiForgeryToken() 的基本 MVC 项目中,我见证了 所有 特定表单的 token (cookie)值始终相同用户 session 。这是为什么?我部分理解(否则会有很多问题,例如后退按钮)。但为什么不使用“盐”使不同的形式不同:

"This method is deprecated. Use the AntiForgeryToken() method instead. To specify custom data to be embedded within the token, use the static AntiForgeryConfig.AdditionalDataProvider property."

为什么这么大(在我的示例中为 207 个字节,用户身份名称为 7 个字符)?标准 session ID 短得多 (41)。

最佳答案

它只需要对用户 session 唯一的原因是由于针对 CSRF 漏洞的利用的工作原理;

本质上,CSRF 依赖于恶意用户提前设置的表单值。恶意用户只能设置表单值,通常作为 GET 参数;他们无法获取/读取可能存在于合法表单中的值,并且他们无法可靠地为任何用户猜测 207 长度的代码。

如果存在 XSS 漏洞,恶意用户可以通过某种方式获取此“实时”信息,则属于异常(exception)情况。但是由于存在 XSS 漏洞,无论如何都没有必要使用 CSRF。

因此,只要每个用户 session 都有其独特的值(value),恶意用户就不可能提前制作适当的表单提交。

关于asp.net - 了解 ASP.NET MVC 防伪保护,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13869942/

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