【问题标题】:How to block cookies until consent is given with Javascript [duplicate]在获得 Javascript 同意之前如何阻止 cookie [重复]
【发布时间】:2022-04-29 23:40:02
【问题描述】:

我的公司委托我创建一个 cookie 同意包,该包可以尽可能轻松地包含在我们任何不同的 Javascript 单页应用程序中。

阻碍我的部分是实际上阻止在同意之前设置 cookie 的部分....有没有办法用 javascript 做到这一点?

经过大量研究,我觉得我最好的选择是,在设置 cookie 后,循环遍历它们并保存每个信息(可能在另一个 cookie 或其他我还没有真正想到的方法中),然后等待用户同意他们的使用,然后再重新启用它们。

不过我对此有疑问...

首先,有没有办法防止使用唯一的 javascript 设置 cookie?这里有许多应用程序适用于此,并且它们的每个 cookie 情况都不同,所以我觉得这将是最好的选择。防止它们被设置,然后能够列出本质上要求设置的那些,以便用户可以选择是否接受它们。

如果无法实现上述操作,我想在设置后删除它们,然后按照用户的意愿重新启用它们,但是,一旦设置了 cookie,损坏是否已经造成?我这样做是否已经违反了 GDPR?如果我不是,这没关系,它甚至可以工作吗? cookie 将由我而不是原始脚本重新设置,所以我觉得这可能会导致一些问题?

谢谢

【问题讨论】:

  • 我已经看到,在问这里之前查看这个时......回答它的人链接到一个指南,该指南与我得到的答案一样接近,但我真的不明白谷歌标签管理器部分或它是如何工作的......我觉得他们跳过了其中的很大一部分。我希望谷歌标签管理器能以某种方式了解正在加载的 cookie,但是当我访问它时,它只显示几个 cookie 而不是全部。我想我需要更深入地解释所有这些。

标签: javascript cookies ecmascript-6


【解决方案1】:

首先,有没有办法防止使用唯一的javascript设置cookie?

没有。

如果无法实现上述操作,我想在设置后删除它们,然后按照用户的意愿重新启用它们,但是,一旦设置了 cookie,损坏是否已经造成?

损害已经可能造成,但更重要的是这很可能是不可能的。

客户端 JS 只能删除以下 cookie:

  • 仅 HTTP
  • 不是来自不同的来源

除非您同意,否则不要首先设置 cookie。如果 cookie 来自第三方,请在征得同意之前不要加载资源(通常为 <script src="third party url">)。


请仔细阅读 GDPR 规定。它们经常被误解为与“cookies”有关,但它们并未涵盖所有 cookie,并且确实涵盖了非 cookie 的内容。

【讨论】:

  • 所以我看到了解决方案,您只需将脚本标签中的 src 属性重命名为 data-src 之类的东西。对我来说,这个问题是我正在使用的应用程序是用 react 构建的,并用 webpack 编译成一个 javascript 文件。所有第三方插件都被拉入了事物的反应方面,所以这并不是一个真正适合我的解决方案。我能做到这一点的唯一方法是进入每个应用程序并找出添加 cookie 的内容并阻止它被导入,这是一个比我想要的复杂得多的解决方案。
猜你喜欢
  • 2019-12-23
  • 1970-01-01
  • 2018-12-18
  • 1970-01-01
  • 1970-01-01
  • 2020-04-30
  • 1970-01-01
  • 2012-06-28
  • 2013-04-22
相关资源
最近更新 更多