- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 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/
当我尝试在 ASP.net Web 应用程序上运行性能测试时,我总是收到“防伪 cookie token 和表单字段 token 不匹配”。或者“无法解密防伪 token 。如果此应用程序由网络场或集
我有一个发布到 Azure 的 MVC Web 应用程序。由于在编辑 View 中包含@html.antiforgerytoken(),每当我单击编辑操作链接时,我都会收到错误。所以我删除了 View
我有 2 个 Web 应用程序项目,都位于 TFS 源代码管理中。第一个项目不会导致 AntiForgery token 出现问题。 这是错误 System.Web.WebPages.dll 中发生“
我有一个应该是 iFramed 的 MVC View 。它的多个实例可能在同一个主机页面中被 iFramed。在我看来,我有这个: @Html.AntiForgeryToken() 我用它来尝试确保对
我们使用 ASP.NET MVC 的默认防伪技术。最近一家安全公司对表格进行了扫描,并注意到他们可以多次使用相同的 _RequestVerificationToken 组合(cookie + 隐藏字段
我在使用防伪 token 时遇到问题 :(我已经创建了自己的 User 类,它运行良好,但现在每当我转到 /Account/Register 页面时都会收到错误消息。错误是: A claim of t
我正在使用 ASP.NET Identity 登录的应用程序中开发注销功能。我可以成功登录,但是当我注销然后尝试再次登录时,我收到以下消息: The provided anti-forgery tok
定义 ValidateAntiForgeryToken 属性时。盐的复杂度应该是多少? 例如,超过 X 个字符的字母数字字符是否合适?是否也应该有符号。 [ValidateAntiForgeryTok
我有一个问题,我最近在我的所有表单中都放置了防伪 token ,并在我的 Controller 中放置了 ValidateAntiForgeryToken 属性。 但我的用户经常填写表格,然后返回浏览
在没有 ssl 的情况下向服务器发出请求时,我实际上可以以纯文本形式看到 MVC3 框架生成的验证 token key 。 此 key 存储在名为:_RequestVerificationToken_
我们在 ASP.NET MVC 4 站点上使用 Amazon EC2 Elastic Beanstalk,并且在用户尝试登录后收到错误消息: The anti-forgery token could
我有一个表格: @using (Html.BeginForm(new { ReturnUrl = ViewBag.ReturnUrl })) { @Html.AntiForgeryToken() @H
在 nim 中,jester 模块提供 Web API 服务,我对此表示感谢,但是我们是否支持跨站点防伪造 token ? (针对CSRF攻击) 就像 ASP.net 提供的那样。 最佳答案 没有。有
在 ASP.NET MVC 1.0 中,有一个新功能用于处理跨站请求伪造安全问题: [ValidateAntiForgeryToken] public ViewResult SubmitUpdat
我正在运行 IIS7、.NET 4.5 并且有一个 MVC2 站点。 我收到错误消息“此操作需要 IIS 集成管道模式。”当我导航到一个页面(一个 aspx View )时,上面有一个带有 AntiF
我收到以下错误: {"A claim of type 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier' or
我的 Web Api 站点有一个 AccountController,它使用登录的默认实现: // POST: /Account/Login [HttpPost] [AllowAnonymous] [
我正在尝试在 VS2012 中为 MVC 站点进行 Web 测试。 其中一种情况是登录并浏览产品列表,选择您想要的产品并进入购买页面。 问题是当 web 测试运行时,我收到一个关于防伪 token 的
您好,我可以像这样使用 vue js axios 将帖子发送到 Asp .NET Core 2.2 中的 Controller axios({
我正在使用 ELMAH 来处理我的 MVC 站点中的错误,并且在过去的几周里我注意到我抛出了一些 CryptographicExceptions。消息是: System.Security.Crypto
我是一名优秀的程序员,十分优秀!