如何防止網站被電信運營劫持彈廣告
最近家里的光纖寬帶在訪問一些特定的行業網站的時候總時不時的被電信彈窗,這類利用 iframe 劫持網站彈廣告的方式實在太下作了,其實就是一種變相的網絡攻擊行為。而且這種類型的廣告經常會讓正常網站的訪問用戶誤解,影響網站的聲譽,比如有不明所以的用戶會問「你們網站原來沒有廣告的,現在怎么一訪問就彈廣告呢?」
如何有效避免這種 iframe 劫持? 有不少朋友分享過相關的技巧,比如常用的代碼:
<script type="text/javascript">
if (top.location !== self.location) {
top.location=self.location;
}
</script>將上述代碼嵌入頁面頭部,可某種程度上避免。不過,電信運營商的手段也在不斷升級,稍加變化還能繞過去。
有研究人員給出了一段升級代碼:
<style> html{display : none ; } </style>
<script>
if( self == top ) {
document.documentElement.style.display = 'block' ;
} else {
top.location = self.location ;
}
</script>國外有個特定術語叫 Framekiller ,說的就是如何抵御這種劫持的事兒。不過這個代碼也有可能再次被繞過去,就看運營商的流氓手段到什么程度了。或許最為有效的辦法是加密傳輸內容(https)。Updated: 在電信運營商那里,這套玩意兒叫做「智能流量增值系統」,其實就是「DNS 劫持」。另外還有更高級的大殺器,「網絡定向直投系統」。網絡上能找到一些介紹信息。
網絡定向直投系統(也稱 iPUSH ),是由中國電信開發的劃時代網絡技術,可以以各種格式定時定點將廣告推送到網絡在線用戶端的瀏覽主頁面。 通過這個傳播平臺,不論電信用戶在瀏覽器地址欄中輸入任何網址進行瀏覽,網絡定向直投系統均可將廣告主動送達用戶,不依賴于某個固定的網站。
網絡定向直投系統「原理」:基于寬帶接入網,通過對用戶上網行為的分析,在用戶上網時、或正在上網的過程中,系統主動、定向、策略性、個性化的向用戶推送廣告宣傳信息。 方式:根據用戶當前瀏覽的網站或匹配對應的關鍵字,向用戶推送圖片、Flash、視頻等多媒體交互式廣告內容。有朋友告訴我,這套玩意兒「通過對電信核心線路的過濾,把目標 HTTP 包整個給替換掉,換成他們自己的頁面」,總之電信運營商為了牟利,上的全是黑客級手段。
直白的說,就是在用戶好不知情的情況下強行插廣告。
單純從用戶端無法屏蔽這種流氓廣告,建議自己有網站的朋友們,工程師們,想辦法從網站層面抵制這種行為。