防止跨站点请求伪造(CSRF或XSRF)的常见模式是:
但是,如果请求是在CORS之后跨域发送的,则上述操作是不可能的,因为(JavaScript)客户端无法从步骤2中检索Cookie的值,因为XMLHttpRequest.getAllResponseHeaders()
会过滤出标头“ Set-Cookie ”(和“ Set-Cookie2”)。
我是否正确理解CSRF & CORS with AngularJS + Laravel,服务器应该完全跳过针对CORS请求的令牌检查?
合理性:该机制可防止单点攻击,这种攻击无法与CORS配合使用,因为在这种情况下您无法诱使浏览器执行飞行前检查。
编辑:如果为CORS请求关闭csrf保护是正确的解决方案,是否向Access-Control-Allow-Origin: *
发送安全风险?换句话说,应该将允许的来源始终列入白名单吗?
顺便说一句,使用会话ID对请求进行身份验证。