禁用第三方cookie也会禁用第三方javascript创建的cookie吗?

时间:2010-04-02 01:38:11

标签: javascript cookies

当一个页面包含第三方javascript(通过<script src=...)并且该javascript然后设置一个cookie时,该cookie“变成”第一方cookie,即使它最初由第三方源设置。

我的问题是这个。如果有人在浏览器中禁用了第三方Cookie,是否也应用了由第三方javascript设置的Cookie?或者它是否仅阻止在第三方域请求的标头中明确设置的cookie?

无论哪种方式,所有浏览器都以完全相同的方式处理这个问题,或者做一些阻止javascript cookie但其他人允许这样做吗?

2 个答案:

答案 0 :(得分:5)

我只是想在进一步测试后我会更新它,以防万一有人以后遇到它。

我测试了Firefox 3.6,MSIE 7,Safari 4,Chrome 4和Opera 10,他们都支持通过第三方javascript创建cookie,即使第三方cookie被禁用也是如此。我的结论是因为cookie是为第一方域创建的,因此浏览器将它们视为第一方cookie,即使它们是由来自第三方源的脚本创建的。

只有第三方请求的标头创建的Cookie才会在启用此功能时被拒绝。

答案 1 :(得分:0)

我相信大多数浏览器都不会区分HTTP标头中的域集与通过javascript设置的域名,而是通过用户首选项启用/禁用它们。当然可以有例外 - 没有技术上的理由阻止某人扩展浏览器,使其根据cookie的确切位置对cookie有不同的规则 - 但我不知道任何。

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