将javascript cdn嵌入到Web浏览器中

分散的眼睛是mozilla firefox和google chrome的浏览器扩展,在您自己的浏览器中充当流行javascript库的内容交付网络(cdn)。这减少了页面加载时间和带宽成本,因为一些流行的库可以从您的设备加载。它还减少了您对潜在隐私的依赖,这是一些令人担忧的开放源码库外部存储库。

如果你的带宽受到限制或者非常担心你的隐私,那么严格地说去中心化是有用的,但这是个不错的主意。

DiscentreYes的工作原理是从已知的内容交付网络中识别出喜欢的资源,并将其替换为从扩展内部指向同一个JavaScript库的同一版本的链接。这将导致从扩展内加载库,而不是从Web中提取库。默认情况下,decentralyes提供所有最流行的开源JavaScript库的多个版本。

在页面开始获取外部资源之前,例如javascript文件,去中心化的外部内容网络的链接被重写为存储在扩展中的同一个库的同一版本。当地址可以成功重写时,不会对cdn进行HTTP连接。此地址重写导致库的源代码发生更改,在一些安全的网站上,巫婆可能是个问题。

内容安全策略问题

根据Mozilla的扩展政策,不允许通过扩展来干预网站的安全,这是可以理解的。该措词明确表示,扩展不应“降低HTTPS站点的安全性”,也不应“创建或暴露安全漏洞”。

内容安全策略(CSP)是一种标准规范,允许HTTPS网站白名单一组域/源,浏览器可以从中加载外部内容,如图像和javascript。通过将javascript库的源代码从网站白名单中的cdn更改为未知源代码,在这种情况下,扩展的起源,浏览器将强制实施内容安全策略并阻止加载库。

在Mozilla当前不削弱网站安全性的扩展策略下,这个问题并不能真正解决。去中心化是唯一的选择是要么阻塞,要么不替换库,一些用户可能会觉得有用,或者允许库在检测到强内容安全策略时从外部cdn加载到b。目前,这个问题导致了在使用decentralyes时,一些网站在这里和那里被破坏。

更新:版本2.0.0已使用Firefox WebExtension API完全重写。然而,这个问题仍然没有解决——现在更多的网站使用CSP,并且遇到了分散的问题。

那么隐私问题是什么呢?反正?

DecentreYes想要解决的隐私问题都是关于referer头的。喜欢我上周讨论的问题,HTTP引用头可能会泄漏有关您访问的网站的信息。内容分发网络在每次访问从中加载任何内容的任何页面时都会收到来自Web浏览器的请求。

因此,最受欢迎的cdn提供商收到了许多关于用户感兴趣的网页的信号,尽管据说cdn只提供托管服务。

有趣的是,有些免费内容交付网络是由谷歌和百度等数据代理提供的。埃夫隐私獾扩展自动检测这些cdn中的一些作为追踪器,并将自动阻止它们。


从1.3.8版开始的decentralyes支持许多最流行的开源javascript库,包括angular,骨干,道场烬,ExtCype,jQuery,jQuery用户界面,现代主义莫奥泰斯原型,脚本.aculo.us,SWFObject强调,和Web字体加载器。库替换仅在从已知内容交付网络(包括Google托管的库)加载时发生。微软Ajax内容交付网络,云闪,jQuery cdn和jsDeliver(maxcdn)延展公司和百度CDN。

我希望看到内容安全策略问题的解决方案,并在将来的去中心化更新中看到支持内容交付网络的更长列表。