通过这种简单的方法可以有效防止CSRF攻击吗:
这背后的思考过程是:
那么上述方法是否能有效缓解 CSRF 还是我的理解/方法完全错误?
仅存在自定义标头即可为实现 CORS 协议的客户端提供针对 CSRF 的保护,如 是否可以使用自定义 HTTP 标头来防止 CSRF,因为浏览器会阻止站点将自定义 HTTP 标头发送到另一个站点?.
您的想法为可能无法正确实现 CORS 的客户端(也许是旧浏览器?)提供了额外的保护:即使不同站点上的恶意代码可以发出带有自定义标头的请求,它也无法将此标头设置为cookie 的值,因为 cookie 不可用于在不同站点上运行的 Javascript 代码。
这个推理也是你在#2 和#3 中所说的。但由于#1 依赖于攻击者不知道某些事情,因此它不提供真正的安全性(仅“通过默默无闻的安全性”)。