我正在为我的新ASP.NET Core应用程序使用复杂的模板。现在我想创建一个新控制器,它从另一个外部服务器接收POST请求。那不行。我尝试了很多,直到我发现有一种机制设置只允许POST请求访问我的控制器,该控制器有一个特定的头(X-XSRF-TOKEN)。这样做是为了防止跨站点请求伪造攻击。
但是,一个特定的控制器应允许此类请求,因为该控制器未在网页访问者浏览器中使用。有没有办法注释控制器或任何其他方式来允许此异常?
答案 0 :(得分:1)
我终于找到了答案,确实可以使用注释。只需使用 [IgnoreAntiforgeryTokenAttribute] 注释您的控制器或操作,整个XSRF机制将不再打扰您的控制器。
答案 1 :(得分:1)
请注意,即使您不打算在浏览器中使用该控制器操作,如果可以通过http访问它,也可能很容易受到CSRF的影响。例如,攻击者可能仍会创建一个流氓网页,如果您的某个用户访问该网页,则会让用户向该操作发送请求。如果会话管理是基于cookie或等效的和,则操作会更改服务器状态,它仍然是一个可利用的漏洞。
因此,虽然您可以转换CSRF保护,但您需要仔细考虑后果。