asp.net-mvc – 什么是防伪令牌盐的使用?
在ASP.NET MVC 1.0中,有一个处理跨站点请求伪造安全问题的新功能:
<%= Html.AntiForgeryToken() %> [ValidateAntiForgeryToken] public ViewResult SubmitUpdate() { // ... etc } 我发现以html形式生成的令牌每次呈现新的表单时都会保持更改. 我想知道这些令牌是如何生成的?而当使用某些软件扫描本网站时,会报告另一个安全问题:会话固定.为什么?由于令牌保持改变,这个问题怎么来了? 另外还有另一个功能,那就是antiForgeryToken的“salt”,但是我真的知道这是什么用的,即使我们不使用“salt”来生成令牌,令牌会一直改变,所以为什么这样的功能? 解决方法
这里有很多关于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/) 防伪令牌通过在每次生成页面时创建一个附加的cookie标记来防止这种形式的攻击.令牌既是表单,也是cookie,如果表单和cookie不匹配,我们就会遇到一个CSRF攻击(攻击者无法使用上述攻击来读取防伪令牌). 从上面的文章,盐做什么呢?
更新:令牌如何生成?下载source,并查看AntiForgeryDataSerializer,AntiForgeryData类. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 允许使用数字中的点和逗号,而不仅仅是小数
- asp.net-mvc – 用于大型视频文件的MVC ActionResult
- asp.net-mvc – 保存为“BodyPart_3ded2bfb-40be-4183-b789
- asp.net-mvc-3 – 访问帮助程序中的全局页面变量
- asp.net core 3.0 中使用 swagger
- Asp.net mvc将C#对象传递给Javascript
- asp.net – 如何使用Ninject注入依赖项,其中实例从json反序
- asp.net-web-api – Net Web API – 如何在Get上传递URL作为
- AutoMapper系列:介绍、使用
- C# HttpClient设置cookies的两种办法
- asp.net-mvc – ASP.NET MVC 4 Web Api和REST经典
- asp.net – 触发OWIN cookie中间件设置为被动身份
- asp.net-mvc-2 – JavaScriptSerializer没有正确
- ASP.Net Core MVC中的OutputCache
- asp.net – 当使用HttpContextScoped()时,Struct
- asp.net-mvc – IdentityDbContext vs Reb的DbCo
- asp.net – Gridview在分页后不维护排序
- asp.net-mvc – 在ASP.NET MVC 3中使用HtmlHelpe
- asp.net-mvc – 将HTML.EditorFor转换为下拉列表
- asp.net-mvc – 如何使用ASP.NET MVC 3编辑IEnum