动态过滤:屏蔽第三方 iframe 标签的好处 - fang5566/uBlock GitHub Wiki

返回 屏蔽模式 页面



所有网站默认屏蔽第三方 <iframe> 标签。

恶意软件保护

恶意代码常常会在被攻击盗用的网站使用 iframe 标签 -- 使用第三方来源的 <iframe> 将渗透代码工具包注入到用户计算机是一种相当普遍的技术:


volexity.com 的 "Compromised Pro-Democratic Hong Kong Websites" 博文。
uBlock Origin 作为一个提醒显示如何屏蔽第三方 <iframe> 标签。

只要默认屏蔽第三方 <iframe> 就可以阻止被渗透。

屏蔽第三方脚本通常效果更好,这样恶意代码一开始就会被阻止执行。但考虑到部分用户难以容忍网页受损,默认屏蔽(所有网站)第三方 <iframe> 标签其实真的是最好的解决办法。

最后,如果一个网站因为正常的第三方 <iframe> 被屏蔽而受损,只要一键点击就可以单独解除屏蔽:


所有站点默认屏蔽第三方 <iframe> 标签,
除了针对当前站点(这里是指 github.com)使用一条 `noop` 规则

但在此例中最好是能找出实际是哪条特定主机名需要用到 iframe 标签,然后只针对该主机名创建一条本地 noop 规则,而不是放行整个网站的所有第三方 iframe 标签。不过这个方法更适合高级用户使用。

跟踪保护

还记得 ProPublica 网站的 "Meet the Online Tracking Device That is Virtually Impossible to Block" 这篇文章吗?

标题显然是夸张的说法,跟踪行为是可以屏蔽的。

addthis.com 这段特殊的 javascript 代码藏在第三方 iframe 里执行,试图随时指纹跟踪你的浏览器。

不同于 Adblock Plus 在其博客以及一些媒体宣称的那样,事实上使用 EasyPrivacy 无法避免 AddThis 指纹跟踪你的浏览器。关于这点我已多次验证,而且在 2014 年 10 月 9 日又验证了一次:

在你访问 http://www.ibtimes.com/ 时,以下 <iframe> 会被动态创建:

<iframe id="_atssh478" title="AddThis utility frame" src="//ct1.addthis.com/static/r07/sh175.html#iit=1412897324950&amp;tmr=load%3D1412897319899%26core%3D1412897320635%26main%3D1412897324941%26ifr%3D1412897324955&amp;cb=0&amp;cdn=1&amp;chr=UTF-8&amp;kw=headline%20news%2Cdaily%20news%2Cbreaking%20news%2Cbusiness%20news%2Cpolitical%20news%2Csports%20news%2Ccurrent%20news%2Ceurope%20news%2Cworld%20news%2Casian%20news%2Ccomputer%20news%2Cairline%20news%2Cbanking%20news%2Cconsumer%20news%2Chealth%20news&amp;ab=-&amp;dh=www.ibtimes.com&amp;dr=&amp;du=http%3A%2F%2Fwww.ibtimes.com%2F&amp;dt=International%20Business%20Times%20-%20International%20Business%20News%2C%20Financial%20News%2C%20Market%20News%2C%20Politics%2C%20Forex%2C%20Commodities&amp;dbg=0&amp;md=0&amp;cap=tc%3D0%26ab%3D0&amp;inst=1&amp;vcl=1&amp;jsl=143585&amp;prod=undefined&amp;lng=en-GB&amp;ogt=title&amp;pc=flw%2Ctbx&amp;pub=ra-4fd117ff2700b0d1&amp;ssl=0&amp;sid=54371a28bc1109db&amp;srpl=1&amp;srcs=1&amp;srd=1&amp;srf=1&amp;srx=1&amp;ver=300&amp;xck=0&amp;xtr=0&amp;og=title%3DAmerican%2520Horror%2520Story&amp;aa=0&amp;csi=undefined&amp;rev=6.2&amp;ct=1&amp;xld=1&amp;xd=1" style="height: 1px; width: 1px; position: absolute; z-index: 100000; border: 0px; left: 0px; top: 0px;"></iframe>

这段代码会触发指纹跟踪行为并将结果报告给 AddThis 的服务器:

  • 所请求的 URL: http://ct1.addthis.com/static/r07/sh175.html
  • Cookie: uid=54371180c23c9d63; __atuvc=1%7C41; uit=1; km_ai=543717496fd011.83307994
  • 主机: ct1.addthis.com
  • Referer: http://www.ibtimes.com/

上述结果是从开启了 EasyListEasyPrivacy 的 Adblock Plus 那里测得的。请注意一旦你设置浏览器屏蔽第三方 cookie 和站点数据,连同指纹跟踪信息在内的所有 cookies header 都会被自动阻挡,这说明你的隐私受到保护是因为阻止了第三方 cookie,而不是开启了 ABP + EasyPrivacy

所以屏蔽第三方 <iframe> 标签可以保护你避免被 AddThis 及其他第三方网站跟踪挖掘数据(同时屏蔽第三方 <script> 标签的效果会更好)。

一旦屏蔽了第三方 <iframe> 标签,你就不必为了选择退出某些功能而询问它们,哪怕这些功能你一开始就没打算选择加入。(再说"选择退出"本来就是一个笑话,参见 "The web never forgets" (PDF) 里的 6.2 这段)

在任何情况下都别忘了一个长期固定分配的 IP 地址也会变成你被指纹跟踪的对象,所以屏蔽第三方 <iframe> 标签对阻止跟踪行为大有帮助(屏蔽第三方 <script> 标签更有效,尽管页面受损更严重)。

⚠️ **GitHub.com Fallback** ⚠️