如何保护单页 WebAPI 免受 CSRF 攻击?

How to protect Single Page WebAPI from CSRF attacks?

我有一个使用 angularjs 构建的单页应用程序,它使用 $http 服务发出 GET 和 POST 请求。该站点不对用户进行身份验证,并且是匿名的。有没有办法防止匿名网站的 CSRF 攻击?我在使用 $http 服务的 angularjs 中找到了许多实现它的帖子。但我不明白它是否也适用于匿名应用程序。有人可以建议吗?谢谢!

我认为如果您的应用程序不对用户进行身份验证,您不必担心 CSRF 攻击。

"Cross-Site Request Forgery (CSRF) is a type of attack that occurs when a malicious web site, email, blog, instant message, or program causes a user's web browser to perform an unwanted action on a trusted site for which the user is currently authenticated." 这是来自 https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)_Prevention_Cheat_Sheet

它说“导致用户的 Web 浏览器在 用户当前已通过身份验证的受信任站点上执行不需要的操作” .

如果您没有身份验证,则无需担心 CSRF。此外,如果您添加作为 header 传递的令牌身份验证,您也不必担心它。

CSRF 的问题是另一个站点自动对您的站点使用身份验证 cookie。

也许您担心的不是 CSRF?既然整个网站都是公开和匿名的,你究竟在害怕什么?