禁用第三方cookie是否也禁用由第三方JavaScript创建的cookie?

5
当页面包含第三方JavaScript(通过<script src=...)并且该JavaScript设置了Cookie时,该Cookie“变成”第一方Cookie,即使它最初由第三方来源设置。
我的问题是:如果有人在其浏览器中禁用了第三方Cookie,那么是否也适用于由第三方JavaScript设置的Cookie?还是仅阻止对第三方域的请求头部分显式设置的Cookie?
无论哪种方式,所有浏览器处理方式完全相同还是有些浏览器会阻止JavaScript Cookie而其他浏览器则允许它?
2个回答

6

经过进一步测试后,我想更新一下这篇文章,以防后来的人需要参考。

我测试了Firefox 3.6、MSIE 7、Safari 4、Chrome 4和Opera 10,它们都支持通过第三方JavaScript创建cookie,即使禁用了第三方cookie。我得出结论,这是因为cookie是为第一方域创建的,所以浏览器将其视为第一方cookie,即使它们是由第三方源的脚本创建的。

只有通过第三方请求头创建的cookie在启用此功能时会被拒绝。


0

我相信大多数浏览器在启用/禁用用户偏好设置时,不会区分在HTTP头中设置的域名的cookie和由JavaScript设置的cookie。当然可能会有例外情况--没有技术原因阻止某人扩展浏览器,使其根据cookie的来源位置具有不同的规则--但我不知道有任何这样的情况。

编辑:我最初误解了您的问题--我以为您是在问通过HTTP头设置的cookie和通过JavaScript设置的cookie之间的区别。相反,您正在询问由托管在不同域上的JavaScript设置的cookie是否被视为第三方cookie,而不是由直接嵌入页面或托管在同一域上的JavaScript设置的cookie?如果是这种情况,我认为答案是否定的(即,它们被视为第一方cookie)。无论js文件最初托管的域是什么,它都在包含它的网页的上下文中执行,因此被视为第一方cookie。


我的有限测试显示,在 Firefox 上创建的第三方 JavaScript 创建的 Cookie 即使关闭该功能仍然有效... 但是测试所有浏览器有点麻烦,所以我想问问是否有人有类似的想法并对它进行了更彻底的测试。 - Sean
不,你的理解是正确的 - 我正在尝试弄清楚通过HTTP头设置的cookie和通过JavaScript设置的cookie是否会被不同对待,即使它们是来自相同的第三方域。 - Sean

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接