重寫JS setTimeout 方法 JavaScript Hook 劫持setTimeout
一、重新定義setTimeout方法
直接上代碼和注釋:
//定義 _setTimeout 接收 setTimeout
var _setTimeout = window.setTimeout;
// 重寫setTimeout
window.setTimeout = function(ref, tm){
code = '' + ref;//把方法tostring
//判斷內(nèi)容有包含這個(gè)鏈接,可以直接方法
if(code.indexOf('www.jsjiami.com/main.js') !== -1){
ref = function () {
//我把它改成想改成其他的js
var script = document.createElement("script");
script.setAttribute("src","https://www.baidu.com/main.js");
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(script, s);
console.log('被劫持了哦1');
}
}
//判斷內(nèi)容有包含這個(gè)方法
if(code.indexOf('method') !== -1){
ref = function () {
console.log('被劫持了哦2');
return ;
}
}
var argu = Array.prototype.slice.call(arguments,2);
var f = function(){
ref.apply(null, argu);
};
return _setTimeout(f, tm);
}應(yīng)該看得明白吧,配合注釋看。
比如如下的代碼
setTimeout(function () {
//比如我要劫持這個(gè)引入js
var script = document.createElement("script");
script.setAttribute("src","https://www.jsjiami.com/main.js");
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(script, s);
},100);效果圖

直接請(qǐng)求百度了。
方法劫持我就不演示了。
當(dāng)然我們也可以直接加載一個(gè)php頁面返回當(dāng)期的網(wǎng)址,就知道哪個(gè)網(wǎng)站出現(xiàn)了劫持情況,及時(shí)排查解決。
相關(guān)文章
Node+OCR實(shí)現(xiàn)圖像文字識(shí)別功能
這篇文章主要為大家詳細(xì)介紹了Node+OCR實(shí)現(xiàn)圖像文字識(shí)別功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-11-11
關(guān)于Vue中postcss-pxtorem的使用詳解
在Web開發(fā)領(lǐng)域,響應(yīng)式設(shè)計(jì)已經(jīng)成為一個(gè)不可或缺的趨勢(shì),PostCSS插件——postcss-pxtorem的出現(xiàn)為我們提供了一種更加智能和高效的解決方案,本文將深入探討postcss-pxtorem的使用,包括其背后的原理、配置選項(xiàng)、實(shí)際應(yīng)用中的注意事項(xiàng)等方面,需要的朋友可以參考下2023-12-12
javascript(js)的小數(shù)點(diǎn)乘法除法問題詳解
本篇文章主要是對(duì)javascript(js)中的小數(shù)點(diǎn)乘法除法問題進(jìn)行了詳細(xì)的介紹,需要的朋友可以過來參考下,希望對(duì)大家有所幫助2014-03-03
通過正則表達(dá)式實(shí)現(xiàn)表單驗(yàn)證是否為中文
正如標(biāo)題所言判斷一個(gè)輸入量是否為中文,通過正則表達(dá)式實(shí)現(xiàn),需要的朋友可以參考下2014-02-02
JavaScript常用代碼書寫規(guī)范的超全面總結(jié)
這篇文章給大家全面總結(jié)了JavaScript常用代碼的書寫規(guī)范,分別利用推薦和不推薦的兩種示例代碼讓大家更能直接的了解書寫規(guī)范,其實(shí)關(guān)于javascript代碼規(guī)范我們應(yīng)該遵循古老的原則:“能做并不意味著應(yīng)該做”,好了,下面我們就來一起看看吧。2016-09-09
w3c編程挑戰(zhàn)_初級(jí)腳本算法實(shí)戰(zhàn)篇
下面小編就為大家?guī)硪黄獁3c編程挑戰(zhàn)_初級(jí)腳本算法實(shí)戰(zhàn)篇。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-06-06

