c# - 如何在 ASP.NET Core 中默认防止 CSRF

标签 c# .net asp.net-core csrf-protection

灵感来自: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/

相关文章:

c# - 从 C# 调用 ARM 模板

.net - 如何在执行大型 SQLCommand VB.Net 时显示进度条

c# - 我应该有多个存储库吗?

c# - 从类库项目访问 appsettings.json 文件设置

c# - 作为基础的通用类导致 XAML 错误

c# - 提取Word文档数据并插入SQL数据库

c# - 打印机连接事件

c# - 在我的场景中抽象和 protected 之间有什么区别 - C#

.net - WS 安全 header 无效 - IRS ACA SOAP 请求

c# - 将 sqlite 数据库存储在 Visual Studio 和 dotnet 可以看到的位置