按照劫持的方法不同,我將劫持分為下面兩類:
注入型劫持:有別於跳轉型型劫持,指通過在正常的網頁中注入廣告**(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...