安全 - kuiyu/RsCode GitHub Wiki

一 防止伪造请求

1.配置全局防止伪造服务

services.AddMvc(
                o => { 
                    o.Filters.Add(new AutoValidateAntiforgeryTokenAttribute()); 
                }
                )

2.视图中添加代码

@inject Microsoft.AspNetCore.Antiforgery.IAntiforgery Xsrf
@functions{
    public string GetAntiXsrfRequestToken()
    {
        return Xsrf.GetAndStoreTokens(Context).RequestToken;
    }

}

3.视图中数据访问 在header中添加RequestVerificationToken

$.ajax({
       url:'xx.xx/xx',
       type: 'post',
       data: data.field,
       headers: {
            "RequestVerificationToken":'@GetAntiXsrfRequestToken()'
       },
       success: function (ret) {  },
       error: function (err) { 
            }
});

设置完成后,如果请求不合规请返回400

如果某些请求无需验证,可添加[IgnoreAntiforgeryToken]跳过

二 防止跨站脚本攻击

在控制器或Action中添加[AntiXSS]

using Rs.AspNetCore.XSS;

[AntiXSS]
public class HomeController