JavaScript检测是否开启了控制台(F12调试工具)


Posted in Javascript onOctober 02, 2020

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);
 
re.toString = function () {
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加密混淆以及解密方面的文章,敬请期待...

经三水点靠木小编测试就最后一种方法可以使用,下篇文章接着介绍。

Javascript 相关文章推荐
js作用域及作用域链概念理解及使用
Apr 15 Javascript
jQuery的slideToggle方法实例
May 07 Javascript
JavaScript使用Replace进行字符串替换的方法
Apr 14 Javascript
jquery实现简单的全选和反选功能
Jan 02 Javascript
AngularJS中比较两个数组是否相同
Aug 24 Javascript
详解Jquery的事件操作和文档操作
Dec 19 Javascript
JS去掉字符串前后空格或去掉所有空格的用法
Mar 25 Javascript
Vue.js 单页面多路由区域操作的实例详解
Jul 17 Javascript
对angularjs框架下controller间的传值方法详解
Oct 08 Javascript
Vue axios全局拦截 get请求、post请求、配置请求的实例代码
Nov 28 Javascript
记录一次websocket封装的过程
Nov 23 Javascript
vue 给数组添加新对象并赋值
Apr 20 Vue.js
js屏蔽F12审查元素,禁止修改页面代码等实现代码
Oct 02 #Javascript
js禁止查看源文件屏蔽Ctrl+u/s、F12、右键等兼容IE火狐chrome
Oct 01 #Javascript
JS禁用右键、禁用Ctrl+u、禁用Ctrl+s、禁用F12的实现代码
Dec 01 #Javascript
在Vue里如何把网页的数据导出到Excel的方法
Sep 30 #Javascript
jQuery实现二级导航菜单的示例
Sep 30 #jQuery
javascript canvas封装动态时钟
Sep 30 #Javascript
VUE Elemen-ui之穿梭框使用方法详解
Jan 19 #Javascript
You might like
PHP设计模式之迭代器模式的深入解析
2013/06/13 PHP
php出现内存位置访问无效错误问题解决方法
2014/08/16 PHP
php绘制一条弧线的方法
2015/01/24 PHP
PHP可变变量学习小结
2015/11/29 PHP
PHP面向对象程序设计(OOP)之方法重写(override)操作示例
2018/12/21 PHP
Laravel如何实现自动加载类
2019/10/14 PHP
Javascript 继承机制实例
2009/08/12 Javascript
jQuery AJAX实现调用页面后台方法和web服务定义的方法分享
2012/03/01 Javascript
实现checkbox全选、反选、取消JavaScript小脚本异常
2014/04/10 Javascript
Javascript基础教程之关键字和保留字汇总
2015/01/18 Javascript
jquery中ready()函数执行的时机和window的load事件比较
2015/06/22 Javascript
JavaScript实现数据类型的相互转换
2016/03/06 Javascript
JavaScript对象数组如何按指定属性和排序方向进行排序
2016/06/15 Javascript
jQuery获取选中单选按钮radio的值
2016/12/27 Javascript
React Native中TabBarIOS的简单使用方法示例
2017/10/13 Javascript
详解vue-cli 本地开发mock数据使用方法
2018/05/29 Javascript
Vue不能检测到Object/Array更新的情况的解决
2018/06/26 Javascript
Vue2.0仿饿了么webapp单页面应用详细步骤
2018/07/08 Javascript
小程序自定义组件实现城市选择功能
2018/07/18 Javascript
JavaScript实现的开关灯泡点击切换特效示例
2019/07/08 Javascript
如何通过vscode运行调试javascript代码
2020/07/24 Javascript
JS实现手风琴特效
2020/11/08 Javascript
通过python改变图片特定区域的颜色详解
2019/07/15 Python
在Python中画图(基于Jupyter notebook的魔法函数)
2019/10/28 Python
python GUI库图形界面开发之PyQt5选项卡控件QTabWidget详细使用方法与实例
2020/03/01 Python
Python魔术方法专题
2020/06/19 Python
python 基于opencv 实现一个鼠标绘图小程序
2020/12/11 Python
HTML5本地存储localStorage、sessionStorage基本用法、遍历操作、异常处理等
2014/05/08 HTML / CSS
英国皇室御用百货:福南梅森(Fortnum & Mason)
2017/12/03 全球购物
英国在线定制百叶窗网站:Swift Direct Blinds
2020/02/25 全球购物
集团薪酬管理制度
2014/01/13 职场文书
幼儿园教育教学反思
2014/01/31 职场文书
社区元宵节活动总结
2015/02/06 职场文书
七年级作文之雪景
2019/11/18 职场文书
JMeter对MySQL数据库进行压力测试的实现步骤
2022/01/22 MySQL
JavaScript圣杯布局与双飞翼布局实现案例详解
2022/08/05 Javascript