了解LinkedIn如何从您的浏览器中删除扩展数据

作者: COREY PROPHITT

如果您打开一个程序并且程序开始检查您的文件系统以查看您安装的其他程序,您会有什么感受?您可能会觉得软件超越了。这基本上是LInkedIn访问他们网站时所做的事情。LinkedIn将扫描您的本地浏览器文件,以尝试识别您可能已安装的许多不同的浏览器扩展。然后,LinkedIn收集的数据将从浏览器中删除。

解开谜团

当我浏览LinkedIn并碰巧打开我的浏览器控制台时,整个冒险就开始了。在我的LinkedIn个人资料中,我注意到了大量的404错误,作为开发者,它引起了我的兴趣。

替代文字

真正激起我好奇心的是所有这些失败的网络请求都是为了chrome-extension://资源。在检查了资源中的一些扩展ID后,我开始怀疑LinkedIn试图通过向浏览器本身执行本地Web请求来确定是否安装了某些扩展。

我花了一些时间来浏览我的浏览器和LinkedIn的资产。请注意,逆向工程LinkedIn的源代码显然违反了他们的服务条款。如果我是LinkedIn,我可能不希望人们弄清楚我是如何监视他们的。

在探索并进行一些调查之后,我在LinkedIn的一个本地存储值中发现了一个有趣的对象。

LinkedIn的扩展文件

LinkedIn的本地存储密钥之一是C_C_M。值本身是base64编码的字符串(不是太不正常)。但是,如果您解码字符串,您将看到一个似乎使用unicode代码点编码的大型JSON blob(非人类可读)。

替代文字

我不太确定他们是如何或为什么以这种方式编码的,但在我看来,它似乎是在试图模糊数据。编码很容易反转,只需解析JSON即可。您可以使用以下代码段自行完成:

1
JSON 。解析(ATOB (localStorage的。的getItem (“C_C_M” )));

这样做会显示一个包含一些有趣数据的大型JavaScript对象。请注意,此JSON blob中保存的数据在某种程度上是个性化的。换句话说,我的JSON blob可能比你的更大或更小。我不确定哪个启发式LinkedIn用来确定要扫描的扩展名,但他们必须使用一些。我已将我的JSON blob附加到此blob帖子以供您参考。

替代文字

LinkedIn如何搜索扩展?

在检查了JSON文件后,它变得非常清楚发生了什么。LinkedIn正在使用两种不同的方法来确定您是否安装了扩展程序。

  1. 内容更改。
  2. Web可访问的资源。

第一种方法是最简单的。LinkedIn只是在他们知道不属于那里的页面上查找某些内容。例如,如果他们找到带有ID的div email-hunter,他们就知道您安装了Email Hunter扩展程序(现在您的帐户可能受到限制,或者至少在黑名单中)。

第二种方法对我来说更有趣。构建扩展时,您可以指定Web可访问的资源。这些资源通常通过内容脚本来构建自定义界面。然而,有一点陷阱。如果内容脚本可以请求Web可访问资源,那么底层网站也可以。LinkedIn滥用此事实并向您的本地浏览器发送Web请求以尝试查找扩展。

我构建了一个简单的扩展来自动解析扩展文件和LinkedIn正在寻找的显示扩展。检查它在这里

作为开发人员,您可以做些什么来阻止检测?

那么,作为一个扩展的开发者,你能做些什么呢?我建议不要使用Web可访问资源。在LinkedIn发现的所有扩展中,大多数是由于Web可访问的资源。

我建议不要在底层页面中修改或注入用户界面功能。或者,我会使用浏览器操作并通过消息传递与内容页面进行通信。这就是我的扩展(NymeriaThe Reach)的工作原理。

对扩展程序感兴趣,该扩展程序可以自动解析LinkedIn的扩展程序文件,并向您显示LinkedIn正在搜索哪些扩展程序?我为它创建了一个工具!检查它在这里

下载linkedin-extension.json

原文链接

来了,老弟
-------------    本文结束  感谢您的阅读    -------------
0%