有一个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。因此,如果您使用的是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。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句