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

共 1735字,需浏览 4分钟

 ·

2021-06-13 20:28

作者:undefined

来源:SegmentFault 思否社区


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

问题很火,是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打印方法, 由此控制。

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



点击左下角阅读原文,到 SegmentFault 思否社区 和文章作者展开更多互动和交流,扫描下方”二维码“或在“公众号后台回复“ 入群 ”即可加入我们的技术交流群,收获更多的技术文章~

- END -


浏览 29
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报