广告拦截 jQuery

广告拦截 jQuery

作为一名注重隐私的用户,我试图确保 Google、Facebook 等网站不会通过 Google Analytics 和 Facebook“我喜欢”按钮等网络漏洞获知我访问的任何页面。因此,我使用 Firefox 上的 Ghostery 和 AdBlock Plus 组合来阻止它们。

但是,jQuery 是另一个经常从 Google 的 CDN 下载的脚本,我无法盲目地阻止它,因为其他 (有益的) 脚本也需要它。所以,问题是:

有没有办法阻止从 Google 的 CDN 下载 jQuery,而不会完全失去其功能?理想的方法是用本地托管的副本(好吧,几个,取决于所需的版本)或托管在我选择的服务器上的副本替换它。有没有提供此功能而无需进行太多调整的隐私工具?

答案1

您所问的问题在目前的状态下,使用 Firefox 的 Ghostery 在技术上是可行的,尽管这并不容易

幽灵Firefox 提供了 2 个功能,您可以在问题中一起尝试:

  1. 用户定义的跟踪器列表 - 此功能将允许您创建自己的匹配列表,在上面的示例中,假设 jquery 由 ajax.googleapis.com 提供,并允许您根据此规则进行阻止

  2. 脚本代理支持——此功能将允许您使用本地存储的内容替换被阻止的跟踪器的内容。

答案2

jQuery 通常是大多数网站的核心功能,我创建的大多数网站都完全基于 jQuery。不过,在大型组织的网站上,他们通常倾向于使用 JavaScript 制作动画,这取决于您访问的网站。

您想要做的事情,可能可以通过 Google Chrome 来实现,使用自定义扩展程序,使所有<script>源中包含“jquery”一词的标签无效,并将其替换为服务器上托管的您自己的库,或者通过官方 jquery CDN 来实现。我确实通过 Chrome 网上商店进行了搜索,但没有找到任何可以做到这一点的东西,但您可以请求开发人员构建一个可以做到这一点的扩展程序!

不过,Google 的 jQuery 源通常对所有人开放,除非您引用的类型位于 gstatic.com 域上。

答案3

Firefox 有一个设置,禁止在每次请求时发送 HTTP referrer 标头。这意味着,在 Google 看来,从 CDN 下载 jQuery 就像您输入地址并按回车键一样;没有关于它从哪里链接的参考。

在 about:config 中转到network.http.sendRefererHeader。有效值为 0(不随任何请求发送)、1(仅在点击链接时发送)、2(在所有情况下发送)。设置为 1 可以解决您的问题,而不会破坏某些依赖于 HTTP referrer 的功能。

答案4

使用代理 HTTP 服务器,这很简单。

只需告诉代理服务器将你不想下载的脚本文件的 URL 重写为你私人提供的副本的 URL 即可。使用阿扎珀以 squid 为例,这是REWRITE模式文件中的一条简单规则。再以 privoxy 为例,这是一条重定向user.actions文件中。

与使用扩展进行此类操作相比,这种方法至少有四个好处:

  • 您不需要在 Google 和 Mozilla 基金会安装插件和扩展的永久升级跑步机上奔波。
  • 代理 HTTP 服务器与浏览器无关。当您在 Opera、Safari、Internet Explorer 等浏览器上需要此功能时,您无需费力寻找更多扩展和插件……
  • 代理服务器是集中式的,一台服务器可以为整个局域网提供服务。当您切换机器(或有时甚至是用户帐户)时,您无需重新安装和配置扩展和插件。
  • 您可以施加严格的限制,以限制软件通过 HTTP 执行您不知道的操作。如果您在每台机器上配置每个您知道的合法 HTTP 客户端以使用 HTTP 代理,则可以在边界路由器上设置限制,以阻止来自除运行代理服务器的机器之外的每台机器的所有 HTTP 流量。

当然,一旦你有了像 privoxy 这样的东西并运行起来,你就可以用 HTTP 事务做各种各样的事情——不仅仅是只是将请求重定向到您的私人内容 HTTP 服务器。

相关内容