最近,我有一个要求,要使由ASP.net MVC创建的防伪令牌变得安全
基本上,防伪令牌是浏览器中一个名为_RequestVerificationToken的cookie,我想让它变得安全
我已经试过了
<compilation debug="true" targetFramework="4.5.2" />
<httpRuntime targetFramework="4.5.2" />
<authentication mode="Windows" />
<identity impersonate="false" />
<pages controlRenderingCompatibilityVersion="4.0" />
<httpCookies requireSSL="true" httpOnlyCookies="true"/>但这并不能使令牌变得安全和httpOnly
如果有人能帮上忙,请
使整个网站也托管在Https上
发布于 2020-10-16 23:29:00
如果您的安全经理在供应商报告中指出此cookie不安全,那么您可以尝试将以下代码添加到Startup.cs ConfigureServices中
services.AddAntiforgery(options =>
{
options.FormFieldName = "AntiforgeryFieldname";
options.HeaderName = "X-CSRF-TOKEN-HEADERNAME";
options.SuppressXFrameOptionsHeader = false;
options.Cookie.SecurePolicy = Microsoft.AspNetCore.Http.CookieSecurePolicy.Always;
});

参考文献https://docs.microsoft.com/en-us/aspnet/core/security/anti-request-forgery?view=aspnetcore-3.1 & https://docs.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.http.cookiesecurepolicy?view=aspnetcore-3.1
发布于 2017-12-14 20:52:56
防伪造令牌可用于帮助保护您的应用程序免受跨站点请求伪造。要使用此功能,您只需将以下HTML助手添加到您的表单中,这样它就会作为表单发布的一部分提交。
它用来制作表单,而不是整个mvc应用程序。
例如,如果您想保护表单的安全。
查看:
@using(Html.BeginForm())
{
@Html.AntiForgeryToken()
@Html.TextBox("Name")
<input type="submit" value="Submit"/>
}控制器:
[HttpPost]
[ValidateAntiForgeryToken()]
public ActionResult PostMethod(FormCollection collection)
{
//Logic
}https://stackoverflow.com/questions/47797949
复制相似问题