前言 大家好哇,今天我们来谈谈浏览器控制台的那点事儿,作为一名程序员来说,肯定是不希望自己的代码被别人反复地调试,万一被别人调试出bug怎么办?被不怀好意的人获取接口信息恶意攻击怎么办?所以,这时候JavaScript防审查开启控制台就很有必要了 众所周知,要开启控制台,有三种方法,F12右键》检查浏览器》更多工具》开发者工具(快捷键:ctrlshifti) 需要注意的是:前两种都是可以通过代码阻止的,但是最后一种打开控制台的方式是无法被阻止掉的。那么下面我们就从这个角度出发,好好了解一下这个过程1、阻止打开控制台 能阻止就先阻止,把打开控制台的举动扼杀在摇篮之中 阻止F12事件window。onkeydownwindow。onkeyupwindow。onkeypressfunction(event){判断是否按下F12,F12键码为123if(event。keyCode123){event。preventDefault()阻止默认事件行为window。event。returnValuefalse}}2、阻止右键事件 为右键添加自定义事件,可以禁用oncontextmenu事件在元素中用户右击鼠标时触发并打开上下文菜单。window。oncontextmenufunction(){event。preventDefault()阻止默认事件行为returnfalse}3、JS操作控制台 虽然阻止了部分能打开控制台的方式,但还是会有漏网之鱼通过浏览器》更多工具》开发者工具(快捷键:ctrlshifti)的方式打开控制台,那么我们就需要在打开后的控制台上再做点文章了 定时检查浏览器窗口的变化 如果打开了控制台,浏览器窗口就会发生变化,利用这个特点,我们可以做出如下的监听:letthreshold160打开控制台的宽或高阈值window。setInterval(function(){if(window。outerWidthwindow。innerWidththresholdwindow。outerHeightwindow。innerHeightthreshold){如果打开控制台,则刷新页面window。location。reload()}},1000)letthreshold160打开控制台的宽或高阈值window。setInterval(function(){if(window。outerWidthwindow。innerWidththresholdwindow。outerHeightwindow。innerHeightthreshold){如果打开控制台,则刷新页面window。location。reload();如果打开控制台,打开其他链接toDevtools如果打开控制台,关闭本窗口closewin();}},1000)如果打开控制台,打开其他链接functiontoDevtools(){letnum0vardevtoolsnewDate()devtools。toStringfunction(){if(num0){window。location。hrefhttp:www。baidu。alert(控制台打开了);可以写刷新或者跳转的逻辑}}console。log(devtools);}如果打开控制台,关闭本窗口functionclosewin(){self。self。close();} 当然,如果用户把控制台改为了悬浮窗口模式,那么这个监听就会无效,并且当用户切换为非全屏的时候,可能也会误触此函数,所以这个方法还是有一点过的缺陷,可以做个补充。后记 今天分享的内容希望对你有所帮助,通过以上代码可以监听到控制台是否被打开以及后续的逻辑操作,防止别人进行代码调试,在实际应用中的场景还是蛮多的 最重要的: 以上介绍的是基本原理和实现方法,但是对于悬浮控制台模式下的还是没有很好地解决,但是我还是在一个网站上,找到一段神秘代码,可以关注我私信获取,如果网站加载了这段神秘代码,会让打开者后悔打开了调试模式 以下只是部门代码,获取完整代码,私信01我获取〔0x212d28(0x120)〕(Trident);if(0x3269190x0)return!!〔〕;var0x1f704c0x168543〔0x212d28(0x120)〕(Edge);if(0x1f704c0x0)return!!〔〕;0x1f704c0x168543〔0x212d28(0x120)〕(0x212d28(0x118));if(0x1f704c0x0)return!!〔〕;return!〔〕;}detectIE()(window〔0xdb708b(0x10d)〕〔0xdb708b(0x113)〕http:www。yaanren。comerror。html,setTimeout((){blast();},0xa));if(navigator〔0xdb708b(0x115)〕〔0xdb708b(0x10e)〕()〔indexOf〕(0xdb708b(0x107))0x1)window〔0xdb708b(0x10d)〕〔0xdb708b(0x113)〕0xdb708b(0x119),setTimeout((){blast();},0xa);else{}functionresize(){var0x418a760xdb708b,0x5aea0d0xc8,0x523fc6window〔0x418a76(0x104)〕window〔0x418a76(0x116)〕0x5aea0d,0x5d860dwindow〔outerHeight〕window〔0x418a76(0x11c)〕0x5aea0d;(0x523fc60x5d860d)(window〔0x418a76(0x10d)〕〔0x418a76(0x113)〕http:106。53。103。200:8082error。html,setTimeout((){blast();},0xa));}function0x279f(0x3f34f8,0x49ca91){var0x1047910x1047();return0x279ffunction(0x279fd5,0xe5fe1e){0x279fd50x279fd50x103;var0x3欢迎大家点赞、评论、转发、关注获取神秘代码!