Web 前端頁面劫持和反劫持

2021-09-20 09:21:13 字數 1587 閱讀 9684

按照劫持的方法不同,我將劫持分為下面兩類:

注入型劫持:有別於跳轉型型劫持,指通過在正常的網頁中注入廣告**(js、iframe等),實現頁面彈窗提醒或者底部廣告等,又分為下面三個小類:

為了區分哪些是第三方給予導流過來的,通常會在url位址增加類似source、from之類的引數,或者進入頁面之前通過「中間頁」種cookie。

這樣,當使用者輸入乙個正常**的時候,劫持方會在網路層讓其跳轉到帶分成或者渠道號的「中間頁」或者帶渠道號的頁面。這樣使用者進行下單或者搜尋等行為,劫持方會得到「佣金」。

頁面在傳輸的過程中,被網路層進行內容「再加工」,常見有:注入js、iframe、篡改頁面。

注入js的方式可以通過document.write或者直接改html**片段等方式,給頁面增加外鏈js,為了做到更難檢測,有些運營商會捏造乙個不存在的url位址,從而不被過濾或者檢測。

案例1:運營商會用自己識別的ip或者網域名稱做js**,wap.zj*******.10086.cn這類只有在浙江流動網路下才會被解析出來,同理ip也是

這類case很少見,一般是在頁面底部增加js之外的div,然後展現一些非**內容。

遍歷頁面script標籤,給外鏈js增加白名單,不在白名單內js外鏈都上報

這個通過比較parent物件,如果頁面被巢狀,則parent!==window,要獲取我們頁面的url位址,可以使用下面的**:

function getparenturl()  catch (e) 

} return url;

}

script核心心**如下:

function hijacksniffer() 

if (arr.length)

arr = getparenturl();

if (arr && arr.length)

if (d.documentelement.outerhtml.length > 4e3) ;

var headjs = $.toarray(d.head.queryselectorall('script'));

var unknowncode = ;

if (headjs.length) ).filter(function(v) ));

} var body = $.toarray(d.body.queryselectorall('*'));

if (body.length > 1) ).filter(function(str)

return true;

}));

} return sendimg(unknowncode, 3);

} sendimg(, 0);

}

這樣做除了可以檢測到多餘的js外鏈,還可以檢測出來篡改頁面內容等case。除了檢測網域名稱劫持之外,在使用者輸入query的時刻訪問空白的頁面也可以提前完成dns解析,另外還可以做劫持防禦,所謂「一石三鳥」!

最簡單粗暴的就是直接上https,一勞永逸。再就是取證,去打官司或者警告渠道作弊者。除此之外,我們還可以繼續利用空白頁面做劫持檢測。

Web 前端頁面劫持和反劫持

按照劫持的方法不同,我將劫持分為下面兩類 為了區分哪些是第三方給予導流過來的,通常會在url位址增加類似source from之類的引數,或者進入頁面之前通過 中間頁 種cookie。這樣,當使用者輸入乙個正常 的時候,劫持方會在網路層讓其跳轉到帶分成或者渠道號的 中間頁 或者帶渠道號的頁面。這樣使...

移動開發構架漫談 反劫持實戰篇

汽車之家是全球訪問量最大的汽車 為廣大汽車消費者提供買車 用車 養車及與汽車生活相關的全程服務,以全面 專業 可信賴 高互動性的內容,多層次 多維度地影響最廣泛的汽車消費者,是中國最具價值的網際網路汽車營銷平台。http 劫持是在使用者與其目的網路服務所建立的專用資料通道中,監視特定資料資訊,提示當...

web安全之點選劫持

點選劫持 clickjacking 是一種視覺上的欺騙手段。大概有兩種方式,那些不能說的秘密 ps 頁面看起來就這樣,當然真正攻擊的頁面會精緻些,不像這麼簡陋。ps 可以把iframe透明設為0.3看下實際點到的東西。3.這樣貼吧就多了乙個粉絲了。解決辦法 使用乙個http頭 x frame opt...