Antiforgerytoken 在ASP.NET MVC中防止CSRF攻击

Antiforgerytoken 在ASP.NET MVC中防止CSRF攻击,antiforgerytoken,Antiforgerytoken,我有两份申请。一个应用程序向另一个应用程序执行表单提交(http post)(两个应用程序都是单独托管在同一站点下的mvc应用程序)。表单提交是遗留javascript提交。在控制器中准备作为htmlstring的隐藏变量,并通过控制器的Response.write将其发布。现在,我如何为这个场景实现反伪造令牌逻辑。是否可以在控制器中调用antiforgerytoken()。请建议。我假设“mvc应用程序”是指ASP.NET mvc应用程序 有很多不同的CSRF预防方法,例如通过表单主体、自定义

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

我假设“mvc应用程序”是指ASP.NET mvc应用程序

有很多不同的CSRF预防方法,例如通过表单主体、自定义标题或cookie。在您的情况下,使用Cookie将解决您的问题,但您需要了解跨两个ASP.NET应用程序的Cookie共享。ASP.NET通过一些配置支持cookie共享,详细信息如下

基本上,

  • 生成CSRF令牌
  • 将此标记设置为cookie,并将表单正文设置为隐藏值
  • 客户提交表格
  • 由于两个应用程序都在同一个域下,我们的csrf令牌cookie将到达第二个应用程序
  • 签出cookie和表单主体具有相同的令牌。如果没有CSRF攻击,则这些值应相同

  • 如果您使用的是java,请检查此链接是否对您有用:这些应用程序使用什么语言和框架/cms?对于前两个步骤,是否可以在controller中使用内置方法antiforgery token。或者我应该用一些散列算法手工编写代码