js屏蔽F12審查元素,禁止修改頁面代碼等實(shí)現(xiàn)代碼
眾所周知,審查元素的情況下,大家都可以隨機(jī)更改一部分頁面的代碼,注入惡意JS等等,這種情況避免也不難,雖然還能看到一部分H5源碼,但是無法修改
一、屏蔽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請使用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請使用Del鍵進(jìn)行字符的刪除操作!"); window.event.returnValue=false; } }
還有其他的玩法 也可以讓用戶按F12我們關(guān)閉網(wǎng)頁 或者跳轉(zhuǎn)其他頁面
<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請使用Del鍵進(jìn)行字符的刪除操作!"); window.event.returnValue=false; } } </script>
按住F12空白頁面 或者跳轉(zhuǎn)其他頁面
<script type="text/javascript"> document.onkeydown = function(){ if(window.event && window.event.keyCode == 123) { window.location="about:blank"; //將當(dāng)前窗口跳轉(zhuǎn)置空白頁 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請使用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; } }
這種很適合小說網(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后頁面自動(dòng)跳轉(zhuǎn)可以參考這篇文章
http://www.dbjr.com.cn/article/196910.htm
js檢測用戶是否打開調(diào)試工具(chrome)
(function(){ var re=/x/; var i=0; console.log(re); re.toString=function(){ window.close(); return '第'+(++i)+'次打開控制臺'; } })();
JavaScript檢測是否開啟了控制臺(調(diào)試工具)
測試后在chrome有效
不少人防止別人趴源碼,一般采用檢測按鍵F12之類的,但是這些基本沒什么用
現(xiàn)在介紹一個(gè)方法,非常管用,可以檢測到你是否開啟了控制臺程序,可以算是JavaScript的一些奇淫巧技
將這段代碼加入你的網(wǎng)站即可,原理不明 = -
(function () { var re = /x/; var i = 0; console.log(re); re.toString = function () { alert("請關(guān)閉控制臺"); return '第 ' + (++i) + ' 次打開控制臺'; }; })();
然后你在打開控制臺,即會彈出對話框
js檢測開發(fā)者工具Devtools是否打開防調(diào)試
之前寫過一篇文章《Javascript檢測開發(fā)者工具Devtools是否打開》,主要是講如何通過js來檢測開發(fā)者工具是否打開,防止別人惡意調(diào)試我們的代碼,那段代碼也是查了蠻多資料整理出來的,當(dāng)時(shí)可以兼容chrome,firefox,ie,但是隨著瀏覽器版本的更新,已經(jīng)基本上沒有作用了,最近我發(fā)現(xiàn)還是有蠻多人去瀏覽那篇文章,所以這里再放出一段代碼,算是個(gè)升級版吧,之前的版本里在firefox上還有有限制的,下面提供的這個(gè)版本我測試過通殺現(xiàn)在的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();
這段代碼是什么原理,說實(shí)話我沒搞太懂,也去請教過一些大佬,都不能完全說出其中的原理,如果有懂的朋友請一定不吝賜教,雖然不知道原理,但是效果的確是杠杠的,這是本人從huichan網(wǎng)站上截取的,這里不得不佩服那些做huichan的,太強(qiáng)大。由于以前代碼是加密的,對于其中一些方法的命名我解密時(shí)都是隨意取的,不喜勿噴。
當(dāng)然這種伎倆對于熟悉調(diào)試的開發(fā)者來說,完全沒有阻礙,但畢竟也能防范住一小批不懷好意的人,幸幸苦苦寫出來的代碼被別人悄悄的就搬走了,確實(shí)挺惱人的,但僅僅靠這么一個(gè)防調(diào)試的代碼是不夠的,我們還需要做的還有很多,比如一些基本的js的壓縮混淆加密等等,后期本人會整理一些js加密混淆以及解密方面的文章,敬請期待...
相關(guān)文章
利用onresize使得div可以隨著屏幕大小而自適應(yīng)的代碼
javascript 利用onresize使得div可以隨著屏幕大小而自適應(yīng)的代碼2010-01-01js實(shí)現(xiàn)快速分享功能(你的文章分享工具)
這是一款簡單易用的文章分享工具,您只需將下面的html代碼拷貝到模板中就可以實(shí)現(xiàn)文章快速分享功能,具體的實(shí)現(xiàn)如下,感興趣的朋友可以參考下哈,希望對大家有所幫助2013-06-06基于JS如何實(shí)現(xiàn)類似QQ好友頭像hover時(shí)顯示資料卡的效果(推薦)
通過本文給大家介紹鼠標(biāo)經(jīng)過好友列表中的好友頭像時(shí)顯示資料卡的效果,非常不錯(cuò)具有參考借鑒價(jià)值,感興趣的朋友一起看下吧2016-06-06JavaScript使用Math.random()生成簡單的驗(yàn)證碼
今天小編就為大家分享一篇關(guān)于JavaScript使用Math.random()生成簡單的驗(yàn)證碼,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-01-01基于Phantomjs生成PDF的實(shí)現(xiàn)方法
這篇文章主要介紹了基于Phantomjs生成PDF的實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了Phantomjs結(jié)合nodejs生成pdf的操作步驟與相關(guān)技巧,需要的朋友可以參考下2016-11-11