防止ASP.NET MVC中的CSRF攻击

时间:2015-11-04 13:04:17

标签: antiforgerytoken

我有2个申请。一个应用程序执行表单提交(http post)到其他应用程序(两者都是分别托管在同一站点下的mvc应用程序)。表单提交是遗留的javascript提交。在控制器中将隐藏变量准备为htmlstring,并通过Response.write从控制器发布它。现在,我如何为此场景实现防伪令牌逻辑。是否可以在控制器中调用antiforgerytoken()。请建议。

1 个答案:

答案 0 :(得分:0)

我认为“mvc application”意味着ASP.NET MVC应用程序。

有很多不同的CSRF预防方法,例如通过表单正文,自定义标题或cookie。在你的情况下使用Cookie将解决你的问题,但你需要找出两个ASP.NET应用程序之间的cookie共享。 ASP.NET支持使用某些配置进行cookie共享,详细信息请访问http://docs.asp.net/en/latest/security/data-protection/compatibility/cookie-sharing.html

基础知识;

  1. 生成CSRF令牌。
  2. 将此令牌设置为cookie以及具有隐藏值的表单正文。
  3. 客户提交表单。
  4. 由于两个应用程序都位于同一个域中,因此我们的csrf令牌cookie将到达第二个应用程序。
  5. 签出cookie并且表单正文具有相同的标记。如果没有CSRF攻击,那么这些值应该是相同的。