1. 程式人生 > 程式設計 >JavaScript檢測是否開啟了控制檯(F12除錯工具)

JavaScript檢測是否開啟了控制檯(F12除錯工具)

js檢測使用者是否開啟除錯工具(chrome)

(function(){ var re=/x/; var i=0; console.log(re); re.toString=function(){ window.close(); return '第'+(++i)+'次開啟控制檯'; } })();

JavaScript檢測是否開啟了控制檯(除錯工具)

測試後在chrome有效

不少人防止別人趴原始碼,一般採用檢測按鍵F12之類的,但是這些基本沒什麼用

現在介紹一個方法,非常管用,可以檢測到你是否開啟了控制檯程式,可以算是JavaScript的一些奇淫巧技

將這段程式碼加入你的網站即可,原理不明 = -

(function () {
var re = /x/;
var i = 0;
console.log(re);
 
re.toString = function () {
alert("請關閉控制檯");
return '第 ' + (++i) + ' 次開啟控制檯';
};
})();

然後你在開啟控制檯,即會彈出對話方塊

js檢測開發者工具Devtools是否開啟防除錯

之前寫過一篇文章《Javascript檢測開發者工具Devtools是否開啟》,主要是講如何通過js來檢測開發者工具是否開啟,防止別人惡意除錯我們的程式碼,那段程式碼也是查了蠻多資料整理出來的,當時可以相容chrome,firefox,ie,但是隨著瀏覽器版本的更新,已經基本上沒有作用了,最近我發現還是有蠻多人去瀏覽那篇文章,所以這裡再放出一段程式碼,算是個升級版吧,之前的版本里在firefox上還有有限制的,下面提供的這個版本我測試過通殺現在的chrome 69,firefox,IE,也不存在之前firefox上存在的問題了,下面直接貼出程式碼:

setInterval(function() {
  check()
},4000);
var check = function() {
  function doCheck(a) {
    if (("" + a/a)["length"] !== 1 || a % 20 === 0) {
      (function() {}
      ["constructor"]("debugger")())
    } else {
      (function() {}
      ["constructor"]("debugger")())
    }
    doCheck(++a)
  } 
  try {
    doCheck(0)
  } catch (err) {}
};
check();

這段程式碼是什麼原理,說實話我沒搞太懂,也去請教過一些大佬,都不能完全說出其中的原理,如果有懂的朋友請一定不吝賜教,雖然不知道原理,但是效果的確是槓槓的,這是本人從huichan網站上擷取的,這裡不得不佩服那些做huichan的,太強大。由於以前程式碼是加密的,對於其中一些方法的命名我解密時都是隨意取的,不喜勿噴。

當然這種伎倆對於熟悉除錯的開發者來說,完全沒有阻礙,但畢竟也能防範住一小批不懷好意的人,倖幸苦苦寫出來的程式碼被別人悄悄的就搬走了,確實挺惱人的,但僅僅靠這麼一個防除錯的程式碼是不夠的,我們還需要做的還有很多,比如一些基本的js的壓縮混淆加密等等,後期本人會整理一些js加密混淆以及解密方面的文章,敬請期待...

經我們小編測試就最後一種方法可以使用,下篇文章接著介紹。