JavaScript檢測(cè)是否開(kāi)啟了控制臺(tái)(F12調(diào)試工具)
js檢測(cè)用戶是否打開(kāi)調(diào)試工具(chrome)
(function(){ var re=/x/; var i=0; console.log(re); re.toString=function(){ window.close(); return ’第’+(++i)+’次打開(kāi)控制臺(tái)’; } })();
JavaScript檢測(cè)是否開(kāi)啟了控制臺(tái)(調(diào)試工具)
測(cè)試后在chrome有效
不少人防止別人趴源碼,一般采用檢測(cè)按鍵F12之類的,但是這些基本沒(méi)什么用
現(xiàn)在介紹一個(gè)方法,非常管用,可以檢測(cè)到你是否開(kāi)啟了控制臺(tái)程序,可以算是JavaScript的一些奇淫巧技
將這段代碼加入你的網(wǎng)站即可,原理不明 = -
(function () {var re = /x/;var i = 0;console.log(re); re.toString = function () {alert('請(qǐng)關(guān)閉控制臺(tái)');return ’第 ’ + (++i) + ’ 次打開(kāi)控制臺(tái)’;};})();
然后你在打開(kāi)控制臺(tái),即會(huì)彈出對(duì)話框
js檢測(cè)開(kāi)發(fā)者工具Devtools是否打開(kāi)防調(diào)試
之前寫(xiě)過(guò)一篇文章《Javascript檢測(cè)開(kāi)發(fā)者工具Devtools是否打開(kāi)》,主要是講如何通過(guò)js來(lái)檢測(cè)開(kāi)發(fā)者工具是否打開(kāi),防止別人惡意調(diào)試我們的代碼,那段代碼也是查了蠻多資料整理出來(lái)的,當(dāng)時(shí)可以兼容chrome,firefox,ie,但是隨著瀏覽器版本的更新,已經(jīng)基本上沒(méi)有作用了,最近我發(fā)現(xiàn)還是有蠻多人去瀏覽那篇文章,所以這里再放出一段代碼,算是個(gè)升級(jí)版吧,之前的版本里在firefox上還有有限制的,下面提供的這個(gè)版本我測(cè)試過(guò)通殺現(xiàn)在的chrome 69,firefox,IE,也不存在之前firefox上存在的問(wèn)題了,下面直接貼出代碼:
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();
這段代碼是什么原理,說(shuō)實(shí)話我沒(méi)搞太懂,也去請(qǐng)教過(guò)一些大佬,都不能完全說(shuō)出其中的原理,如果有懂的朋友請(qǐng)一定不吝賜教,雖然不知道原理,但是效果的確是杠杠的,這是本人從huichan網(wǎng)站上截取的,這里不得不佩服那些做huichan的,太強(qiáng)大。由于以前代碼是加密的,對(duì)于其中一些方法的命名我解密時(shí)都是隨意取的,不喜勿噴。
當(dāng)然這種伎倆對(duì)于熟悉調(diào)試的開(kāi)發(fā)者來(lái)說(shuō),完全沒(méi)有阻礙,但畢竟也能防范住一小批不懷好意的人,幸幸苦苦寫(xiě)出來(lái)的代碼被別人悄悄的就搬走了,確實(shí)挺惱人的,但僅僅靠這么一個(gè)防調(diào)試的代碼是不夠的,我們還需要做的還有很多,比如一些基本的js的壓縮混淆加密等等,后期本人會(huì)整理一些js加密混淆以及解密方面的文章,敬請(qǐng)期待...
經(jīng)好吧啦網(wǎng)小編測(cè)試就最后一種方法可以使用,下篇文章接著介紹。
相關(guān)文章:
1. IntelliJ IDEA設(shè)置默認(rèn)瀏覽器的方法2. 簡(jiǎn)述JAVA同步、異步、阻塞和非阻塞之間的區(qū)別3. Python TestSuite生成測(cè)試報(bào)告過(guò)程解析4. 在JSP中使用formatNumber控制要顯示的小數(shù)位數(shù)方法5. SpringBoot項(xiàng)目?jī)?yōu)雅的全局異常處理方式(全網(wǎng)最新)6. docker /var/lib/docker/aufs/mnt 目錄清理方法7. IntelliJ IDEA設(shè)置背景圖片的方法步驟8. 如何清空python的變量9. 解決python路徑錯(cuò)誤,運(yùn)行.py文件,找不到路徑的問(wèn)題10. python操作數(shù)據(jù)庫(kù)獲取結(jié)果之fetchone和fetchall的區(qū)別說(shuō)明
