js检测用户是否打开调试工具(chrome)
1
|
( function (){ var re=/x/; var i=0; console.log(re); re.toString= function (){ window.close(); return '第' +(++i)+ '次打开控制台' ; } })(); |
JavaScript检测是否开启了控制台(调试工具)
测试后在chrome有效
不少人防止别人趴源码,一般采用检测按键F12之类的,但是这些基本没什么用
现在介绍一个方法,非常管用,可以检测到你是否开启了控制台程序,可以算是JavaScript的一些奇淫巧技
将这段代码加入你的网站即可,原理不明 = -
1
2
3
4
5
6
7
8
9
10
|
( function () { var re = /x/; var i = 0; console.log(re); re.toString = function () { alert( "请关闭控制台" ); return '第 ' + (++i) + ' 次打开控制台' ; }; })(); |
然后你在打开控制台,即会弹出对话框
js检测开发者工具Devtools是否打开防调试
之前写过一篇文章《Javascript检测开发者工具Devtools是否打开》,主要是讲如何通过js来检测开发者工具是否打开,防止别人恶意调试我们的代码,那段代码也是查了蛮多资料整理出来的,当时可以兼容chrome,firefox,ie,但是随着浏览器版本的更新,已经基本上没有作用了,最近我发现还是有蛮多人去浏览那篇文章,所以这里再放出一段代码,算是个升级版吧,之前的版本里在firefox上还有有限制的,下面提供的这个版本我测试过通杀现在的chrome 69,firefox,IE,也不存在之前firefox上存在的问题了,下面直接贴出代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
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加密混淆以及解密方面的文章,敬请期待...
经服务器之家小编测试就最后一种方法可以使用,下篇文章接着介绍。
原文链接:https://www.deanhan.cn/js-detect-devtool.html