• 搜索
官方微信群 扫码添加,拉你进群
订阅号
服务号
跨境资讯

为你推送和解读最前沿、最有料的跨境电商资讯

90% 亚马逊卖家都在关注的微信公众号

精选今日跨境电商头条资讯

给亚马逊,eBay、Lazada、速卖通、自养号测评需要注意什么

网商动力
(eceky.cn)实用跨境电商导航工具,致力打造集全球开店服务、 !。
2021-12-07 16:13:43
22

你的浏览器中是否安装了隐私保护扩展程序?有很多这类扩展程序,每个安全厂商都在推广自己的产品。通常情况下,这些东西会提供一个名为 “反指纹追踪” 或 “指纹追踪保护” 的功能,理论上它应该使你在网络上的身份可识别性降低。而你不会注意到的是:这个功能几乎都是有缺陷的,有可能反而让指纹追踪变得更容易了。

我见过很多扩展错误地声称了这个功能,但我却很少去写报告。要充分解释这个问题有点费劲。另一方面,很明显,对于大多数厂商来说,隐私保护只是他们可以放在功能列表上的一个噱头。质量并不重要,因为没有用户能够判断他们的解决方案是否真的有效。在可用资源极少的情况下,我的问题报告不太可能引起有意义的行动。

这就是为什么我决定在一篇博文中解释这些问题,下一次我遇到浏览器扩展程序遭受所有相同的缺陷时,我可以把这篇文章的链接发给他们。也许有些厂商就会解决这些问题。或者,更好的是,一开始就不犯这些错误。

浏览器指纹追踪如何令指纹追踪变得更容易

指纹追踪的工作原理

当你浏览网页时,不仅仅是在与访问的网站互动,还在与众多第三方互动。其中许多人对在不同网站上可靠地识别你有巨大的兴趣,例如广告商希望 “个性化” 给的广告。传统的方法是在浏览器中存储一个cookie,其中包含唯一标识符。然而,现代浏览器有一个非常值得推荐的设置,即 在浏览会话结束时清除cookie。还有一种私密浏览模式,在这种模式下,不会永久地存储任何Cookie。预计很快会对第三方cookie实施进一步的技术限制,欧盟的数据保护规则也使存储cookie变得复杂,至少可以说是如此。

所以 Cookie 越来越不靠谱了。指纹追踪应该是解决这个问题,通过识别个人用户,而不在用户端存储任何数据。它的想法是查看浏览器无论如何都会提供的有关用户系统的数据,例如显示分辨率。数据是什么并不重要,重要的是:

足够稳定,最好几个月不变

特征性强,一小部分人所独有的

请注意,没有任何数据点需要单独确定一个人。如果每一个数据点都指的是不同的人群,那么只要有足够多的数据点,所有这些人群的交叉点将永远是一个人。

浏览器指纹追踪如何令指纹追踪变得更容易

反指纹追踪应该如何操作?

反指纹追踪的目标是减少可用于指纹识别的数据的数量和质量。例如,CSS曾经允许识别用户以前访问过的网站  — — 这是一个设计上的缺陷,可以用于指纹识别等。虽然花了不少时间和精力,但最终浏览器们还是找到了一个不会破坏网页的修复方法。如今,这个数据点已经不再对网站开放。

其他数据点依然存在,但已经被大大化解。例如,浏览器为网站提供了一个用户代理字符串,使这些网站知道例如他们正在处理的是哪个浏览器品牌和版本。用户安装的应用程序用自己的标识符来扩展这个用户代理字符串。

最终,浏览器供应商认识到这可能被滥用于指纹识别,并决定删除任何第三方添加的信息。这里原来的许多其他信息也被删除了,所以今天任何用户代理字符串通常是一大群人的共同信息。

攻击错了目标

浏览器厂商已经在反指纹追踪方面投入了大量的工作。不过,他们通常只限于不会破坏现有网站的措施。而像显示分辨率(不像窗口大小)这样的东西并没有被太多的网站所考虑,但这些显然已经足够了,浏览器仍然会给他们提供用户的显示分辨率和可用空间(通常显示分辨率不包括任务栏)。

而隐私保护扩展则没有表现出那么多的关注。所以他们一般会做这样的事

screen.width = 1280; screen.height = 1024;

