不同主域下cookie为什么可以共存

悬炫321
  • 115

image.png
https://segmentfault.com 域名下为什么会出现domain为baidu.com的cookie呢,cookie的设置应该是不能跨主域的?这是怎么实现的呢

回复
阅读 5.3k
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...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