gpt4 book ai didi

asp.net-mvc - 防伪 token 盐有什么用?

转载 作者:行者123 更新时间:2023-12-01 23:19:17 26 4
gpt4 key购买 nike

在 ASP.NET MVC 1.0 中,有一个新功能用于处理跨站请求伪造安全问题:

 <%= Html.AntiForgeryToken() %>
[ValidateAntiForgeryToken]
public ViewResult SubmitUpdate()
{
// ... etc
}

我发现每次呈现新表单时,以 html 表单生成的 token 都会不断变化。

我想知道这些token是如何生成的?并且当使用某些软件扫描该站点时,它会报告另一个安全问题: session 已修复。为什么?既然token一直在变,怎么会出现这个问题呢?

还有另一个函数,即 antiForgeryToken 的“salt”,但我真的知道它的用途,即使我们不使用“salt”来生成 token , token会一直变化,为什么要有这样的功能呢?

最佳答案

这里有关于 AntiForgeryToken 的大量信息:http://blog.codeville.net/2008/09/01/prevent-cross-site-request-forgery-csrf-using-aspnet-mvcs-antiforgerytoken-helper/

这是为了防止跨站请求伪造 (CSRF)。单击“保存”提交表单并在服务器上执行某些操作(即保存用户的详细信息)是非常标准的行为。您如何知道提交表单的用户就是他们声称的用户?在大多数情况下,您会使用一些 cookie 或基于 Windows 的身份验证。

如果攻击者引诱您访问一个在隐藏的 IFRAME 中提交完全相同表单的网站,该怎么办?您的 cookie 会完整提交,并且服务器不会将该请求视为与合法请求有任何不同。 (gmail 发现:http://www.gnucitizen.org/blog/google-gmail-e-mail-hijack-technique/)

防伪造 token 通过在每次生成页面时创建额外的 cookie token 来防止这种形式的攻击。 token 同时存在于表单和 cookie 中,如果表单和 cookie 不匹配,我们就会遭受 CSRF 攻击(因为攻击者将无法使用上述攻击读取防伪 token )。

从上面的文章来看,盐有什么作用:

Salt is just an arbitrary string. A different salt value means a different anti-forgery token will be generated. This means that even if an attacker manages to get hold of a valid token somehow, they can’t reuse it in other parts of the application where a different salt value is required.

更新: token 是如何生成的?下载source ,并查看 AntiForgeryDataSerializer、AntiForgeryData 类。

关于asp.net-mvc - 防伪 token 盐有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1402770/

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