Chrome扩展设置doubleclick.net Cookie问题:禁用第三方Cookie仍存在,如何处理?
嘿,这个问题我之前处理过类似的场景,咱们来一步步理清解决思路:
首先得搞清楚:你在当前页面的document.cookie里看不到这些doubleclick.net的Cookie,是因为它们属于第三方跨域Cookie,而且大概率是由Chrome扩展的后台脚本/内容脚本在独立的上下文里设置的。
浏览器的同源策略和Cookie隔离机制,会限制当前页面的JavaScript只能访问当前域名下的Cookie——你根本拿不到doubleclick.net这个第三方域名的Cookie,更别说用JS删除了。哪怕是设置这些Cookie的扩展,除非它主动提供了删除接口,否则外部JS也碰不到这些Cookie。
既然JS走不通,咱们换几个方向来解决:
先确认是不是目标扩展在搞事
暂时禁用这款Chrome扩展,刷新页面后看控制台里的doubleclick Cookie日志是不是消失了。如果消失了,那百分百是这个扩展的问题——有些扩展会内置广告追踪逻辑,而且因为扩展拥有特殊的跨域权限,能绕过浏览器的第三方Cookie禁用设置。用Chrome的站点权限彻底封锁doubleclick.net
- 打开Chrome设置 → 隐私和安全性 → 站点设置 → Cookie和网站数据
- 先点击「查看所有Cookie和网站数据」,搜索
doubleclick.net,删除所有相关Cookie - 返回站点设置,点击「添加站点」,输入
doubleclick.net,然后把Cookie权限设置为「阻止」
另外,开启Chrome的「增强型安全浏览」(设置→隐私和安全性→安全→增强型),它会更严格地拦截追踪类Cookie和请求。
检查扩展自身的隐私设置
很多扩展会自带隐私开关,比如「禁用数据追踪」「不加载广告相关模块」之类的选项。去扩展的设置页面翻一翻,要是有这类开关,打开它大概率能停止设置这些Cookie。用内容拦截器拦截Cookie
安装像uBlock Origin这类的内容拦截工具,添加自定义规则来阻止doubleclick.net的Cookie设置:
在uBlock的「我的规则」里添加:||doubleclick.net^$cookie
这条规则会直接拦截所有来自doubleclick.net的Cookie请求。注意:如果原扩展依赖doubleclick的某些功能,可能会影响它的正常使用,添加后记得测试一下。进阶:检查扩展的后台脚本(适合开发者)
打开Chrome扩展管理页面,开启「开发者模式」,点击目标扩展的「背景页」或「服务工作者」,在开发者工具的控制台里排查有没有发送到doubleclick.net的请求,或者设置Cookie的代码。如果扩展是开源的,你可以修改对应的代码后重新加载;如果是闭源的,就只能用前面的拦截方法了。
内容的提问来源于stack exchange,提问作者Rob Kwasowski

