我觉得在任何时候我看到CORS上的文档,它建议只有一个默认的Access-Control-Allow-Origin: *
配置。在我看来,这是使您的API现在容易受到CSRF攻击的完美方式。解释是同源策略是阻止浏览器中的XHR请求使API端点完全容易受到CSRF攻击的唯一因素,而且CORS本质上是SOP的旁路。
我的逻辑听起来是任何具有过度宽松的CORS设置的网站基本上都会将其后端API暴露给CSRF攻击吗?如果是这样的话,那么任何时候提出CORS都应该明确提到这一点。
答案 0 :(得分:0)
允许所有来源当然不是最佳做法,但除非您在传入请求中允许使用Cookie,否则这不一定会使您受到CSRF的约束。要减轻CSRF,您需要:
另外,请考虑使用Cookie之外的其他内容来验证请求/用户。例如,考虑使用通过Authorization标头提交的身份验证令牌。
我强烈建议您了解有关CORS和减轻CSRF的更多信息,这是Monsur Hossain的书CORS In Action。作者还创建了一个很好的伴侣网站(enable-cors.org),其中包含样本和其他资源的链接。