允许在特定ASP上跨站点发布请求.NET核心控制器

本文关键字:布请求 请求 控制器 核心 NET 站点 ASP | 更新日期: 2023-09-27 18:11:46

我正在为我的新ASP使用一个复杂的模板。. NET Core应用程序。现在我想创建一个新的控制器,它接收来自另一个外部服务器的POST请求。但这行不通。我尝试了很多,直到我发现有一种机制,只允许POST请求访问我的控制器,它有一个特定的标头(X-XSRF-TOKEN)。这样做是为了防止跨站点请求伪造攻击。

然而,一个特定的控制器应该允许这样的请求,因为这个控制器不使用从网页访问者的浏览器。是否有一种方法来注释控制器或任何其他方式来允许这个异常?

允许在特定ASP上跨站点发布请求.NET核心控制器

我终于找到了答案,这确实是可能的,通过使用注释。只需用[IgnoreAntiforgeryTokenAttribute]注释您的控制器或操作,整个XSRF机制将不再打扰您的控制器。

请注意,即使您不打算在浏览器中使用该控制器动作,如果它可以通过http访问,它也很容易受到CSRF的影响。例如,攻击者仍然可能创建一个流氓网页,如果您的一个用户访问该网页,则会使该用户向该操作发送请求。如果会话管理是基于cookie或等效的,并且操作更改了服务器状态,它仍然是一个可利用的漏洞。

因此,当您可以打开CSRF保护时,您需要仔细考虑后果。