不同子域上的会话cookie是否算作第三方?

时间:2012-04-10 16:21:57

标签: iframe cookies subdomain privacy

假设我在 www.example.com 有一个网站,其中有一个IFRAME指向ASP.NET网站 myapp.othersite.com - 这会导致会话和我理解的第三方cookie。

如果我将嵌入式应用移动到 myapp.example.com ,会话Cookie是否会被视为第三方Cookie,因为它是一个不同的子域?

3 个答案:

答案 0 :(得分:8)

如果您在域.example.com

上设置Cookie

然后来自 www.example.com www.myapp.example.com 的Cookie将被视为相同。

没有cookie被视为第三方Cookie。

答案 1 :(得分:6)

如果Cookie来自不同的基本域(基本域为example.comexample.co.uk),则它们似乎被视为第三方,但如果它们来自同一基本域的不同子域,则不会被视为第三方。

如果myapp.example.com嵌入myapp.example.com

www.example.com将能够设置 Cookie myapp.example.com

.example.com为域{{1}}设置Cookie是不必要的,除非这些Cookie需要从其他子域读取

[在Firefox,Chrome(已阻止第三方Cookie)和Safari中测试] [ThirdPartyUtil.IsThirdPartyInternal似乎是在Firefox中检查的地方

答案 2 :(得分:0)

当基本域相同且子域不同而在最新版本的Firefox,Chrome和Microsoft Edge的浏览器设置中阻止了第三方cookie时,我能够成功设置和读取第三方cookie。即使未在cookie上设置任何域属性,也是如此。这意味着Firefox,Chrome和Microsoft Edge不会将来自同一基本域的cookie视为第三方cookie。

我的方法如下。我有两个具有相同基本域但具有不同子域的不同主机名。其中一个包含两个PHP文件。第一个设置一个具有随机Cookie名称且没有任何域属性的Cookie,并将该Cookie的名称返回为JSONP。第二次尝试读取cookie,然后将true或false作为JSONP返回。另一个主机名包含一个HTML文件,该文件使用AJAX查询设置cookie的第一个PHP文件,然后在完成后立即再次使用AJAX查询第二个测试cookie是否存在的PHP文件。首先,我先确定浏览器会阻止第三方Cookie,然后再继续操作。我测试了三种浏览器:Firefox,Chrome和Microsoft Edge。在所有情况下,只要基本域相同,即使cookie来自不同的域,结果都表明cookie已成功设置和读取。

结论:如果资源设置了cookie,并且资源的基本域与网站上的基本域相同,但是子域不同,则流行的浏览器不会将其视为第三方cookie。< / p>