Skip to main content
 首页 » 编程设计

c#之如何在 ASP.NET Core MVC 应用程序 Web API Controller 中防止 CSRF/XSRF

2024年02月27日42zfyouxi

通过将 ValidateAntiForgeryToken 属性应用于操作并在表单中使用 sp-antiforgery=true 可以轻松地向 Asp.Net Core MVC 应用程序添加防伪造.

如何保护 Web API Controller 的 CRUD 操作,该 Controller 使用带有 Authorize 属性的个人身份验证和客户端的 Kendo MVC 网格?

请您参考如下方法:

您可以创建一个 Controller 并注入(inject) IAntiforgery 以获取 XsrfToken,然后将其与请求一起发送以进行验证。

[Route("api/[controller]")] 
public class XsrfTokenController : Controller 
{ 
    private readonly IAntiforgery _antiforgery; 
 
    public XsrfTokenController(IAntiforgery antiforgery) 
    { 
        _antiforgery = antiforgery; 
    } 
 
    [HttpGet] 
    public IActionResult Get() 
    { 
        var tokens = _antiforgery.GetAndStoreTokens(HttpContext); 
 
        return new ObjectResult(new { 
            token = tokens.RequestToken, 
            tokenName = tokens.HeaderName 
        }); 
    } 
} 

您可以在 here 上阅读更多相关信息