本文實用markdown編譯生成,左側有目錄梗概,同步更新地址為http://www.lxweimin.com/p/f9d61033650b
前言
信息時代,廣告泛濫,要根治廣告,我們首先要了解為什么目前廣告會如此泛濫,然后這些廣告都來自哪里,最后如何解決。首先需要申明,廣告的屏蔽和反屏蔽其實就是現(xiàn)實版的“貓鼠游戲”,好貼切的比喻呀!
廣告來源
廣告聯(lián)盟
中國互聯(lián)網(wǎng)經(jīng)過這么多年的沉浮,地下黑色產(chǎn)業(yè)鏈已經(jīng)有了很大的變化。隨著免費殺毒軟件的流行,中國互聯(lián)網(wǎng)發(fā)生了一些比較明顯的變化,比如曾經(jīng)盜號木馬橫行,現(xiàn)在就很少見了。但是,黑色產(chǎn)業(yè)并沒有消失,而是轉型做起來其他的買賣,比如買賣流量。首先是各個網(wǎng)站主,通過廣告聯(lián)盟賺錢,流量大的網(wǎng)站每月賺廣告費月入一二十萬的人大有人在。國內(nèi)常見的就是百度聯(lián)盟,360,騰訊等等。國外的有谷歌聯(lián)盟,亞馬遜聯(lián)盟等等。
對于這種聯(lián)盟廣告,一般來說大站掛的為了用戶體驗,不會掛太多,但是有的小站那就嚴重影響體驗了。
可能這篇文章的讀者中也有很多博客站長們,沒有在自己瀏覽器里使用“廣告屏蔽”插件的站長們應該是寥寥無幾了。其實對于“廣告屏蔽”很多站長都是一個很矛盾的心理,在使用“廣告屏蔽”的同時,又希望自己博客網(wǎng)站投放的廣告少被屏蔽些。目前看,“廣告屏蔽”的重災區(qū)是移動端,現(xiàn)在手機端瀏覽器好像默認都是開啟“廣告 過濾”功能了,而移動端流量又是目前大部分博客網(wǎng)站占比最大的一塊兒。目前,各個聯(lián)盟也推出了廣告反屏蔽功能,現(xiàn)已支持PC網(wǎng)頁和移動網(wǎng)頁的大部分樣式。
運營商劫持
運營商是指那些提供寬帶服務的ISP,包括三大運營商中國電信、中國移動、中國聯(lián)通,還有一些小運營商,比如長城寬帶、歌華有線寬帶。運營商提供最最基礎的網(wǎng)絡服務, 掌握著通往用戶物理大門的鑰匙。
網(wǎng)絡運營商為了賣廣告或者其他經(jīng)濟利益,有時候會直接劫持用戶的訪問,目前,運營商比較常見的作惡方式有兩種,分別是DNS劫持、HTTP劫持。
DNS 劫持
又稱域名劫持,DNS是Domain Name System的簡寫,即域名系統(tǒng),它作為可以將域名和IP地址相互映射的一個分布式數(shù)據(jù)庫,能夠使人更方便的訪問互聯(lián)網(wǎng)。簡單地說,如果我們想訪問豈安科技的官網(wǎng),本來需要輸入網(wǎng)站主機的IP地址,但是DNS可以將www.baidu.com解析成對應的IP地址,我們就不需要記住復雜的IP地址了。
這里先看DNS劫持的情況:
微云彈出的迷你瀏覽器直接跳轉到114導航;
Steam內(nèi)置瀏覽器被跳轉到某個宣傳賺錢的微信文章頁(此頁面欺騙性太大, 未必是運營商所為)
總結一下,DNS劫持有這三種情況:
1.錯誤域名解析到糾錯導航頁面,導航頁面存在廣告。判斷方法:訪問的域名是錯誤的,而且跳轉的導航頁面也是官方的,如電信的114,聯(lián)通移網(wǎng)域名糾錯導航頁面。
2.錯誤域名解析到非正常頁面,對錯誤的域名解析到導航頁的基礎上,有一定幾率解析到一些惡意站點,這些惡意站點通過判斷你訪問的目標HOST、URI、 referrer等來確定是否跳轉廣告頁面,這種情況就有可能導致跳轉廣告頁面(域名輸錯)或者訪問頁面被加廣告(頁面加載時有些元素的域名錯誤而觸發(fā))這種劫持會對用戶訪問的目標HOST、URI、referrer等會進行判定來確定是否解析惡意站點地址,不易被發(fā)現(xiàn)。
3.直接將特點站點解析到惡意或者廣告頁面,這種情況比較惡劣,而且出現(xiàn)這種情況未必就是運營商所為,家里路由器被黑,或者系統(tǒng)被入侵,甚至運營商的某些節(jié)點被第三方惡意控制都有可能。具體情況要具體分析,這里就不展開了。
HTTP劫持
會話劫持,DNS解析的域名的IP地址不變。在和網(wǎng)站交互過程中的劫持了你的請求。在網(wǎng)站發(fā)給你信息前就給你返回了請求。這里又可以分為兩類
302 Redirect
將用戶 URL重定向到非目標網(wǎng)站。如果直接劫持用戶的目標網(wǎng)站太過明顯,因為如果用戶無法訪問目標站點的話,會引起大量投訴最終會導致劫持敗露。所以這類劫持一般都會針對中間頁面劫持,并且會增加一些過濾條件。比如用戶訪問目標網(wǎng)站后,如果點擊目標網(wǎng)站鏈接,就有可能被302跳轉給劫持。比較典型的就是很多搜索結果頁面,點擊之后跳轉到了不知所云的網(wǎng)站:
網(wǎng)頁內(nèi)容篡改
一般會有如下情形:直接在網(wǎng)頁插入JS(java script);在網(wǎng)頁嵌入iframe。
HTTP劫持很好判斷,當年正常訪問一個無廣告的頁面時,頁面上出現(xiàn)廣告彈窗,八成就是運營商劫持了HTTP。下圖中,右下角的廣告并不是所訪問的網(wǎng)站放置的。
HTTP劫持現(xiàn)在是相當普遍的,比如今年就出現(xiàn)了這樣的事,某國字號APP被劫持
由于HTTP是明文傳輸?shù)模瑫r流量的獲利空間巨大,所以流量劫持的現(xiàn)象才會越來越嚴重。關于DNS劫持和HTTP劫持,打個比方來描述這兩種劫持,DNS劫持就是你想去存錢運營商卻把你拉到了劫匪手中;而HTTP劫持就是你從服務器買了一包零食電信給你放了一坨屎,橫豎都很惡心人。
固件廠商
直接看圖吧
應對方式
廣告聯(lián)盟
修改hosts
最直接的辦法就是直接在hosts中屏蔽掉,這里列出國內(nèi)常見的幾個,強制指向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 開發(fā),可在 Windows/Linux/Mac 下運行,現(xiàn)在作者基于 Electron 重新開發(fā)了 SwitchHosts! 功能上全部清零。這款小軟件支持 Common Host 文件,切換到任意環(huán)境都將生效的host,在編輯時可顯示語法高亮。
去廣告hosts列表yhost:https://github.com/vokins/yhosts
uBlock Origin
如果只是瀏覽器使用的話,我們可以安裝擴展,比如chrome系列我們可以安裝uBlock Origin,里面已經(jīng)預置了很多去廣告的規(guī)則,并且一直在更新
uBlock Origin另一個功能是可以移除頁面指定元素,比如進入論壇精品軟件區(qū)
結果發(fā)現(xiàn)頁面很大部分都被版規(guī)擋住了,這時候我就使用元素選擇器,直接看效果吧。
運營商劫持
DNS劫持
DNS劫持常見于使用自動的DNS地址,所以,不管有沒有被劫持,盡量不要使用運營商默認的DNS。
首先推薦幾個安全無污染的DNS公共服務器,當然有條件的可以自建DNS服務器。
Public DNS 地址:119.29.29.29 和 182.254.116.116
114公共DNS服務地址:
純凈 無劫持 無需再忍受被強扭去看廣告或粗俗網(wǎng)站之痛苦
服務地址為:114.114.114.114 和 114.114.115.115
攔截 釣魚病毒木馬網(wǎng)站 增強網(wǎng)銀、證券、購物、游戲、隱私信息安全
服務地址為:114.114.114.119 和 114.114.115.119
學校或家長可選攔截 色情網(wǎng)站 保護少年兒童免受網(wǎng)絡色情內(nèi)容的毒害
服務地址為: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緩存服務器,加快瀏覽網(wǎng)頁的速度,以及解決Dns污染和某些解析問題。綠色免費自帶中文,無需配置。可以跳過運營商的 DNS 服務器。
Http劫持
對付HTTP劫持,最好的方法之一,就是使用HTTPS來連接網(wǎng)頁。而使用HTTPS,在傳輸數(shù)據(jù)過程中,數(shù)據(jù)是加密的。就如同原先開車被人在車窗塞小廣告,現(xiàn)在把窗都關緊,他人自然再也無法插足。HTTPS不僅可以防止HTTP劫持,也能夠較好地防止DNS劫持,這是由于HTTPS的安全是由SSL來保證的,需要正確的證書,連接才會成立。如果DNS把域名解析到了不對應的IP,是無法通過證書認證的,連接會被終止。
實際上,現(xiàn)在已經(jīng)有越來越多的網(wǎng)站支持HTTPS,但為了兼容等問題,不少網(wǎng)站也同時提供HTTP連接,例如著名的視頻網(wǎng)站嗶哩嗶哩。主動使用HTTPS來進行連接,不但有效防止網(wǎng)頁劫持,還能夠保護隱私。如果你在使用Chrome、Firefox等支持擴展的瀏覽器,還可以使用強制HTTPS連接的擴展來上網(wǎng),不用自己手動去試某個網(wǎng)站有沒有HTTPS。
Https Everwhere
如果你使用的是Chrome瀏覽器,那么可以安裝下面這個擴展Https Everwhere
下載地址:https://chrome.google.com/webstore/detail/https-everywhere/gcbommkclmclpchllfjekcdonpmejbdp?hl=zh-CN
由 Tor Project(洋蔥路由器)和 EFF(電子前哨基金會)開發(fā),可在 Google Chrome、Firefox、Opera 和 Firefox for Android 四種平臺免費下載使用。從外掛名稱 HTTPS Everywhere 應該就能知道它的用途,主要為加密網(wǎng)路,自動在網(wǎng)站上使用 HTTPS 加密連線!也就是大家常看到的「綠色鎖頭」功能。雖然不是每個網(wǎng)站都支援加密連線協(xié)議(但已逐漸成為標準配備),安裝外掛后就能強制在每個網(wǎng)站使用 HTTPS 連線,也能建立規(guī)則選擇是否要阻擋掉未加密的請求以獲得更好的安全性。透過 HTTPS 連線的好處是什么呢?簡單來說,它會在傳輸時自動進行加密,避免資料在途中被第三方擷取而獲得重要內(nèi)容(例如密碼或其他隱私資訊),當然更好的是在瀏覽器網(wǎng)址列顯示綠色安全標誌,提高使用者的信任程度。設置教程:https://free.com.tw/https-everywhere/
直接投訴
可以先給運營商打電話投訴,說明自己遇到劫持了。一般情況下客服會說你可能是中毒了,不要緊堅持說自己用的是Mac,不會中毒,讓對方解決。如果運營商不給解決,可以告訴對方你到工信部投訴他們,運營商八成會認慫。
如果不認慫怎么辦?當然是真的到工信部投訴啊!工信部電信用戶申訴受理中心:
固件廠商
這個沒有什么好說的吧,最根本的方法,看看是否可以Root,然后刷機刷固件。目前常見的就是DD-WRT, Tomato 和OpenWRT,不嫌麻煩的話一般都刷OpenWRT,OpenWrt最開放最激進,適合愿意折騰且有折騰能力的人,如果你能,你會發(fā)現(xiàn)你可以隨心所欲的擴展它,你之前掌握的有關Linux的大部分經(jīng)驗都適用于OpenWrt。Tomato最封閉,而且亂,給人感覺沒活力。DD-WRT最接近實用,算是中庸,但是要定制和擴展都比較難。
項目主頁:OpenWrt
總結
有條件的可以自建服務器,或者折騰路由器也可以,使用路由器解析DNS,加載hosts,這樣整個家里都可以使用。