首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在ASP.net MVC中实现AntiforgeryToken As的安全

问如何在ASP.net MVC中实现AntiforgeryToken As的安全
EN

Stack Overflow用户
提问于 2017-12-14 00:29:00
回答 2查看 2K关注 0票数 2

最近,我有一个要求,要使由ASP.net MVC创建的防伪令牌变得安全

基本上,防伪令牌是浏览器中一个名为_RequestVerificationToken的cookie,我想让它变得安全

我已经试过了

代码语言:javascript
复制
<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上

EN

回答 2

Stack Overflow用户

发布于 2020-10-16 23:29:00

如果您的安全经理在供应商报告中指出此cookie不安全,那么您可以尝试将以下代码添加到Startup.cs ConfigureServices中

代码语言:javascript
复制
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

票数 0
EN

Stack Overflow用户

发布于 2017-12-14 20:52:56

防伪造令牌可用于帮助保护您的应用程序免受跨站点请求伪造。要使用此功能,您只需将以下HTML助手添加到您的表单中,这样它就会作为表单发布的一部分提交。

它用来制作表单,而不是整个mvc应用程序。

例如,如果您想保护表单的安全。

查看:

代码语言:javascript
复制
@using(Html.BeginForm())
{
      @Html.AntiForgeryToken()
      @Html.TextBox("Name")
      <input type="submit" value="Submit"/>
}

控制器:

代码语言:javascript
复制
[HttpPost] 
[ValidateAntiForgeryToken()] 
public ActionResult PostMethod(FormCollection collection) 
{
   //Logic
}
票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47797949

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档