V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
919615766
V2EX  ›  前端开发

小白请教, cookie 的 domain 不允许设置跨站的域名,那为什么能在 chrome 的 application tab 中看到第三方 cookie?

  •  
  •   919615766 · 68 天前 · 823 次点击
    这是一个创建于 68 天前的主题,其中的信息可能已经有所发展或是发生改变。

    图一是我在taobao.com 下发现的一些第三方 cookie 。图二是访问taobao.com时发送的一个跨域请求,响应头中set-cookiedomain=.mmstat.com。所以为什么这个 cookie 能成功设置呢?

    图一

    图二

    5 条回复    2021-10-02 05:54:05 +08:00
    coolan
        1
    coolan  
       68 天前
    有点兴趣,稍微查了查,其实你都知道第三方 cookie 这个词了,那就很多资料了。这个 cookie 是用 javascript 前端直接请求 mm.stat.com 的这个第三方地址,通过响应来 set 的,并没有跨域。因为它并没有请求 taobao.com 来响应 set 一个 mm.stat.com 的 cookie 。 另外 https://zhuanlan.zhihu.com/p/131256002 可能有帮助。多查查,很多资料。
    919615766
        2
    919615766  
    OP
       67 天前 via iPhone
    @coolan 也就是说 cookie 的 domain 不允许设置跨站的域名, 这个 domain 的域名是相对于这个 http 请求的域名来说的,而不是相对于我当前浏览的页面网址来说的。 所以说,mmstat.com 请求后端返回的 cookie domain 是 mmstat 这并没有跨站
    eason1874
        3
    eason1874  
       67 天前
    我这里不能复现,Chrome 拦截了 mmstat 的请求,提示:Cross-Origin Read Blocking (CORB) 已屏蔽 MIME 类型为 application/json 的跨域响应

    我怀疑是你在 Chrome 设置了允许第三方,也可能是扩展行为,你用无扩展的无痕窗口测试下。
    coolan
        4
    coolan  
       67 天前 via Android
    cookie 有两种设置方式,由服务器设置时,服务器网页的 URL 跟响应的 cookie 里的 domain 不能跨域;通过前端页面 js 设置时,前端页面 URL 跟 cookie 的 domain 也不可以跨域。
    muzuiget
        5
    muzuiget  
       67 天前
    那个并不是“跨域请求”,而是用 script/style/img 标签这种方式引用第三方资源。

    比如 A 和 B 两个网站都用 script 标签引用的百度的广告 js 文件,百度就能通过第三方 cookie 知道你访问了 A 后又访问了 B,然后就可以跟踪你了。
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1337 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 18:14 · PVG 02:14 · LAX 10:14 · JFK 13:14
    ♥ Do have faith in what you're doing.