如果从跨域客户端调用,如何保护Web API免受CSRF攻击?

时间:2017-10-13 07:23:01

标签: security asp.net-web-api asp.net-web-api2 csrf csrf-protection

我有一个Web API,它由以角度开发的跨域客户端应用程序调用。如何保护我的Web API免受CSRF攻击。

我正在使用基于令牌的身份验证

我阅读了Mike Wasson的以下文章 https://docs.microsoft.com/en-us/aspnet/web-api/overview/security/preventing-cross-site-request-forgery-csrf-attacks

但在上述情况下,客户端和web api也在同一个域中运行, 如果它在不同的域中我们如何通过AntiForgeryToken?

1 个答案:

答案 0 :(得分:0)

如何创建一个端点,您可以在应用程序开始获取令牌时查询该端点?然后将它们与角度应用程序的每个未来请求一起发送。

public class AntiForgeryController : ApiController
{
    [HttpGet]
    public IHttpActionResult Get()
    {
        string cookieToken;
        string formToken;
        AntiForgery.GetTokens(null, out cookieToken, out formToken);

        return Ok(new {cookieToken, formToken});
    }
}