灵感来自:How to protect against CSRF by default in ASP.NET MVC 4?
有没有办法在 ASP.NET Core 中实现相同的结果?
最佳答案
您可以在 Startup.ConfigureServices()
中应用 AutoValidateAntiforgeryTokenAttribute
作为全局过滤器,因此它会自动应用于您的所有路由:
services.AddMvc(options =>
options.Filters.Add(new AutoValidateAntiforgeryTokenAttribute()));
请注意,AutoValidateAntiforgeryTokenAttribute
仅适用于不安全请求(POST、PUT),不适用于安全请求(GET、HEAD、OPTIONS、TRACE)。这样,只有易受 CSRF 攻击的操作才需要防伪 token 。请务必确保只有您的 POST 或 PUT 操作修改数据!
official docs 推荐这种全局过滤器方法对于非 API 应用程序。
关于c# - 如何在 ASP.NET Core 中默认防止 CSRF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48811569/