从另一个域 B 设置 cookie,以便在以后访问网站 A 时用作网站 A 的第一方 cookie

问题描述 投票:0回答:1

请帮我澄清我对cookie的理解,以及在这种情况下可以做什么

  1. 我的公司
    mycompany-example.com
    有一个小部件服务,可以在给定网站上注入html和JS代码以及有用的内容@
    api.mycompany-example.com
  2. 客户 C 有一个网站
    website.mycustomer-example.com
    ,他在其中添加了我们的小部件。他们添加了一个 div 和一个脚本,该脚本从我们的 API @
    api.mycompany-example.com
    请求 html/JS 代码,并用内容填充此 div(响应是 JS 响应)
  3. 此小部件部署在客户 C 上,然后执行额外的 API 请求以根据用户操作更新其自身内容
  4. 从此小部件创建的内容包括链接,单击这些链接将打开我们网站页面的新选项卡
    www.mycompany-example.com
  5. 当到达
    www.mycompany-example.com
    时,我们希望准确跟踪我们的客户来自哪个小部件,如果可能的话,不诉诸 URL 参数或任何可能被阻止的广告跟踪 cookie(目前我们在 4 的 URL 中使用 URL 参数。) .

问题:我可以从 2. 和 3. 中创建域

widget_id
的服务器端 httpOnly cookie(包含
mycompany-example.com
),可以在步骤 5. 当用户访问我们的网站时使用,以便我们知道哪个小部件他们来自哪里?

纠正我的理解,但是在步骤 2. 或 3. 创建此类 cookie 时,它将被视为客户网站的第三方 cookie

website.mycustomer-example.com
。这就是 Chrome(以及整个网络?)未来将被放弃的内容,我们应该停止使用。

但是,浏览器是否仍允许设置此 cookie,以便稍后在用户最终访问我们的网站时使用该 cookie?

我的理解是否存在差距或我遗漏的安全问题?

javascript security cookies third-party-cookies
1个回答
0
投票

*.mycustomer-example.com
上的 HTML 页面包含从不同域(如
<script>
)(您的步骤 2)加载 Javascript 的
*.mycompany-example.com
元素时,Javascript 响应可以设置 cookie。但这将是第三方 cookie,因此会被浏览器阻止(Google Chrome 将强制执行此类阻止从 2024 年开始)。

即使将其设为分区 cookie 也无济于事:HTTP 标头

Set-Cookie: widget_id=xxx; SameSite=None; Secure; Partitioned
Javascript 响应中的

设置 浏览器中的 cookie,但浏览器只会在顶级页面仍然来自 *.mycustomer-example.com 时才重新发送

它。当用户在 
*.mycompany-example.com 打开新选项卡(您的第 5 步)时,它不会发送
 cookie。

您在嵌入和不嵌入中使用相同 Cookie 的用例与广告跟踪无法区分,因此将被阻止。我建议您只需将想要传输的信息放在 URL 参数中即可。您认为这与 cookie 相比有何缺点?

© www.soinside.com 2019 - 2024. All rights reserved.