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請(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;
}
}
還有其他的玩法 也可以讓用戶按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請(qǐng)使用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請(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;
}
}
這種很適合小說網(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檢測(cè)用戶是否打開調(diào)試工具(chrome)
(function(){ var re=/x/; var i=0; console.log(re); re.toString=function(){ window.close(); return '第'+(++i)+'次打開控制臺(tái)'; } })();
JavaScript檢測(cè)是否開啟了控制臺(tái)(調(diào)試工具)
測(cè)試后在chrome有效
不少人防止別人趴源碼,一般采用檢測(cè)按鍵F12之類的,但是這些基本沒什么用
現(xiàn)在介紹一個(gè)方法,非常管用,可以檢測(cè)到你是否開啟了控制臺(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) + ' 次打開控制臺(tái)';
};
})();
然后你在打開控制臺(tái),即會(huì)彈出對(duì)話框
js檢測(cè)開發(fā)者工具Devtools是否打開防調(diào)試
之前寫過一篇文章《Javascript檢測(cè)開發(fā)者工具Devtools是否打開》,主要是講如何通過js來檢測(cè)開發(fā)者工具是否打開,防止別人惡意調(diào)試我們的代碼,那段代碼也是查了蠻多資料整理出來的,當(dāng)時(shí)可以兼容chrome,firefox,ie,但是隨著瀏覽器版本的更新,已經(jīng)基本上沒有作用了,最近我發(fā)現(xiàn)還是有蠻多人去瀏覽那篇文章,所以這里再放出一段代碼,算是個(gè)升級(jí)版吧,之前的版本里在firefox上還有有限制的,下面提供的這個(gè)版本我測(cè)試過通殺現(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í)話我沒搞太懂,也去請(qǐng)教過一些大佬,都不能完全說出其中的原理,如果有懂的朋友請(qǐng)一定不吝賜教,雖然不知道原理,但是效果的確是杠杠的,這是本人從huichan網(wǎng)站上截取的,這里不得不佩服那些做huichan的,太強(qiáng)大。由于以前代碼是加密的,對(duì)于其中一些方法的命名我解密時(shí)都是隨意取的,不喜勿噴。
當(dāng)然這種伎倆對(duì)于熟悉調(diào)試的開發(fā)者來說,完全沒有阻礙,但畢竟也能防范住一小批不懷好意的人,幸幸苦苦寫出來的代碼被別人悄悄的就搬走了,確實(shí)挺惱人的,但僅僅靠這么一個(gè)防調(diào)試的代碼是不夠的,我們還需要做的還有很多,比如一些基本的js的壓縮混淆加密等等,后期本人會(huì)整理一些js加密混淆以及解密方面的文章,敬請(qǐng)期待...
相關(guān)文章
利用onresize使得div可以隨著屏幕大小而自適應(yīng)的代碼
javascript 利用onresize使得div可以隨著屏幕大小而自適應(yīng)的代碼2010-01-01
js實(shí)現(xiàn)快速分享功能(你的文章分享工具)
這是一款簡單易用的文章分享工具,您只需將下面的html代碼拷貝到模板中就可以實(shí)現(xiàn)文章快速分享功能,具體的實(shí)現(xiàn)如下,感興趣的朋友可以參考下哈,希望對(duì)大家有所幫助2013-06-06
基于JS如何實(shí)現(xiàn)類似QQ好友頭像hover時(shí)顯示資料卡的效果(推薦)
通過本文給大家介紹鼠標(biāo)經(jīng)過好友列表中的好友頭像時(shí)顯示資料卡的效果,非常不錯(cuò)具有參考借鑒價(jià)值,感興趣的朋友一起看下吧2016-06-06
JavaScript使用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

