我有一个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?
答案 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});
}
}