本文实用markdown编译生成,左侧有目录梗概,同步更新地址为http://www.jianshu.com/p/f9d61033650b
前言
信息时代,广告泛滥,要根治广告,我们首先要了解为什么目前广告会如此泛滥,然后这些广告都来自哪里,最后如何解决。首先需要申明,广告的屏蔽和反屏蔽其实就是现实版的“猫鼠游戏”,好贴切的比喻呀!
广告来源
广告联盟
中国互联网经过这么多年的沉浮,地下黑色产业链已经有了很大的变化。随着免费杀毒软件的流行,中国互联网发生了一些比较明显的变化,比如曾经盗号木马横行,现在就很少见了。但是,黑色产业并没有消失,而是转型做起来其他的买卖,比如买卖流量。首先是各个网站主,通过广告联盟赚钱,流量大的网站每月赚广告费月入一二十万的人大有人在。国内常见的就是百度联盟,360,腾讯等等。国外的有谷歌联盟,亚马逊联盟等等。
对于这种联盟广告,一般来说大站挂的为了用户体验,不会挂太多,但是有的小站那就严重影响体验了。
可能这篇文章的读者中也有很多博客站长们,没有在自己浏览器里使用“广告屏蔽”插件的站长们应该是寥寥无几了。其实对于“广告屏蔽”很多站长都是一个很矛盾的心理,在使用“广告屏蔽”的同时,又希望自己博客网站投放的广告少被屏蔽些。目前看,“广告屏蔽”的重灾区是移动端,现在手机端浏览器好像默认都是开启“广告 过滤”功能了,而移动端流量又是目前大部分博客网站占比最大的一块儿。目前,各个联盟也推出了广告反屏蔽功能,现已支持PC网页和移动网页的大部分样式。
运营商劫持
运营商是指那些提供宽带服务的ISP,包括三大运营商中国电信、中国移动、中国联通,还有一些小运营商,比如长城宽带、歌华有线宽带。运营商提供最最基础的网络服务, 掌握着通往用户物理大门的钥匙。
网络运营商为了卖广告或者其他经济利益,有时候会直接劫持用户的访问,目前,运营商比较常见的作恶方式有两种,分别是DNS劫持、HTTP劫持。
DNS 劫持
又称域名劫持,DNS是Domain Name System的简写,即域名系统,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网。简单地说,如果我们想访问岂安科技的官网,本来需要输入网站主机的IP地址,但是DNS可以将www.baidu.com解析成对应的IP地址,我们就不需要记住复杂的IP地址了。
这里先看DNS劫持的情况:
微云弹出的迷你浏览器直接跳转到114导航;
114劫持Steam内置浏览器被跳转到某个宣传赚钱的微信文章页(此页面欺骗性太大, 未必是运营商所为)
steam被劫持总结一下,DNS劫持有这三种情况:
1.错误域名解析到纠错导航页面,导航页面存在广告。判断方法:访问的域名是错误的,而且跳转的导航页面也是官方的,如电信的114,联通移网域名纠错导航页面。
2.错误域名解析到非正常页面,对错误的域名解析到导航页的基础上,有一定几率解析到一些恶意站点,这些恶意站点通过判断你访问的目标HOST、URI、 referrer等来确定是否跳转广告页面,这种情况就有可能导致跳转广告页面(域名输错)或者访问页面被加广告(页面加载时有些元素的域名错误而触发)这种劫持会对用户访问的目标HOST、URI、referrer等会进行判定来确定是否解析恶意站点地址,不易被发现。
3.直接将特点站点解析到恶意或者广告页面,这种情况比较恶劣,而且出现这种情况未必就是运营商所为,家里路由器被黑,或者系统被入侵,甚至运营商的某些节点被第三方恶意控制都有可能。具体情况要具体分析,这里就不展开了。
HTTP劫持
会话劫持,DNS解析的域名的IP地址不变。在和网站交互过程中的劫持了你的请求。在网站发给你信息前就给你返回了请求。这里又可以分为两类
302 Redirect
将用户 URL重定向到非目标网站。如果直接劫持用户的目标网站太过明显,因为如果用户无法访问目标站点的话,会引起大量投诉最终会导致劫持败露。所以这类劫持一般都会针对中间页面劫持,并且会增加一些过滤条件。比如用户访问目标网站后,如果点击目标网站链接,就有可能被302跳转给劫持。比较典型的就是很多搜索结果页面,点击之后跳转到了不知所云的网站:
网页内容篡改
一般会有如下情形:直接在网页插入JS(java script);在网页嵌入iframe。
HTTP劫持很好判断,当年正常访问一个无广告的页面时,页面上出现广告弹窗,八成就是运营商劫持了HTTP。下图中,右下角的广告并不是所访问的网站放置的。
V2ex被HTTP劫持HTTP劫持现在是相当普遍的,比如今年就出现了这样的事,某国字号APP被劫持
由于HTTP是明文传输的,同时流量的获利空间巨大,所以流量劫持的现象才会越来越严重。关于DNS劫持和HTTP劫持,打个比方来描述这两种劫持,DNS劫持就是你想去存钱运营商却把你拉到了劫匪手中;而HTTP劫持就是你从服务器买了一包零食电信给你放了一坨屎,横竖都很恶心人。
固件厂商
直接看图吧
image.png应对方式
广告联盟
修改hosts
最直接的办法就是直接在hosts中屏蔽掉,这里列出国内常见的几个,强制指向127.0.0.1就可以了
pos.baidu.com
hm.baidu.com
cpro.baidu.com
drmcmm.baidu.com
api.so.lianmeng.360.cn
s.lianmeng.360.cn
cas.hk.cn.criteo.com
cat.hk.cn.criteo.com
googleads.g.doubleclick.net
pagead2.googlesyndication.com
app.acm.dzwww.com
strip.taobaocdn.com
当然为了方便我也推荐一款Hosts管理软件:Switchhosts
下载地址:https://github.com/oldj/SwitchHosts/releases
SwitchHosts! 是一款集管理、切换 N 个 Hosts 方案的开源软件,基于 wxPython 开发,可在 Windows/Linux/Mac 下运行,现在作者基于 Electron 重新开发了 SwitchHosts! 功能上全部清零。这款小软件支持 Common Host 文件,切换到任意环境都将生效的host,在编辑时可显示语法高亮。
去广告hosts列表yhost:https://github.com/vokins/yhosts
uBlock Origin
如果只是浏览器使用的话,我们可以安装扩展,比如chrome系列我们可以安装uBlock Origin,里面已经预置了很多去广告的规则,并且一直在更新
uBlock Origin另一个功能是可以移除页面指定元素,比如进入论坛精品软件区
结果发现页面很大部分都被版规挡住了,这时候我就使用元素选择器,直接看效果吧。
运营商劫持
DNS劫持
DNS劫持常见于使用自动的DNS地址,所以,不管有没有被劫持,尽量不要使用运营商默认的DNS。
DNS服务器首先推荐几个安全无污染的DNS公共服务器,当然有条件的可以自建DNS服务器。
Public DNS 地址:119.29.29.29 和 182.254.116.116
114公共DNS服务地址:
纯净 无劫持 无需再忍受被强扭去看广告或粗俗网站之痛苦
服务地址为:114.114.114.114 和 114.114.115.115
拦截 钓鱼病毒木马网站 增强网银、证券、购物、游戏、隐私信息安全
服务地址为:114.114.114.119 和 114.114.115.119
学校或家长可选拦截 色情网站 保护少年儿童免受网络色情内容的毒害
服务地址为:114.114.114.110 和 114.114.115.110
onedns公共DNS服务地址:
北方首选 114.215.126.16
南方首选 112.124.47.27
南北备用 42.236.82.22
谷歌公共DNS地址:
8.8.8.8 和 8.8.4.4
如果觉得自建服务器太麻烦,推荐一款实用的DNS管理工具:DNSspeeder
下载地址:http://www.sharewarestudio.com/?page_id=6
利用DnsSpeeder可以制作本地Dns缓存服务器,加快浏览网页的速度,以及解决Dns污染和某些解析问题。绿色免费自带中文,无需配置。可以跳过运营商的 DNS 服务器。
Http劫持
对付HTTP劫持,最好的方法之一,就是使用HTTPS来连接网页。而使用HTTPS,在传输数据过程中,数据是加密的。就如同原先开车被人在车窗塞小广告,现在把窗都关紧,他人自然再也无法插足。HTTPS不仅可以防止HTTP劫持,也能够较好地防止DNS劫持,这是由于HTTPS的安全是由SSL来保证的,需要正确的证书,连接才会成立。如果DNS把域名解析到了不对应的IP,是无法通过证书认证的,连接会被终止。
实际上,现在已经有越来越多的网站支持HTTPS,但为了兼容等问题,不少网站也同时提供HTTP连接,例如著名的视频网站哔哩哔哩。主动使用HTTPS来进行连接,不但有效防止网页劫持,还能够保护隐私。如果你在使用Chrome、Firefox等支持扩展的浏览器,还可以使用强制HTTPS连接的扩展来上网,不用自己手动去试某个网站有没有HTTPS。
Https Everwhere
如果你使用的是Chrome浏览器,那么可以安装下面这个扩展Https Everwhere
下载地址:https://chrome.google.com/webstore/detail/https-everywhere/gcbommkclmclpchllfjekcdonpmejbdp?hl=zh-CN
由 Tor Project(洋葱路由器)和 EFF(电子前哨基金会)开发,可在 Google Chrome、Firefox、Opera 和 Firefox for Android 四种平台免费下载使用。从外掛名称 HTTPS Everywhere 应该就能知道它的用途,主要为加密网路,自动在网站上使用 HTTPS 加密连线!也就是大家常看到的「绿色锁头」功能。虽然不是每个网站都支援加密连线协议(但已逐渐成为標准配备),安装外掛后就能强制在每个网站使用 HTTPS 连线,也能建立规则选择是否要阻挡掉未加密的请求以获得更好的安全性。透过 HTTPS 连线的好处是什么呢?简单来说,它会在传输时自动进行加密,避免资料在途中被第三方擷取而获得重要內容(例如密码或其他隱私资讯),当然更好的是在瀏览器网址列显示绿色安全標誌,提高使用者的信任程度。设置教程:https://free.com.tw/https-everywhere/
直接投诉
可以先给运营商打电话投诉,说明自己遇到劫持了。一般情况下客服会说你可能是中毒了,不要紧坚持说自己用的是Mac,不会中毒,让对方解决。如果运营商不给解决,可以告诉对方你到工信部投诉他们,运营商八成会认怂。
如果不认怂怎么办?当然是真的到工信部投诉啊!工信部电信用户申诉受理中心:
工信部
固件厂商
这个没有什么好说的吧,最根本的方法,看看是否可以Root,然后刷机刷固件。目前常见的就是DD-WRT, Tomato 和OpenWRT,不嫌麻烦的话一般都刷OpenWRT,OpenWrt最开放最激进,适合愿意折腾且有折腾能力的人,如果你能,你会发现你可以随心所欲的扩展它,你之前掌握的有关Linux的大部分经验都适用于OpenWrt。Tomato最封闭,而且乱,给人感觉没活力。DD-WRT最接近实用,算是中庸,但是要定制和扩展都比较难。
项目主页:OpenWrt
总结
有条件的可以自建服务器,或者折腾路由器也可以,使用路由器解析DNS,加载hosts,这样整个家里都可以使用。
网友评论