重写JS setTimeout 方法 JavaScript Hook 劫持setTimeout

 更新时间:2023年07月03日 21:58:22   作者:psonh  
想要重写  setTimeout  方法,发现有动态引入的js,需要改成自己的js,以下教教大家这个需求,防止网站被劫持

一、重新定义setTimeout方法

直接上代码和注释:

//定义 _setTimeout 接收 setTimeout
var _setTimeout = window.setTimeout;
// 重写setTimeout 
window.setTimeout = function(ref, tm){
        code = '' + ref;//把方法tostring
        //判断内容有包含这个链接,可以直接方法
        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');
            }
        }
        //判断内容有包含这个方法
        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);
}

应该看得明白吧,配合注释看。

比如如下的代码

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);

效果图

直接请求百度了。

方法劫持我就不演示了。

当然我们也可以直接加载一个php页面返回当期的网址,就知道哪个网站出现了劫持情况,及时排查解决。

相关文章

  • Node+OCR实现图像文字识别功能

    Node+OCR实现图像文字识别功能

    这篇文章主要为大家详细介绍了Node+OCR实现图像文字识别功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-11-11
  • AutoJs实现刷宝短视频的思路详解

    AutoJs实现刷宝短视频的思路详解

    这篇文章主要介绍了AutoJs实现刷宝短视频的思路详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05
  • 关于Vue中postcss-pxtorem的使用详解

    关于Vue中postcss-pxtorem的使用详解

    在Web开发领域,响应式设计已经成为一个不可或缺的趋势,PostCSS插件——postcss-pxtorem的出现为我们提供了一种更加智能和高效的解决方案,本文将深入探讨postcss-pxtorem的使用,包括其背后的原理、配置选项、实际应用中的注意事项等方面,需要的朋友可以参考下
    2023-12-12
  • javascript(js)的小数点乘法除法问题详解

    javascript(js)的小数点乘法除法问题详解

    本篇文章主要是对javascript(js)中的小数点乘法除法问题进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2014-03-03
  • 通过正则表达式实现表单验证是否为中文

    通过正则表达式实现表单验证是否为中文

    正如标题所言判断一个输入量是否为中文,通过正则表达式实现,需要的朋友可以参考下
    2014-02-02
  • 微信小程序form表单组件示例代码

    微信小程序form表单组件示例代码

    这篇文章主要介绍了微信小程序form表单组件示例代码,文章给大家提到了一些相关属性名和类型及说明,需要的朋友可以参考下
    2018-07-07
  • JavaScript常用代码书写规范的超全面总结

    JavaScript常用代码书写规范的超全面总结

    这篇文章给大家全面总结了JavaScript常用代码的书写规范,分别利用推荐和不推荐的两种示例代码让大家更能直接的了解书写规范,其实关于javascript代码规范我们应该遵循古老的原则:“能做并不意味着应该做”,好了,下面我们就来一起看看吧。
    2016-09-09
  • Js类的构建与继承案例详解

    Js类的构建与继承案例详解

    这篇文章主要介绍了Js类的构建与继承案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-09-09
  • js enter键激发事件实例代码

    js enter键激发事件实例代码

    下面小编就为大家带来一篇js enter键激发事件实例代码。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-08-08
  • w3c编程挑战_初级脚本算法实战篇

    w3c编程挑战_初级脚本算法实战篇

    下面小编就为大家带来一篇w3c编程挑战_初级脚本算法实战篇。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06

最新评论