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 – 自定义Web字体在IE9中不起作用
- asp.net-mvc – ASP.NET MVC应用程序中的“坏二进制签名”
- asp.net – 我可以在服务器端调用CustomValidator方法而无需
- asp.net – 插入后在实体框架中获取记录ID
- asp.net – Visual Studio 2015的项目模板
- asp.net-mvc – 在MVC 3中写入只读会话
- ASP.NET网址MAX_PATH限制
- asp.net – NuGet:’X’已经有一个依赖定义为’Y’
- asp.net-mvc – 什么可能导致一个503服务不适用于asp.net m
- ASP.NET验证摘要:如何使用JavaScript禁用验证程序?
