網站這樣來屏蔽開發者工具,不比監聽 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 打印方法, 由此控制。

以上兩個方法,堪稱無解,任何人都打不開控制檯, 兩個方法都是利用了數據劫持,或者重寫一些核心方法而達到的,值得思考。

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/_sdj23m2A3dooA3-Lt4E-w