壹影博客.
我在下午4点钟开始想你
禁止F12控制台调试Js
  • 2021-5-22日
  • 2评论
  • 992围观

禁止F12控制台调试Js
让JS控制台处于Debuger状态

 最近 在浏览部分博客的时候发现浏览器无法按F12进入开发者人员模式,网页直接进入了Debuger状态这是什么情况呢
 具体情况如下图 

那这个是怎么做到的呢?我们能不能添加这种机制来保护自己的网页呢?
废话不多说,直接上Js代码吧

var check = (function () {
    var callbacks = [], timeLimit = 2, open = false;
    setInterval(loop, 2);
    return {
        addListener: function (fn) {
            callbacks.push(fn);
        },
        cancleListenr: function (fn) {
            callbacks = callbacks.filter(function (v) {
                return v !== fn;
            });
        }
    }
    function loop() {
        var startTime = new Date();
        debugger;

        if (new Date() - startTime > timeLimit) {
            if (!open) {
                callbacks.forEach(function (fn) {
                    fn.call(null);
                });
            }
            open = true;
        } else {
            open = false;
        }
    }
})();

check.addListener(function () {
    //alert('Open Devtool');
});

运行上面这段代码会直接禁止浏览器F12控制台调试Js
 那么这玩意是什么原理呢?核心bugger代码是什么?为了大家方便研究 ,小编已经整理好了
直接 看下面核心代码吧

(function (a) {
    return (function (a) {
        return (Function('Function(arguments[0]+"' + a + '")()'))
    })(a)
})('bugger')('de', 0, 0, (0, 0));

-by 壹影
感谢你可以看到这里,要是本篇文章对你有帮助,千万别忘收藏分享本站哦~

发表评论

hsdbql

Lv.1 @回复 沙发

那么问题来了,浏览器菜单里面进入控制台有用吗?

    壹影

    博主 @回复 #1-1

    @hsdbql:菜单进入也会进入bugger状态