sách gpt4 ai đã đi

.net - 为什么 ValidateAntiForgeryTokenAttribute 允许匿名 token ?

In lại 作者:行者123 更新时间:2023-12-05 00:54:14 hai mươi bốn 4
mua khóa gpt4 Nike

在 ASP.NET MVC 中,ValidateAntiForgeryTokenAttribute 调用的验证逻辑允许匿名防伪 token ,即没有任何用户特定信息(如 IIdentity.Name 或 ClaimUid)的 token 。

因此,如果未使用声明且登录后未设置 HttpContext.User(并不少见),则系统的恶意用户可以使用恶意用户自己合法获取的防伪 token 对任何其他用户发起 CSRF 攻击。

这似乎并不可取。为什么允许匿名 token ?

1 Câu trả lời

MVC 中的反 CSRF 系统允许匿名用户,因为 需要保护登录页面 ,根据定义,您在登录之前是匿名的。特别是,它试图防御的攻击是 Login CSRF .

由于反 CSRF token 分布在 HTTP cookie 和隐藏的 元素中,因此攻击者是否能够实现登录 CSRF 取决于他所在的位置。当然 - 您可以说服我的浏览器提交包含您的 token 的

,但我的浏览器会将我的 cookie 与请求一起提交给服务器。 cookie 和表单标记不仅仅编码字符串“anonymous”:它们还包含将两者链接在一起的随机标识符。在这种情况下,您仍然无法对我发起登录 CSRF 攻击,因为您不知道我的 cookie 中包含的随机标识符。

如果攻击者与目标网站共享一个域(例如,attacker.shareddomain.com 和 bank.shareddomain.com),那么攻击者可以为 *.shareddomain.com 设置一个 cookie 并用他自己的一个覆盖受害者的 cookie选择。这将允许发生 CSRF 攻击。您需要另一种机制(如 2FA 或 HTML5 本地存储)来防止共享子域场景中的 CSRF 攻击。

关于.net - 为什么 ValidateAntiForgeryTokenAttribute 允许匿名 token ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26336435/

hai mươi bốn 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com