上下文:Angular 站点托管在 CloudFront 后面的 S3 上,与用作 API 的 Express 服务器分开,几乎所有请求都是 XMLHttpRequests。所有请求都是在没有 cookie 的情况下发送的(默认情况下 withCredentials = false),我使用 JWT Bearer 令牌进行身份验证,方法是从角度的 cookie 中获取它并放置到Authorization
标题中(这种技术是CSRF Wiki page中描述的一种技术)。
在 Express 网站上,我不允许Cookie
在Access-Control-Allow-Headers
.
cookie 有secure: true
标志,并不是httpOnly
因为我需要手动访问它们。
我还在这篇 Medium 文章中读到 JSON-Web-Tokens(JWT)/Bearer Tokens
毫无疑问是预防 CSRF 的最佳方法之一
问题 1:如果我将 X-XSRF-Token 标头添加到每个请求,例如通过检查 JWT 有效负载中的相同值来使机制无状态,我会增加额外的安全性吗?(我在这个线程中读到了它)
问题 2:我真的需要额外的安全措施来对抗 CSRF 采取我所描述的一切吗?