前后端不同域名时是否需要CSRF防护?相关疑问咨询
问题1:你的判断是否正确?
你的结论(当前场景不存在CSRF攻击风险)是对的,但支撑结论的理由有误。
你混淆了Cookie的归属逻辑:
- 浏览器只会把Cookie存储在设置它的域名下——如果是
mydjango.com通过响应头Set-Cookie设置的Cookie,只会存在mydjango.com的域名空间里,和myreact.com无关。 - 攻击者在
myreact2.com部署相同表单发起请求时,要让浏览器携带mydjango.com的Cookie,必须满足两个条件:mydjango.com的CORS配置将myreact2.com加入了Access-Control-Allow-Origin允许列表mydjango.com设置了Access-Control-Allow-Credentials: true
攻击者无法控制mydjango.com的CORS配置,所以浏览器不会在来自myreact2.com的请求中携带mydjango.com的Cookie,自然无法发起CSRF攻击。
问题2:跨域请求中Set-Cookie的存储位置
当myreact.com向mydjango.com发送请求,mydjango.com返回Set-Cookie头时,浏览器只会把Cookie存储在mydjango.com域名下,和请求发起的myreact.com完全无关。Cookie的存储归属由设置它的域名决定,与请求源域名没有关联。
内容的提问来源于stack exchange,提问作者EvgenyOcean
相关产品推荐
相关产品推荐

