如果您在域上设置Cookie .example.com
然后来自www.example.com和www.myapp.example.com的cookie 将被视为相同.
没有cookie被视为第三方cookie.
如果Cookie来自不同的基本域(基本域是example.com或example.co.uk),则它们似乎被视为第三方,但如果它们来自同一基本域的不同子域,则不会.
myapp.example.com如果嵌入在域中,将能够使用域设置 cookie .myapp.example.comwww.example.com
有myapp.example.com设置Cookie使用域.example.com是不必要的,除非这些Cookie需要被读取从不同的子域.
[在Firefox中测试,Chrome(第三方cookie被阻止)和Safari] [ ThirdPartyUtil.IsThirdPartyInternal似乎是在Firefox中检查的地方]
假设未在相关 cookie 上设置域属性,在这种情况下,由于主机名不同,它确实是第三方 cookie。然而,由于基本域相同,通常会阻止第三方 cookie 的浏览器不会阻止它。因此,在这方面,它不被视为第三方 cookie。
我知道这一点是因为当基本域相同而子域不同时,我能够成功设置和读取第三方 cookie,而第三方 cookie 在最新版本的 Firefox、Chrome 和 Microsoft Edge 的浏览器设置中被阻止。即使没有在 cookie 上设置域属性也是如此。这意味着 Firefox、Chrome 和 Microsoft Edge 不会将来自同一基本域的 cookie 视为第三方 cookie。
我的方法如下。我有两个不同的主机名,它们具有相同的基本域但具有不同的子域。其中之一包含两个 PHP 文件。第一个设置一个带有随机 cookie 名称且没有域属性的 cookie,并将 cookie 的名称作为 JSONP 返回。第二次尝试读取 cookie,然后以 JSONP 形式返回 true 或 false。另一个主机名包含一个 HTML 文件,该文件使用 AJAX 查询设置 cookie 的第一个 PHP 文件,然后在完成后立即再次使用 AJAX 查询测试 cookie 是否存在的第二个 PHP 文件。在继续之前,我首先确保浏览器阻止了第三方 cookie。我测试了三种浏览器:Firefox、Chrome 和 Microsoft Edge。
结论:如果某个资源设置了cookie,并且该资源上的基域与网站上的基域相同,但子域不同,则流行浏览器不会将其视为第三方cookie。
| 归档时间: |
|
| 查看次数: |
7327 次 |
| 最近记录: |