网站这样来屏蔽开发者工具,不比监听MouseDown舒服?

以前,我曾提过一个问题, 网站如何检测到是否开启开发者工具?html

问题很火,是5月份问题top1, 后面管理员给我删除掉了...chrome

在此, 把这问题及解决方法记录下来.工具

监听键盘事件F12之类的方法, 不记录, 由于刚开始你们都是这么玩的。网站

方法一

chrome72如下code

var im = new Image();
    Object.defineProperty(im, 'id', {
        get: function() {
            window.location.href = "http://106.53.103.200:8082/error.html"
            blast();
        }
    });
    console.log(im); //谷歌最新版失效

原理就是chrome在打开控制台的时候会读取页面上全部的id元素.htm

方法二

let num = 0; //谷歌最新版有效
    var devtools = new Date();
    devtools.toString = function() {
        num++;
        if (num > 1) {
            window.location.href = "http://106.53.103.200:8082/error.html"
            blast();
        }
    }
    console.log('', devtools);

只有打开控制台,才会执行console打印方法, 由此控制。事件

以上两个方法,堪称无解,任何人都打不开控制台, 两个方法都是利用了数据劫持,或者重写一些核心方法而达到的,值得思考。开发