灵感来自:How to protect against CSRF by default in ASP.NET MVC 4?
有没有办法在ASP.NET Core中实现相同的结果?
答案 0 :(得分:5)
您可以在AutoValidateAntiforgeryTokenAttribute
中将Startup.ConfigureServices()
应用为全局过滤器,因此它会自动应用于您的所有路由:
services.AddMvc(options =>
options.Filters.Add(new AutoValidateAntiforgeryTokenAttribute()));
请注意,AutoValidateAntiforgeryTokenAttribute
仅适用于不安全的请求(POST,PUT),而不适用于安全的请求(GET,HEAD,OPTIONS,TRACE)。这样,只有易受CSRF攻击的操作才需要防伪签名。确保只有POST或PUT操作可以修改数据非常重要!
对于非API应用程序,official docs推荐使用此全局过滤方法。
答案 1 :(得分:0)
另一种防止CSRF获益的方法是根本不使用cookie进行身份验证。如果有可能,我会尝试检查令牌身份验证并实现它。没有cookie,没有CSRF。
据我所知,拥有JWT令牌认证并不是什么大问题。与核心。