js屏蔽F12审查元素,禁⽌修改页⾯代码等实现代码
众所周知,审查元素的情况下,⼤家都可以随机更改⼀部分页⾯的代码,注⼊恶意JS等等,这种情况避免也不难,虽然还能看到⼀部分H5源码,但是⽆法修改
⼀、屏蔽F12 审查元素
if(window.event && window.event.keyCode == 123) {
alert("F12被禁⽤");
event.keyCode=0;
}
if(window.event && window.event.keyCode == 13) {
window.event.keyCode = 505;
}
if(window.event && window.event.keyCode == 8) {
alert(str+"\n请使⽤Del键进⾏字符的删除操作!");
urnValue=false;
}
}
如果想要禁⽤右键不提⽰可以使⽤下⾯的代码
if(window.event && window.event.keyCode == 123) {
event.keyCode=0;
}
if(window.event && window.event.keyCode == 13) {
window.event.keyCode = 505;
}
if(window.event && window.event.keyCode == 8) {
alert(str+"\n请使⽤Del键进⾏字符的删除操作!");
urnValue=false;
}
}
还有其他的玩法也可以让⽤户按F12我们关闭⽹页或者跳转其他页⾯
<script type="text/javascript">
if(window.event && window.event.keyCode == 123) {
window.close(); //关闭当前窗⼝(防抽)
event.keyCode=0;
}
if(window.event && window.event.keyCode == 13) {
window.event.keyCode = 505;
}
if(window.event && window.event.keyCode == 8) {
alert(str+"\n请使⽤Del键进⾏字符的删除操作!");
urnValue=false;
}
}
</script>
按住F12空⽩页⾯或者跳转其他页⾯
<script type="text/javascript">
if(window.event && window.event.keyCode == 123) {
window.location="about:blank"; //将当前窗⼝跳转置空⽩页
event.keyCode=0;
}
if(window.event && window.event.keyCode == 13) {
window.event.keyCode = 505;
}
if(window.event && window.event.keyCode == 8) {
alert(str+"\n请使⽤Del键进⾏字符的删除操作!");
urnValue=false;
}
}
</script>
除了屏蔽这个,我们还有其他有趣的设置:
⼆、屏蔽右键菜单
if(window.event){
event = window.event;
}try{
var the = event.srcElement;
if (!((the.tagName == "INPUT" && LowerCase() == "text") || the.tagName == "TEXTAREA")){ return false;
}
return true;
}catch (e){
return false;
}
}
三、屏蔽粘贴
if(window.event){
event = window.event;
}try{
var the = event.srcElement;
if (!((the.tagName == "INPUT" && LowerCase() == "text") || the.tagName == "TEXTAREA")){ return false;js代码加密软件
}
return true;
}catch (e){
return false;
}
}
四、屏蔽复制
if(window.event){
event = window.event;
}try{
var the = event.srcElement;
if(!((the.tagName == "INPUT" && LowerCase() == "text") || the.tagName == "TEXTAREA")){ return false;
}
return true;
}catch (e){
return false;
}
}
五、屏蔽剪切
if(window.event){
event = window.event;
}try{
var the = event.srcElement;
if(!((the.tagName == "INPUT" && LowerCase() == "text") || the.tagName == "TEXTAREA")){ return false;
}
return true;
}catch (e){
return false;
}
}
这种很适合⼩说⽹站,毕竟版权珍贵,被别⼈随意copy⾛内容就不好了
六、屏蔽选中
if(window.event){
event = window.event;
}try{
var the = event.srcElement;
if (!((the.tagName == "INPUT" && LowerCase() == "text") || the.tagName == "TEXTAREA")){
return false;
}
return true;
} catch (e) {
return false;
}
}
当然js屏蔽chrome F12后页⾯⾃动跳转可以参考这篇⽂章
js检测⽤户是否打开调试⼯具(chrome)
(function(){ var re=/x/; var i=0; console.log(re); re.toString=function(){ window.close(); return '第'+(++i)+'次打开控制台'; } })();
JavaScript检测是否开启了控制台(调试⼯具)
测试后在chrome有效
不少⼈防⽌别⼈趴源码,⼀般采⽤检测按键F12之类的,但是这些基本没什么⽤
现在介绍⼀个⽅法,⾮常管⽤,可以检测到你是否开启了控制台程序,可以算是JavaScript的⼀些奇淫巧技
将这段代码加⼊你的⽹站即可,原理不明 = -
(function () {
var re = /x/;
var i = 0;
console.log(re);
alert("请关闭控制台");
return '第 ' + (++i) + ' 次打开控制台';
};
})();
然后你在打开控制台,即会弹出对话框
js检测开发者⼯具Devtools是否打开防调试
之前写过⼀篇⽂章《Javascript检测开发者⼯具Devtools是否打开》,主要是讲如何通过js来检测开发
者⼯具是否打开,防⽌别⼈恶意调试我们的代码,那段代码也是查了蛮多资料整理出来的,当时可以兼容chrome,firefox,ie,但是随着浏览器版本的更新,已经基本上没有作⽤了,最近我发现还是有蛮多⼈去浏览那篇⽂章,所以这⾥再放出⼀段代码,算是个升级版吧,之前的版本⾥在firefox上还有有限制的,下⾯提供的这个版本我测试过通杀现在的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⽹站上截取的,这⾥不得不佩服那些做huichan的,太强
⼤。由于以前代码是加密的,对于其中⼀些⽅法的命名我解密时都是随意取的,不喜勿喷。
当然这种伎俩对于熟悉调试的开发者来说,完全没有阻碍,但毕竟也能防范住⼀⼩批不怀好意的⼈,幸幸苦苦写出来的代码被别⼈悄悄的就搬⾛了,确实挺恼⼈的,但仅仅靠这么⼀个防调试的代码是不够的,我们还需要做的还有很多,⽐如⼀些基本的js的压缩混淆加密等等,后期本⼈会整理⼀些js加密混淆以及解密⽅⾯的⽂章,敬请期待...
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论