SPA,网站使用 oauth2 api - 我需要 csrf 保护吗

SPA, website using oauth2 api - do I need csrf protection

我的网站是完整的 SPA,所有经过身份验证的用户的请求都是使用访问令牌完成的,未经身份验证的用户可以访问的唯一表单是登录表单。那么csrf保护有必要吗?如果我从我的网站禁用 csrf 保护,我可能会面临哪些潜在的安全问题?谢谢

如果我理解你的设置,如下:

  1. 用户 POST 凭据(例如:登录表单)
  2. 服务器 returns 响应中的身份验证令牌
  3. 用户在每个后续请求header的请求中包含令牌

如果这是准确的,并且假设您正在使用 TLS 并正确验证令牌,我认为您已经得到很好的保护,免受 Cross-Site-Request-Forgeries.

典型的 CSRF 保护是发送一个只有合法网站才能看到的令牌(例如,通过设置 cookie),然后期望在 follow-up 请求 [=30] 中返回相同的令牌=]s,查询参数(不是一个好主意),或者请求 body。 Token-based 像您这样的身份验证已经满足这些要求。

简而言之,如果一个恶意站点能够绕过您的设置来伪造请求 (CSRF),那么该恶意站点可能会使用相同的漏洞来破坏典型的 CSRF 保护。