使用jquery cookie的第三方cookie

Third party cookies using jquery cookie

本文关键字:cookie 第三方 使用 jquery      更新时间:2023-09-26

有domain.com页面,其中包括server.com的javascript。

<script src="https://server.com/script.js"></script>

在这个脚本中,我可以将cookie设置为domain.com:

$.cookie('name', {
    data : data
    }, {
    path: '/',
    expires: 10,
    domain: 'domain.com'
});

我需要在server.com上设置cookie,稍后再阅读。我读到,如果我加载内容,我可以设置第三方cookie。为什么我不能像下面这样设置cookie?

$.cookie('name', {
    data : data
    }, {
    path: '/',
    expires: 10,
    domain: 'server.com'
});

首先,了解第一方cookie和第三方cookie之间的区别很重要。

第一方cookie是指您将其设置为与当前页面相同的域。只要在浏览器中启用了cookie,您就可以设置该cookie,并且只要您所在的页面与cookie的域匹配,并且cookie中设置的路径与您所在页面的路径兼容,就可以读取该cookie。任何其他域的页面都无法读取此cookie。

第三方cookie是指您为与当前所在页面的域不同的域设置的cookie。浏览器中有一个单独的安全设置,用于确定是否允许您设置第三方cookie。所以,如果你在aaa.com上,你可以为bbb.com页面设置一个cookie。即使您可以为bbb.com等其他域设置第三方cookie,您也无法从aaa.com中的页面读取该bbb.com cookie,永远。只有bbb.com的页面才能读取该cookie。

这种功能有时被广告服务用于跟踪目的,以帮助跨多个域跟踪给定用户。它还可以用于帮助在使用多个域的协作站点之间共享凭据。

重要的是要理解,第一方cookie和第三方cookie之间的区别只有在某些代码试图设置cookie时才存在,并且这种区别用于在创建cookie时应用不同的安全规则。一旦创建了cookie,它与任何其他cookie都是一样的。您永远无法从其他域读取cookie,只有标记了与当前页面域匹配的域的cookie才会发送到该服务器,或者允许通过Javascript从该页面读取。第三方cookie的概念实际上只是允许为另一个域设置cookie的一种特定情况。您永远无法从其他域读取cookie。