最近我要求制作由ASP.net MVC创建的Antiforgerytoken以使其安全
基本上反伪造令牌是浏览器中名为_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上托管
答案 0 :(得分:0)
防伪令牌可用于帮助保护您的应用程序免受跨站点请求伪造。要使用此功能,您需要做的就是将以下HTML帮助器添加到表单中,以便将其作为表单发布的一部分提交。
它用于生成您的表单而不是整个mvc应用程序。
例如,如果您想保护表单。
查看:
@using(Html.BeginForm())
{
@Html.AntiForgeryToken()
@Html.TextBox("Name")
<input type="submit" value="Submit"/>
}
控制器:
[HttpPost]
[ValidateAntiForgeryToken()]
public ActionResult PostMethod(FormCollection collection)
{
//Logic
}
答案 1 :(得分:0)
当您遇到由安全经理破坏的印章时,该安全经理有一份供应商报告说此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