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 相关文章推荐
javascript编程起步(第四课)
Feb 27 Javascript
js AspxButton的客户端操作
Jun 26 Javascript
js实现运动logo图片效果及运动元素对象sportBox使用方法
Dec 25 Javascript
javascript静态页面传值的三种方法分享
Nov 12 Javascript
由ReactJS的Hello world说开来
Jul 02 Javascript
jQuery+css实现的切换图片功能代码
Jan 27 Javascript
jQuery插件 Jqplot图表实例
Jun 18 Javascript
JS中正则表达式要注意lastIndex属性
Aug 08 Javascript
vuex state及mapState的基础用法详解
Apr 19 Javascript
Webpack path与publicPath的区别详解
May 03 Javascript
vue 实现滚动到底部翻页效果(pc端)
Jul 31 Javascript
JavaScript 防篡改对象的用法示例
Apr 24 Javascript
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和ACCESS写聊天室(二)
2006/10/09 PHP
PHP获取163、gmail、126等邮箱联系人地址【已测试2009.10.10】
2009/10/11 PHP
PHP策略模式定义与用法示例
2017/07/27 PHP
javascript控制frame,iframe的src属性代码
2009/12/31 Javascript
js实现双向链表互联网机顶盒实战应用实现
2011/10/28 Javascript
jquery sortable的拖动方法示例详解
2014/01/16 Javascript
Jquery Mobile 自定义按钮图标
2015/11/18 Javascript
学习JavaScript设计模式(接口)
2015/11/26 Javascript
[原创]Bootstrap 中下拉菜单修改成鼠标悬停直接显示
2016/04/14 Javascript
js 获取本地文件及目录的方法(推荐)
2016/11/10 Javascript
微信小程序 扎金花简单实例
2017/02/21 Javascript
使用vue和datatables进行表格的服务器端分页实例代码
2017/06/07 Javascript
你可能不知道的前端算法之文字避让(inMap)
2018/01/12 Javascript
在 Linux/Unix 中不重启 Vim 而重新加载 .vimrc 文件的流程
2018/03/21 Javascript
浅谈vuex actions和mutation的异曲同工
2018/12/13 Javascript
深入koa-bodyparser原理解析
2019/01/16 Javascript
layui-select动态选中值的例子
2019/09/23 Javascript
Vue中nprogress页面加载进度条的方法实现
2020/11/13 Javascript
Python正则表达式教程之一:基础篇
2017/03/02 Python
Django框架模板注入操作示例【变量传递到模板】
2018/12/19 Python
pyspark操作MongoDB的方法步骤
2019/01/04 Python
Python多线程threading join和守护线程setDeamon原理详解
2020/03/18 Python
浅谈keras中的后端backend及其相关函数(K.prod,K.cast)
2020/06/29 Python
CSS3 简单又实用的5个属性
2010/03/04 HTML / CSS
在对linux系统分区进行格式化时需要对磁盘簇(或i节点密度)的大小进行选择,请说明选择的原则
2012/01/13 面试题
奶茶店创业计划书范文
2014/01/17 职场文书
父亲追悼会答谢词
2014/01/17 职场文书
大学新闻系应届生求职信
2014/06/02 职场文书
小学班主任事迹材料
2014/12/17 职场文书
2015年世界无烟日演讲稿
2015/03/18 职场文书
新员工试用期工作总结2015
2015/05/28 职场文书
原生Javascript+HTML5一步步实现拖拽排序
2021/06/12 Javascript
Mysql8.0递归查询的简单用法示例
2021/08/04 MySQL
Android自定义ScrollView实现阻尼回弹
2022/04/01 Java/Android
Android开发 使用文件储存的方式保存QQ密码
2022/04/24 Java/Android
Redis主从复制操作和配置详情
2022/09/23 Redis