重寫JS setTimeout 方法 JavaScript Hook 劫持setTimeout
更新時間:2023年07月03日 21:58:22 作者:psonh
想要重寫 setTimeout 方法,發(fā)現(xiàn)有動態(tài)引入的js,需要改成自己的js,以下教教大家這個需求,防止網(wǎng)站被劫持
一、重新定義setTimeout方法
直接上代碼和注釋:
//定義 _setTimeout 接收 setTimeout var _setTimeout = window.setTimeout; // 重寫setTimeout window.setTimeout = function(ref, tm){ code = '' + ref;//把方法tostring //判斷內(nèi)容有包含這個鏈接,可以直接方法 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)容有包含這個方法 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 () { //比如我要劫持這個引入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);
效果圖
直接請求百度了。
方法劫持我就不演示了。
當(dāng)然我們也可以直接加載一個php頁面返回當(dāng)期的網(wǎng)址,就知道哪個網(wǎng)站出現(xiàn)了劫持情況,及時排查解決。
相關(guān)文章
關(guān)于Vue中postcss-pxtorem的使用詳解
在Web開發(fā)領(lǐng)域,響應(yīng)式設(shè)計(jì)已經(jīng)成為一個不可或缺的趨勢,PostCSS插件——postcss-pxtorem的出現(xiàn)為我們提供了一種更加智能和高效的解決方案,本文將深入探討postcss-pxtorem的使用,包括其背后的原理、配置選項(xiàng)、實(shí)際應(yīng)用中的注意事項(xiàng)等方面,需要的朋友可以參考下2023-12-12javascript(js)的小數(shù)點(diǎn)乘法除法問題詳解
本篇文章主要是對javascript(js)中的小數(shù)點(diǎn)乘法除法問題進(jìn)行了詳細(xì)的介紹,需要的朋友可以過來參考下,希望對大家有所幫助2014-03-03通過正則表達(dá)式實(shí)現(xiàn)表單驗(yàn)證是否為中文
正如標(biāo)題所言判斷一個輸入量是否為中文,通過正則表達(dá)式實(shí)現(xiàn),需要的朋友可以參考下2014-02-02JavaScript常用代碼書寫規(guī)范的超全面總結(jié)
這篇文章給大家全面總結(jié)了JavaScript常用代碼的書寫規(guī)范,分別利用推薦和不推薦的兩種示例代碼讓大家更能直接的了解書寫規(guī)范,其實(shí)關(guān)于javascript代碼規(guī)范我們應(yīng)該遵循古老的原則:“能做并不意味著應(yīng)該做”,好了,下面我們就來一起看看吧。2016-09-09w3c編程挑戰(zhàn)_初級腳本算法實(shí)戰(zhàn)篇
下面小編就為大家?guī)硪黄獁3c編程挑戰(zhàn)_初級腳本算法實(shí)戰(zhàn)篇。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-06-06