乐趣区

关于前端:网站这样来屏蔽开发者工具不比监听MouseDown舒服

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

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

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

监听键盘事件 F12 之类的办法,不记录,因为刚开始大家都是这么玩的。

办法一

chrome72 以下

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 元素.

办法二

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 打印办法,由此管制。

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

退出移动版