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

小编典典

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

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

并始终使用[ValidateAntiForgeryToken]

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

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

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

需要注意的另一件事是Flash和Silverlight。这两种技术都不订阅相同的原始策略,而是使用跨域策略文件来限制对远程资源的访问。如果您在自己的站点上发布跨域策略xml文件,则Flash

/ Silverlight脚本只能访问站点上的资源。如果您确实发布了此文件,则永远只允许将受信任的第三方服务器列入白名单,而永远不允许*。

2020-07-26

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值