asp.net-mvc – ASP.NET MVC中的AntiForgeryToken是否防止所有CS
使用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 – 查找应用程序根URL而不使用?
- asp.net-mvc – 如何在asp mvc中阻止访问Internet Explorer
- asp.net – SCOPE_IDENTITY()不起作用
- asp.net – MVC3 Action作为一个简单的Web服务
- asp.net-mvc – Dotlesscss @import语句:找不到文件.使用C
- asp.net-core – .NET Core 1.0 – 如何使用xUnit命令行运行
- 两个ASP.NET站点共享应用程序文件但具有不同的web.config
- ASP.NET MVC删除操作方法中的查询字符串
- asp.net-mvc – LINQ用于检索多级关系数据的查询
- asp.net – 手动将MVC Web应用程序从3升级到4,无法添加API控
- asp.net – 访问在DelegatingHandler中执行的当前
- asp.net-mvc – asp.net mvc 3中的参考脚本库是什
- 如何修复ASP.NET错误“文件’nnn.aspx’没有预编
- asp.net-mvc – 使用StructureMap / ASP.MVC / V
- asp.net-mvc – MVC 5继承的脚手架使用错误的实体
- asp.net – 如何向python中的.aspx页面提交查询
- asp.net – 在IIS中将WebAPI添加为子/嵌套应用程
- asp.net – 您有任何免费的.Net托管代码将DocX转
- ASP.NET的会员系统是否足够安全?
- .net core使用HttpClient发送代理请求_程序内抓包