【问题标题】:Privacy - Track Chrome extension's outgoing AJAX queries隐私 - 跟踪 Chrome 扩展的传出 AJAX 查询
【发布时间】:2016-11-24 18:00:55
【问题描述】:

是否有任何可能的方法来跟踪来自网站的 Chrome 扩展程序的传出网络通信?

假设 Chrome 的“内容脚本”扩展程序将 AJAX 查询发送到指定 IP 上的服务器以创建自定义分析。当用户浏览各种网站时,此扩展程序可在浏览器中运行。

这些网站是否有可能跟踪扩展程序的作用(它打开 AJAX)或将数据发送到哪里? (它试图向哪个 IP 发送 AJAX 查询)

更新

需要说明的是,我对独立第三方网站的跟踪能力感到好奇,而不是扩展用户的。

更新

更多说明:扩展程序正在向与用户正在浏览的服务器/网站无关的服务器发送请求。

示例

用户每天都在浏览 Youtube 和 Facebook。此扩展将 AJAX 查询发送到存储用户访问的 URL 的存储服务器。 (优酷和脸书)。我想知道的是,f.e. Facebook 知道,这个扩展是这样做的,存储服务器的 IP 是什么?

【问题讨论】:

  • 在您的扩展程序的后台页面中发送这些请求。
  • 我认为如果 content_scripts 无法访问网页定义的变量或函数,那么 converse 断言太正确了。那就是网页无法跟踪来自 content_scripts 的请求。 Execution environment
  • @wOxxOm 有什么实际优势?

标签: javascript ajax google-chrome google-chrome-extension privacy


【解决方案1】:

基本上不会,因为isolated world 的概念。强调我的:

内容脚本在称为孤立世界的特殊环境中执行。他们可以访问被注入页面的 DOM,但不能访问页面创建的任何 JavaScript 变量或函数。它查看每个内容脚本,就好像它正在运行的页面上没有执行其他 JavaScript。反之亦然:页面上运行的 JavaScript 不能调用任何函数或访问内容脚本定义的任何变量。

因此,如果您正在考虑执行诸如覆盖 XMLHttpRequest 之类的操作,这是行不通的,因为内容脚本有一个您无法触及的“安全港”。

这甚至在将网络操作委托给后台脚本的可能性之前,这是一个完全不同的起源。

有一个例外:扩展有时可以inject code directly into the page context。然后它与网站 JavaScript 共存,理论上可以监视另一个。然而,在实践中,扩展程序可以在网站的任何代码有机会做出反应之前执行其代码,因此可以隐身/保护自己免受干扰。

【讨论】:

    【解决方案2】:

    也许这是矫枉过正,但您可以尝试使用 Wireshark(或任何其他程序)嗅探您自己的流量并查看请求。如果他们使用 https,那么事情会变得更加困难,您将不得不解密流量。

    【讨论】:

    • 感谢 Pablo,但如果我理解正确的话,Wireshark 和类似的东西需要安装在客户端计算机(使用扩展程序的计算机)上,而不是访问网站的所有者上。我现在将对我的问题进行更新,以确保我清楚我对独立网站的跟踪能力感到好奇,而不是我作为扩展程序的用户。
    • 是的,我理解错了。我认为他们可以跟踪请求的来源。例如,假设您正在从 api/getUser.php?id=1 检索 JSON,他们将能够检查 $_SERVER:[$_SERVER PHP](php.net/manual/en/reserved.variables.server.php)
    • 是的,没错。我需要再澄清一点。扩展程序将请求发送到与扩展程序用户正在浏览的服务器无关的另一台服务器。 (使用跨域 JSONP reuqest)我会尽快将这个澄清附加到我的问题中。
    猜你喜欢
    • 1970-01-01
    • 2015-02-20
    • 2020-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多