asp.net-mvc – ASP.NET MVC中的AntiForgeryToken是否防止所有CSRF攻击?
|
使用AntiForgeryToken需要每个请求传递一个有效的令牌,所以使用简单的脚本发布数据到我的Web应用程序的恶意网页将不会成功。 但是如果一个恶意脚本首先会做一些简单的GET请求(由Ajax),以便在隐藏的输入域中下载包含防伪令牌的页面,将其提取并使用它来生成一个有效的POST? 有可能吗,还是我错过了什么? 解决方法是的,这是你需要做的所有事情。只要在每个受保护的页面上生成一个新的标记,<%= Html.AntiForgeryToken()%> 这将实现OWASP CSRF Prevention Cheat Sheet处讨论的同步器令牌模式。 为了使脚本成功地提出可接受的请求,它必须先获取表单并读取令牌,然后发布令牌。 Same Origin Policy将阻止它在浏览器中被允许。网站可以向另一个网站制作AJAX样式http请求;只对自己如果由于某种原因可以违反相同的起源政策,那么您将变得脆弱。 请注意,如果您有跨站点脚本漏洞,则攻击者可能会滥用xss漏洞来规避同一原始策略提供的保护(因为脚本现在正在从您自己的站点运行,因此SOP成功)。然后,注入的脚本可以愉快地读取并重新提交令牌。通过XSS实现CSRF保护的这种技术最近在一些蠕虫中很常见。基本上,如果您有XSS,您的CSRF保护是浪费时间,所以确保您不会受到任何影响。 另外值得注意的是Flash和Silverlight。这两种技术都不订阅相同的原始策略,而是使用跨域策略文件来限制对远程资源的访问。如果您在自己的网站上发布跨域策略xml文件,Flash / Silverlight脚本只能访问您网站上的资源。如果您发布此文件,只允许允许信任的第三方服务器的白名单,并且不允许*。 阅读更多关于CSRF at OWASP (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- ASP.NET缓存的方法和最佳实践
- ASP.NET DropDownList不保留所选项目在回发
- asp.net – 配置转换和“TransformXml任务失败”错误消息
- asp.net-mvc – ASP.NET MVC局部视图慢?
- asp.net-mvc – 如何在SelectList文本描述中组合两个字段?
- asp.net-mvc – 数据模型需要两个属性之一
- asp.net-mvc – ASP.NET MVC在自定义操作过滤器中查找当前用
- asp.net – 在MVC中控制SQL注入
- asp.net – 当绑定到XmlDataSource时如何编程设置Dropdownl
- 在使用ASP.NET会话时是否可以强制请求并发?
- asp.net – 使用Windows凭据和.net 4.5 WIF的Req
- asp.net-mvc – 在ASP.NET MVC中在HTTP和HTTPS之
- asp.net-mvc – 自定义网站的Orchard
- asp.net – “共享主机中的”LOG_BACKUP“的数据
- asp.net – DirectoryServicesCOMException 8007
- 如何为ASP.NET WebAPI 2中使用路由属性的特定控制
- asp.net-mvc – 在MVC中的下拉列表选择上调用特定
- ASP.NET OutputCache和Cookies
- asp.net-mvc – 适当地url编码空间字符
- asp.net-mvc-4 – IIS 7.5上的ASP.NET MVC 4,返回
