比 Noscript 更好用 —— 利用 uMatrix 控制访问页面第三方资源的加载

之前一篇博客推荐过 Decentraleyes + Noscript 的防止隐私泄漏 + 加速网站访问的豪华套餐。其实 Noscript 扩展在很久以前我就开始使(zhe)用(teng),总是装了又删,删了又装。

Noscript 是一个很不错的扩展,除了防止 XSS,CSRF 以及 clickjacking 等常见网页攻击,以及用户可自己控制是否运行 Flash/Silverlight/Java/Video/Audio/iframe 等资源,最大的功能是用户可自己控制第三方 JS 的加载,从而防止第三方广告商的骚扰(比如 adclick),以及第三方网站的用户行为跟踪(比如 google analytics)。但 Noscript 也有不好用的地方,让我不得不尝试用其他的工具代替(主要是广告拦截类扩展 + ghostery)。Noscript 的问题在于,它只能让整个浏览器允许某个网站资源可下载,而不是绑定在某个标签页,或者某个网站上。比如访问 tongji.baidu.com 的时候,如果不允许 baidu.com 的资源下载,tongji.baidu.com 的正常功能都无法运行,但一旦我允许 baidu.com 资源的下载,只要安装了 baidu 统计的网站,都会执行百度统计脚本,那 Noscript 又有什么用呢……

不过现在好了,终于出现了一个功能类似 Noscript,但白名单可以为某个网站单独设置的扩展!它就是 uMatrix。而且对于颜控的我来说,它的界面也比 Noscript 好看易懂多了

uMatrix

uMatrix 不仅仅可以控制第三方 JS 的加载,所有类型的第三方资源的加载,包括 CSS、图片、视频等都可控制,并且当前网页里载入了什么,没载入什么,一目了然。如果你想切换第三方资源的载入也就是鼠标点一下就搞定,又如果你想保存此行为,以后访问相同的网站不用再动鼠标,也只用再点一下保存按钮而已,这样 uMatrix 将其作为规则之一记录下来。

这里也不得不说 uMatrix 的规则格式,非常之简单,根本不用说明一看就懂。比如,我在 stackoverflow.com 上,保存了自动加载 ajax.googleapis.com 资源的状态,uMatrix 设置里『我的规则』则会多一条:

再结合本身已有的规则,根本不用特别说明,就可以看出规则由以下 4 部分组成

  1. 网站域名,可以为 * 表示所有网站
  2. 可加载的第三方资源域名,也可为 *,并且如果域名为顶级域名,比如 googleapis.com,表示此顶级域名下的所有域名都包含,比如 ajax.googleapis.com、fonts.googleapis.com
  3. 资源类型,* 表示所有类型,也可指定具体类型比如 css、frame
  4. 阻止下载(block)或者允许下载(allow),比如默认 uMatrix 就是默认所有阻止下载(* * * block)。另外如果一个规则比另外一个规则更具体,则更具体的规则优先级更高。比如 * googleapis.com * allow 将会覆盖 * * * block,而 some.site googleapis.com * block 又将会覆盖前一个

现在不但可以在某个具体的网站上才允许某个第三方公共 CDN 网站资源被下载,而且还可以不限于 JS 文件,以前即使有 Noscripts 和 Decentraleyes,访问国外很多网站也会卡在载入 fonts.googleapis.com 的资源上(用于使用 google 提供的字体库,主要是 CSS 和字体文件,其实不用也没关系就是字体不一样而已不影响阅读),现在也可以直接忽略了。

最后,uMatrix 还可以同步一些线上的 hosts 文件,来清除广告,而不用真的去修改系统的 hosts 文件。唉,真是好久没遇到这样深得我心的扩展了,完全就是我想要的样子啊,给作者点个大大的赞(不得不提一下,uBlock Origin 这个我认为最好的广告清除扩展也是他的作品)

wx pay

CC BY-NC-ND 4.0 比 Noscript 更好用 —— 利用 uMatrix 控制访问页面第三方资源的加载 by Chrisyue's Blog is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.

发表评论

电子邮件地址不会被公开。

eighty one − = seventy eight