网站现在将看到每个人都是相同的显示分辨率对吗?好吧,除非网站这样做:

delete screen.width; delete screen.height;

突然间 screen.width 和 screen.height 恢复到了原来的值。指纹追踪现在可以使用两个数据点而不是一个数据点:不仅仅是真实的显示器分辨率,还有假的。即使那个假的显示器分辨率极其普通,也会让指纹追踪稍微精确一些。

这是魔术吗?不是,只是 JavaScript 原型的工作原理。这些属性并不是定义在屏幕对象本身,而是对象原型的一部分。所以那个隐私扩展为原型的属性添加了一个重写。删除了重写后,原来的属性又变得可见了。

那么这样的做法正确吗?

Object.defineProperty(Screen.prototype, "width", {value: 1280});

好多了。网站不再能轻易地检索到原始值。但是,它可以通过调用

Object.getOwnPropertyDescriptor(Screen.prototype, “width”)

来检测该值是否被操纵。通常情况下,生成的属性描述符会包含一个getter,然而这个属性描述符有一个静态值。而事实上,一个隐私扩展程序在捣鼓这些值,又是一个可用的数据点。

让我们在不改变属性描述符的情况下尝试一下:

Object.defineProperty(Screen.prototype, "width", {get: () => 1280});

差不多了。但是现在网站可以调用

Object.getOwnPropertyDescriptor(Screen.prototype, “width”).get.toString()

来查看我们getter的源码。同样是一个数据点,可以用来做指纹识别。源码需要隐藏:

Object.defineProperty(Screen.prototype, "width", {get: (() => 1280).bind(null)});

这个 bind() 调用确保 getter 看起来像一个本地函数。这正是我们所需要的。

Firefox 允许内容脚本调用 exportFunction(),这是一个更好的方法。尤其是,它不需要在网页上下文中注入任何代码。不幸的是,这个功能在基于 Chromium 的浏览器中是不可用的。

捕捉所有这些讨厌的框架

这里有一个复杂的问题:一个网站不仅仅有一个JavaScript执行上下文,它的每个框架都有一个。所以您必须确保您的内容脚本能在所有这些框架中运行。所以浏览器扩展通常会在其 manifest 中指定 “all_frames”: true。这是对的。但是,网站就会做这样的事:

var frame = document.createElement("iframe");

为什么这个新创建的框架还在报告原来的显示宽度?我们又回到了原点:网站又有了两个数据点,而不是一个。

这里的问题是:如果没有设置框架位置,默认是加载特殊页面 about:blank。当Chrome开发者最初创建他们的扩展API时,他们没有给扩展提供任何方法来运行这里的内容脚本。幸运的是,现在这个漏洞已经被堵上了,但扩展清单也必须设置为

“match_about_blank”: true

时机问题

由于浏览器扩展中的防指纹追踪功能具有相当大的侵入性,容易破坏网站。所以让用户在特定的网站上禁用这个功能是很重要的。这就是为什么您会经常在扩展内容脚本中看到这样的代码:

