移動端H5防劫持(防止廣告注入)

移動端H5防劫持(防止廣告注入)

最近項目中自己的H5網(wǎng)頁出現(xiàn)了被劫持插入廣告的事件歇式,看好趁著這個節(jié)點整理下H5被劫持的原因及防止劫持的方法咳榜。

原因:

經(jīng)過查找和調(diào)研市面上出現(xiàn)這種情況的原因大概分為三種:

1.DNS劫持(也就是運營商搞的鬼)

2.http劫持(此類情況最多)

3.項目中使用第三方的jar包

首先定位我們自己出現(xiàn)此類問題應(yīng)該從以下幾個方面查找除抛、調(diào)試:

1.網(wǎng)絡(luò)用的是4g還是wifi昵慌?

2.如果是wifi,是不是路邊免費的wifi无宿?

3.在什么頁面出現(xiàn)日矫?(方便定位是h5頁面還是原生界面赂弓,對大部分用戶,千萬不要問他是h5還是原生哪轿,只能自己分析盈魁,如果原生界面也出現(xiàn)那么第三方j(luò)ar出現(xiàn)問題的概率很大,如果只是h5界面窃诉,那么劫持的可能性很大)

4.使用的是android還是ios客戶端

什么是DNS劫持:

首先DNS是什么备埃。在因特網(wǎng)中,機器相互識別靠的是ip褐奴,而ip單純的無意義數(shù)字的結(jié)合按脚,很難被人類熟記,所以產(chǎn)生了域名敦冬,例如[www.baidu.com](https://link.juejin.im/?target=http%3A%2F%2Fwww.baidu.com%2F)?就是域名辅搬。那么問題來了,我們輸入域名,機器又不認(rèn)識堪遂,那么機器怎么去訪問介蛉?那么就輪到DNS出場了,DNS在作為域名和IP地址相互映射的一個分布式數(shù)據(jù)庫溶褪,就是我們的瀏覽器币旧,會將域名拿到DNS去解析出ip地址來訪問,DNS劫持是指在劫持的網(wǎng)絡(luò)范圍內(nèi)攔截域名解析的請求猿妈,分析請求的域名吹菱,把審查范圍以外的請求放行,否則返回假的IP地址或者什么都不做使請求失去響應(yīng)彭则,其效果就是對特定的網(wǎng)絡(luò)不能反應(yīng)或訪問的是假網(wǎng)址鳍刷。

通俗來說,就是他給我們指向了另一個地址俯抖,或者讓我們無法訪問输瓜。電信以前的互聯(lián)星空的,每次聯(lián)網(wǎng)打開的第一個網(wǎng)頁永遠(yuǎn)是互聯(lián)星空芬萍。就是典型的DNS劫持尤揣。

什么是http劫持:

百度百科的說法:HTTP劫持是在使用者與其目的網(wǎng)絡(luò)服務(wù)所建立的專用數(shù)據(jù)通道中,監(jiān)視特定數(shù)據(jù)信息柬祠,提示當(dāng)滿足設(shè)定的條件時北戏,就會在正常的數(shù)據(jù)流中插入精心設(shè)計的網(wǎng)絡(luò)數(shù)據(jù)報文,目的是讓用戶端程序解釋“錯誤”的數(shù)據(jù)瓶盛,并以彈出新窗口的形式在使用者界面展示宣傳性廣告或者直接顯示某網(wǎng)站的內(nèi)容最欠。

通俗來說示罗,你要去百度的首頁惩猫,他會給你百度首頁,然后再百度首頁的某個部位+個廣告蚜点。 更具欺騙性轧房,危害更大。


解決方案:

1.使用https請求替換http請求绍绘,可以有效的防止劫持奶镶。原理是:因為SSl協(xié)議唉http請求開始前增加了握手階段:


在SSL握手階段,客戶端瀏覽器會認(rèn)證服務(wù)器的身份陪拘,這是通過“證書”來實現(xiàn)的厂镇,證書由證書權(quán)威(CA)為某個域名簽發(fā),可以理解為網(wǎng)站的身份證件左刽,客戶端需要對這個證件進(jìn)行認(rèn)證捺信,需要確定該證書是否屬于目標(biāo)網(wǎng)站并確認(rèn)證書本身是否有效。最后在握手階段欠痴,通信的雙方還會協(xié)商出一個用于加密和解密的會話密鑰迄靠。

SSL握手階段結(jié)束之后秒咨,服務(wù)器和客戶端使用協(xié)商出的會話密鑰對交互的數(shù)據(jù)進(jìn)行加密/解密操作,對于HTTP協(xié)議來說掌挚,就是將HTTP請求和應(yīng)答經(jīng)過加密之后再發(fā)送到網(wǎng)絡(luò)上雨席。

2.H5處理:

嵌入的代碼基本都是iframe,把以下js代碼加入 body標(biāo)簽內(nèi)吠式,以刪除iframe(記得用script標(biāo)簽包裹)

//以下代碼為刪除嵌入廣告

var del_times = 0, deTimer = null;

function adGo() {

? ? var iframe = document.getElementsByTagName('iframe')[0];

? ? if(iframe){

? ? ? ? console.log(iframe)

? ? ? ? //循環(huán) iframe 父類陡厘,直到找到body和body的下一級,然后整個嵌入的代碼刪除奇徒。

? ? ? ? var bodyNode = {tagName:''}, iframeParent, targetNode = iframe.parentNode;

? ? ? ? while (bodyNode.tagName != 'BODY'){

? ? ? ? ? ? bodyNode = targetNode;

? ? ? ? ? ? if(bodyNode.tagName != 'BODY'){

? ? ? ? ? ? ? ? iframeParent = targetNode;

? ? ? ? ? ? ? ? targetNode = targetNode.parentNode;

? ? ? ? ? ? }

? ? ? ? }

? ? ? ? if(iframeParent) //如果iframe有父類

? ? ? ? ? ? bodyNode.removeChild(iframeParent);

? ? ? ? else

? ? ? ? ? ? bodyNode.removeChild(iframe);

? ? }

? ? del_times++;

? ? if (del_times > 10) window.clearInterval(deTimer)

}

deTimer = self.setInterval(adGo, 1000);? //把這個1000, 調(diào)低一點雏亚,比如200


附掘金原版鏈接:https://juejin.im/entry/5bf193f66fb9a04a0279f202

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市摩钙,隨后出現(xiàn)的幾起案子罢低,更是在濱河造成了極大的恐慌,老刑警劉巖胖笛,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件网持,死亡現(xiàn)場離奇詭異,居然都是意外死亡长踊,警方通過查閱死者的電腦和手機功舀,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來身弊,“玉大人辟汰,你說我怎么就攤上這事≮宸穑” “怎么了帖汞?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長凑术。 經(jīng)常有香客問我翩蘸,道長,這世上最難降的妖魔是什么淮逊? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任催首,我火速辦了婚禮,結(jié)果婚禮上泄鹏,老公的妹妹穿的比我還像新娘郎任。我一直安慰自己,他們只是感情好备籽,可當(dāng)我...
    茶點故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布舶治。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪歼疮。 梳的紋絲不亂的頭發(fā)上杂抽,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天,我揣著相機與錄音韩脏,去河邊找鬼缩麸。 笑死,一個胖子當(dāng)著我的面吹牛赡矢,可吹牛的內(nèi)容都是我干的杭朱。 我是一名探鬼主播,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼吹散,長吁一口氣:“原來是場噩夢啊……” “哼弧械!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起空民,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤刃唐,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后界轩,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體画饥,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年浊猾,在試婚紗的時候發(fā)現(xiàn)自己被綠了抖甘。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡葫慎,死狀恐怖衔彻,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情偷办,我是刑警寧澤艰额,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站爽篷,受9級特大地震影響悴晰,放射性物質(zhì)發(fā)生泄漏慢睡。R本人自食惡果不足惜逐工,卻給世界環(huán)境...
    茶點故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望漂辐。 院中可真熱鬧泪喊,春花似錦、人聲如沸髓涯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蚓再,卻和暖如春滑肉,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背摘仅。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工靶庙, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人娃属。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓六荒,卻偏偏與公主長得像,于是被迫代替她去往敵國和親矾端。 傳聞我的和親對象是個殘疾皇子掏击,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,440評論 2 348

推薦閱讀更多精彩內(nèi)容