CSRF 是较早的 OWASP TOP 10 列表的一部分,但已被淘汰,“因为许多框架都包含 CSRF 防御,它仅在 5% 的应用程序中被发现”。但即使没有框架进行 CSRF 防御,我也觉得现代浏览器已经缓解了这个问题。默认情况下,跨站点请求中不发送身份验证所需的 Cookie 和标头。
例如,如果XMLHttpRequest
应该发送 cookie,则withcredentials
必须设置 -flag。即使这样,目标服务器也必须实现 CORS 标头才能使请求成功。至少在 Chrome 中。
所以我现在想知道,哪些浏览器已经实施了这些反措施,它们是否足以作为防御,或者我们是否仍然需要在我们的应用程序中实施 CSRF 缓解措施。