js屏蔽F12審查元素,禁止修改頁(yè)面代碼等實(shí)現(xiàn)代碼
眾所周知,審查元素的情況下,大家都可以隨機(jī)更改一部分頁(yè)面的代碼,注入惡意JS等等,這種情況避免也不難,雖然還能看到一部分H5源碼,但是無(wú)法修改
一、屏蔽F12 審查元素
document.onkeydown = function(){ if(window.event && window.event.keyCode == 123) { alert("F12被禁用"); event.keyCode=0; event.returnValue=false; } if(window.event && window.event.keyCode == 13) { window.event.keyCode = 505; } if(window.event && window.event.keyCode == 8) { alert(str+"\n請(qǐng)使用Del鍵進(jìn)行字符的刪除操作!"); window.event.returnValue=false; } }
如果想要禁用右鍵 不提示可以使用下面的代碼
document.onkeydown = function(){ if(window.event && window.event.keyCode == 123) { event.keyCode=0; event.returnValue=false; } if(window.event && window.event.keyCode == 13) { window.event.keyCode = 505; } if(window.event && window.event.keyCode == 8) { alert(str+"\n請(qǐng)使用Del鍵進(jìn)行字符的刪除操作!"); window.event.returnValue=false; } }
還有其他的玩法 也可以讓用戶(hù)按F12我們關(guān)閉網(wǎng)頁(yè) 或者跳轉(zhuǎn)其他頁(yè)面
<script type="text/javascript"> document.onkeydown = function(){ if(window.event && window.event.keyCode == 123) { window.close(); //關(guān)閉當(dāng)前窗口(防抽) event.keyCode=0; event.returnValue=false; } if(window.event && window.event.keyCode == 13) { window.event.keyCode = 505; } if(window.event && window.event.keyCode == 8) { alert(str+"\n請(qǐng)使用Del鍵進(jìn)行字符的刪除操作!"); window.event.returnValue=false; } } </script>
按住F12空白頁(yè)面 或者跳轉(zhuǎn)其他頁(yè)面
<script type="text/javascript"> document.onkeydown = function(){ if(window.event && window.event.keyCode == 123) { window.location="about:blank"; //將當(dāng)前窗口跳轉(zhuǎn)置空白頁(yè) event.keyCode=0; event.returnValue=false; } if(window.event && window.event.keyCode == 13) { window.event.keyCode = 505; } if(window.event && window.event.keyCode == 8) { alert(str+"\n請(qǐng)使用Del鍵進(jìn)行字符的刪除操作!"); window.event.returnValue=false; } } </script>
除了屏蔽這個(gè),我們還有其他有趣的設(shè)置:
二、屏蔽右鍵菜單
document.oncontextmenu = function (event){ if(window.event){ event = window.event; }try{ var the = event.srcElement; if (!((the.tagName == "INPUT" && the.type.toLowerCase() == "text") || the.tagName == "TEXTAREA")){ return false; } return true; }catch (e){ return false; } }
三、屏蔽粘貼
document.onpaste = function (event){ if(window.event){ event = window.event; }try{ var the = event.srcElement; if (!((the.tagName == "INPUT" && the.type.toLowerCase() == "text") || the.tagName == "TEXTAREA")){ return false; } return true; }catch (e){ return false; } }
四、屏蔽復(fù)制
document.oncopy = function (event){ if(window.event){ event = window.event; }try{ var the = event.srcElement; if(!((the.tagName == "INPUT" && the.type.toLowerCase() == "text") || the.tagName == "TEXTAREA")){ return false; } return true; }catch (e){ return false; } }
五、屏蔽剪切
document.oncut = function (event){ if(window.event){ event = window.event; }try{ var the = event.srcElement; if(!((the.tagName == "INPUT" && the.type.toLowerCase() == "text") || the.tagName == "TEXTAREA")){ return false; } return true; }catch (e){ return false; } }
這種很適合小說(shuō)網(wǎng)站,畢竟版權(quán)珍貴,被別人隨意copy走內(nèi)容就不好了
六、屏蔽選中
document.onselectstart = function (event){ if(window.event){ event = window.event; }try{ var the = event.srcElement; if (!((the.tagName == "INPUT" && the.type.toLowerCase() == "text") || the.tagName == "TEXTAREA")){ return false; } return true; } catch (e) { return false; } }
當(dāng)然js屏蔽chrome F12后頁(yè)面自動(dòng)跳轉(zhuǎn)可以參考這篇文章
http://www.dbjr.com.cn/article/196910.htm
js檢測(cè)用戶(hù)是否打開(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之類(lèi)的,但是這些基本沒(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)期待...
相關(guān)文章
利用onresize使得div可以隨著屏幕大小而自適應(yīng)的代碼
javascript 利用onresize使得div可以隨著屏幕大小而自適應(yīng)的代碼2010-01-01js實(shí)現(xiàn)快速分享功能(你的文章分享工具)
這是一款簡(jiǎn)單易用的文章分享工具,您只需將下面的html代碼拷貝到模板中就可以實(shí)現(xiàn)文章快速分享功能,具體的實(shí)現(xiàn)如下,感興趣的朋友可以參考下哈,希望對(duì)大家有所幫助2013-06-06基于JS如何實(shí)現(xiàn)類(lèi)似QQ好友頭像hover時(shí)顯示資料卡的效果(推薦)
通過(guò)本文給大家介紹鼠標(biāo)經(jīng)過(guò)好友列表中的好友頭像時(shí)顯示資料卡的效果,非常不錯(cuò)具有參考借鑒價(jià)值,感興趣的朋友一起看下吧2016-06-06JavaScript使用Math.random()生成簡(jiǎn)單的驗(yàn)證碼
今天小編就為大家分享一篇關(guān)于JavaScript使用Math.random()生成簡(jiǎn)單的驗(yàn)證碼,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-01-01iframe調(diào)用父頁(yè)面函數(shù)示例詳解
這篇文章主要介紹了iframe如何調(diào)用父頁(yè)面函數(shù),下面有個(gè)不錯(cuò)的示例,大家可以參考下2014-07-07基于Phantomjs生成PDF的實(shí)現(xiàn)方法
這篇文章主要介紹了基于Phantomjs生成PDF的實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了Phantomjs結(jié)合nodejs生成pdf的操作步驟與相關(guān)技巧,需要的朋友可以參考下2016-11-11