js屏蔽F12審查元素,禁止修改頁面代碼等實現(xiàn)代碼
眾所周知,審查元素的情況下,大家都可以隨機更改一部分頁面的代碼,注入惡意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>
除了屏蔽這個,我們還有其他有趣的設(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后頁面自動跳轉(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)在介紹一個方法,非常管用,可以檢測到你是否開啟了控制臺程序,可以算是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)時可以兼容chrome,firefox,ie,但是隨著瀏覽器版本的更新,已經(jīng)基本上沒有作用了,最近我發(fā)現(xiàn)還是有蠻多人去瀏覽那篇文章,所以這里再放出一段代碼,算是個升級版吧,之前的版本里在firefox上還有有限制的,下面提供的這個版本我測試過通殺現(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();
這段代碼是什么原理,說實話我沒搞太懂,也去請教過一些大佬,都不能完全說出其中的原理,如果有懂的朋友請一定不吝賜教,雖然不知道原理,但是效果的確是杠杠的,這是本人從huichan網(wǎng)站上截取的,這里不得不佩服那些做huichan的,太強大。由于以前代碼是加密的,對于其中一些方法的命名我解密時都是隨意取的,不喜勿噴。
當(dāng)然這種伎倆對于熟悉調(diào)試的開發(fā)者來說,完全沒有阻礙,但畢竟也能防范住一小批不懷好意的人,幸幸苦苦寫出來的代碼被別人悄悄的就搬走了,確實挺惱人的,但僅僅靠這么一個防調(diào)試的代碼是不夠的,我們還需要做的還有很多,比如一些基本的js的壓縮混淆加密等等,后期本人會整理一些js加密混淆以及解密方面的文章,敬請期待...
相關(guān)文章
利用onresize使得div可以隨著屏幕大小而自適應(yīng)的代碼
javascript 利用onresize使得div可以隨著屏幕大小而自適應(yīng)的代碼2010-01-01
基于JS如何實現(xiàn)類似QQ好友頭像hover時顯示資料卡的效果(推薦)
通過本文給大家介紹鼠標(biāo)經(jīng)過好友列表中的好友頭像時顯示資料卡的效果,非常不錯具有參考借鑒價值,感興趣的朋友一起看下吧2016-06-06
JavaScript使用Math.random()生成簡單的驗證碼
今天小編就為大家分享一篇關(guān)于JavaScript使用Math.random()生成簡單的驗證碼,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-01-01

