当页面包含第三方javascript (通过<script src=...),然后该javascript设置cookie时,该cookie将“变成”第一方cookie,即使它最初是由第三方来源设置的。
我的问题是。如果有人在浏览器中禁用了第三方cookie,这是否也适用于由第三方javascript设置的cookie?或者它只阻止在第三方域的请求头中显式设置的cookie?
无论哪种方式,是所有的浏览器都以完全相同的方式处理这个问题,还是做一些阻止javascript cookie,但其他浏览器允许这样做?
发布于 2010-04-07 09:02:20
我只是想在进一步测试后更新它,以防以后有人遇到它。
我测试了Firefox3.6、MSIE7、Safari4、Chrome4和Opera10,它们实际上都支持通过第三方javascript创建cookie,即使禁用了第三方cookie。我的结论是,这是因为cookie是为第一方域创建的,所以浏览器将它们视为第一方cookie,即使它们是由第三方来源的脚本创建的。
当启用此功能时,只有来自第三方请求的头部创建的cookie才会被拒绝。
发布于 2010-04-02 09:44:39
我相信当涉及到通过用户首选项启用/禁用它们时,大多数浏览器不会区分HTTP头中设置的域cookie和javascript设置的域cookie。当然也可能有例外--没有技术上的原因阻止人们扩展浏览器,使其根据cookie的确切来源对cookie有不同的规则--但我不知道有什么例外。
编辑:我想我最初误解了你的问题--我以为你问的是通过HTTP头设置的cookie和通过javascript设置的cookie之间的区别。相反,您要问的是,托管在不同域的javascript设置的cookie是否被视为第三方cookie,还是由javascript设置的cookie直接内联在页面中或托管在同一域中?如果是这样的话,我相信答案是否定的(即,它们被视为第一方cookie)。不管js文件所在的原始域是什么,它都是在包含它的网页的上下文中执行的,所以它被认为是第一方的。
https://stackoverflow.com/questions/2564619
复制相似问题