不同主域下cookie为什么可以共存
https://segmentfault.com 域名下为什么会出现domain为baidu.com的cookie呢,cookie的设置应该是不能跨主域的?这是怎么实现的呢
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
https://segmentfault.com 域名下为什么会出现domain为baidu.com的cookie呢,cookie的设置应该是不能跨主域的?这是怎么实现的呢
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(2)
cookie 是不能跨域,但这一是指的当前页面只能读取页面所在域的 cookie(即
document.cookie
),二是指的浏览器在发送请求时携带在请求头里的,请求哪个域就只会带哪个域对应的 cookie。但谁也没说我一个页面里只能请求跟这个页面同域的资源啊。
segmentfault.com 页面里植入一个百度的广告,这个页面就会给 baidu.com 发请求啊,响应结果里带 Set-Cookie 了或者是个 JS 在写 Cookie,自然而然不就有 baidu.com 的 cookie 了么。
不然广告追踪咋做,百度之类的不就靠这个活着么。
在application的cookie下面看到好几个域名,那说明该页面有嵌入其他的iframe。如果在一个域名下面能看到其他的cookie也很正常,因为来源可以是您正在访问的网站或者该网站所使用的服务,你只要向其他域发起请求并且其他域支持跨域,那么其他域的cookie就能够被设置到当前域名下
这里推荐两篇文章,一篇是chrome官方对于cookie的解释,一篇是关于cookie如何进行跨域存取的
https://www.digitalcitizen.li...
https://blog.csdn.net/whzhaoc...