栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

ASP.NET MVC中的AntiForgeryToken是否可以防止所有CSRF攻击?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

ASP.NET MVC中的AntiForgeryToken是否可以防止所有CSRF攻击?

是的,这就是您需要做的。

只要您在每个受保护的页面上生成一个新令牌,

<%= Html.AntiForgeryToken() %>

并始终使用
[ValidateAntiForgeryToken]

这实现了OWASP 的CSRF预防备忘单中讨论的同步器令牌模式。

为了使脚本成功发出可接受的请求,它必须首先获取表单并读取令牌,然后发布令牌。相同来源策略将阻止在浏览器中允许此操作。一个站点向另一个站点发出AJAX样式的http请求;只对自己。如果出于某种原因可以违反同一来源政策,那么您将变得脆弱。

请注意,如果您具有跨站点脚本漏洞,则攻击者可以滥用xss漏洞来规避同一原始策略提供的保护(因为该脚本现在从您自己的站点运行,因此SOP成功了)。然后,注入的脚本可以愉快地读取并重新提交令牌。通过XSS克服CSRF保护的这种技术最近在某些蠕虫中很常见。基本上,如果您具有XSS,那么保护CSRF就是浪费时间,因此请确保您都不容易受到这两种攻击。

需要注意的另一件事是Flash和Silverlight。这两种技术都不订阅相同的原始策略,而是使用跨域策略文件来限制对远程资源的访问。如果您在自己的站点上发布跨域策略xml文件,则Flash
/ Silverlight脚本只能访问站点上的资源。如果您确实发布了此文件,则永远只允许将受信任的第三方服务器列入白名单,而永远不允许*。

在OWASP上了解有关CSRF的更多信息,
另请参见:XSS预防备忘单



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/401703.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号