【发布时间】:2020-04-20 15:39:17
【问题描述】:
我正在开发一个 ASP.NET Core 3.1 应用程序。我没有使用任何类型的身份验证、会话数据/逻辑和表单元素。我在开发者控制台中看到了 .AspNetCore.Antiforgery cookie,尽管我没有在 Startup 类中调用 services.AddAntiforgery()。
我发现this StackOverflow question 接受的答案非常不令人满意,因为此 cookie 仍将发送给客户端(由 hemp 的评论指出)。
所以我的问题是:如何完全删除这个 CSFR cookie?
【问题讨论】:
-
这样做的动机是什么?
-
asp.net核心标签默认添加->你需要这样
<form method="post" asp-antiforgery="false"> -
虽然拥有一个没有 cookie 的网站是一个崇高的目标,但 Antiforgery cookie 是一个安全 cookie,恕我直言不应该删除。
-
我建议使用
AutoValidateAntiforgeryTokenAttribute,它只需要一个防伪令牌来处理不安全的请求。只要连接是安全的,您的站点就不会为GET,HEAD,OPTIONS,TRACE请求docs.microsoft.com/en-us/dotnet/api/… 传递令牌。一般来说,我不会省略Anti Forgery,但如果你必须至少有一个小备份。 -
有多种方法可以选择退出请求验证:learnrazorpages.com/security/request-verification#opting-out
标签: c# asp.net-core cookies antiforgerytoken asp.net-core-3.1