chrome.runtime.sendMessage("AmIEnabled", function(enabled)

因此,这个内容脚本不是立即初始化所有的防指纹措施,而是先等待扩展的后台页面告诉它是否真的应该做什么。这给了网站必要的时间来存储所有相关的值,在它被更改之前。网站甚至可以稍后再来检查被更改后的值 — — 再次强调,两个数据点比一个好。

这是Chrome浏览器扩展架构的一个重要局限性,很遗憾,这也是当今所有浏览器所共有的。可以在任何网页脚本运行之前运行一个内容脚本 (“run_at”: “document_start”)。然而这将只是一个静态脚本,不知道任何扩展状态。而且请求扩展状态需要时间。

这可能最终会通过动态内容脚本支持得到解决,这是十年前就提出的要求。然而与此同时,似乎唯一可行的解决方案是立即初始化反指纹追踪。如果扩展后来说 “不,你被禁用了” — — 好吧,那么内容脚本就只能撤销所有的操作了。但这种方法可以确保在普通情况下(功能已启用的情况下)网站不会看到相同数据的两个变体。

伪造的艺术

比方说,所有的技术问题都解决了。安装假值的机制完美无缺。这还是有一个问题:如何选择 “合适” 的假值?随机选择一个值呢?我的显示分辨率是1661×3351,指纹识别并不依赖于有意义的数据,它需要的是稳定且足够独特的数据。而这个显示分辨率无疑是极其独特的。现在人们可以想出方案来定期改变这个数值,但事实是:让用户脱颖而出并不是正确的方式。

更希望的是找到一个最大的群体,然后加入其中。我的显示分辨率是1920×1080 — — 就是常见的全高清,没啥好看的。想知道我的可用显示空间吗?我的Windows任务栏在底部,和大家一样。不,我也没有调整它的大小。我只是普通人。

这种方法唯一的麻烦是:必须定期重新评估数值。20年前,1024×768是最常见的显示分辨率,也是防指纹追踪的好选择。而今天,如果有人宣称自己的屏幕尺寸是这样的,肯定会引人注目。同样,在网站日志中,声称使用Firefox 48的访问者也会很突出:几年前,它可能是一个常见的浏览器版本,但今天通常是仅仅假装成网站访问者的机器人。

如果反浏览器指纹插件不行,也可以考虑巨象指纹浏览器这种软件工具。巨象指纹浏览器基于Chromium,除了设置代理 -IP,还可以更彻底的修改基础的指纹信息UA、时区、语言、GEO、分辨率、字体等等。

最值得关注的是,它可以通过浏览器底层的调整,支持修改Canvas,WebGL,Audio等硬件指纹信息。

巨象防关联指纹浏览器网址:https://jxexplorer.com/home.html

联系客服领取试用:17602399866


二维码
我们建了一个亚马逊卖家交流群,里面不乏很多大卖家。
现在扫码回复“ 加群 ”,拉你进群。
目前30万+人已关注加入我们
声明:此文章来源于网络,不代表网商动力立场。如有侵权,请联系我们。
快给朋友分享吧!
0 赞
最新
跨境电商入门指南:如何入驻Mercadolibre平台全解析
跨境电商入门指南:如何入驻Mercadolibre平台全解析
跨境电商入门指南:如何入驻Mercadolibre平台全解析 正文: 在全球化的大背景下,越来越多的国内卖家开始寻求跨境电商的机会。Mercadolibre作为拉丁美洲最大的电子商...
Ozon平台合法性解析:探究Ozon跨境电商业务的可行性与合规性
Ozon平台合法性解析:探究Ozon跨境电商业务的可行性与合规性
Ozon平台运营规范:揭秘Ozon跨境电商平台的规则与标准 在跨境电商日益繁荣的当下,Ozon平台凭借其良好的口碑和优质的服务,吸引了众多商家和消费者的关注。为了确保平...
Shein平台入驻揭秘:深入了解Shein入驻模式和注册流程要点
Shein平台入驻揭秘:深入了解Shein入驻模式和注册流程要点
Shein注册指南:轻松上手:Shein详细注册流程全攻略 在追求时尚与便捷购物的时代,Shein作为一家领先的时尚购物网站,不仅提供了丰富的潮流服饰和配饰,还支持全球快速发...
gmarket官网新用户注册攻略:一步步教你完成注册流程
gmarket官网新用户注册攻略:一步步教你完成注册流程
Gemini交易平台注册全攻略:松创建账户+身份验证流程详解 在全球数字货币交易领域,Gemini平台以其安全可靠和合规性著称。想要加入Gemini进行数字货币交易?本文将为您...
2024年Ozon跨境电商市场新机遇:卖家现状与运营策略解析
2024年Ozon跨境电商市场新机遇:卖家现状与运营策略解析
2024年Ozon跨境电商市场新机遇:卖家现状与运营策略解析 随着跨境电商的蓬勃发展,Ozon平台作为俄罗斯最大的在线购物平台之一,吸引了全球众多卖家的目光。面对2024年...
亚马逊官网登录入口:快速链接及详细登录步骤
亚马逊官网登录入口:快速链接及详细登录步骤
亚马逊全解析:深度揭秘平台优势与全球站点运营策略 摘要:亚马逊,作为全球最大的电子商务平台之一,以其卓越的平台优势和多站点布局吸引了无数卖家。本文将对亚马逊的...
Copyright ? 2016-2022 ? ? 亚马逊卖家导航? ? 晋ICP备20005961号-2 声明:网站上的服务均为第三方提供,与网商动力无关。请用户注意甄别服务质量,避免上当受骗。