本发明涉及一种禁用开发者调试工具的方法,属于浏览器开发。
背景技术:
1、在当前互联网环境中,由于chrome目前是用户使用群体最多的一种,大多数浏览器都是基于chrome内核开发,在此前提下,多数web应用均以chrome能够完美流畅运行为基准。由于浏览器的特性,打开开发者工具便可以查看一个系统的页面结构、样式、运行的逻辑以及调用的接口,使得大多数页面都可以看到原理。对于传统的html页面,多数源文件都在开发者工具中的source中查看,这种现象是开发者不想见到的,而对于单页面应用来说,可以以webpack打包的形式,不向外暴露出源码,但是此种方式,依然可以看到接口的调用以及加载的js脚本。因此在比较重要的页面禁用chrome浏览器的开发工具是必要的,而此禁用开发者工具脚本是通过禁用部分打开入口如f12、右键菜单,禁用不了的部分通过特殊处理(跳转到空白页)来解决代码暴露问题。
2、在当前环境下,很少有项目屏蔽掉了浏览器的开发者工具或者对开发者工具做了处理,因此大多数项目可以看到其页面结构以及逻辑处理,部分处理严谨的项目可能对逻辑处理进行了混淆操作,使得项目在一定程度上保护了逻辑性,通过屏蔽开发者工具,或者对开发者工具进行一定处理,可以极大的解决这个问题,尤其是对于自研项目来说,可以避免部分网络攻击以及劳动结果的剽窃。
技术实现思路
1、为解决上述技术问题,本发明的目的在于提供一种禁用开发者调试工具的方法,采取的技术方案为:
2、一种禁用开发者调试工具的方法,包括如下步骤:
3、步骤一:在项目入口文件中引入javascript脚本;
4、步骤二:页面加载完成javascript脚本后,监听浏览器键盘事件;
5、步骤三:判断是否是f12键,如果是,则通过浏览器键盘事件的回调函数,弹出提示;如果否,则无反应;
6、步骤四:调用javascript脚本中重写右键菜单方法,删除掉页面的审查元素菜单;
7、步骤五:监听控制台是否打开,如果是,则通过javascript脚本中的debugger阻止代码继续运行并且阻止页面的继续渲染;当放行debug继续渲染页面时,直接弹出提示性页面或跳转空白页阻止。
8、优选的,所述浏览器键盘事件包括键盘按下和键盘抬起事件,分别在键盘按下和抬起时触发,并返回一个键盘码和回调函数。
9、进一步的,所述浏览器键盘事件的回调函数会覆盖浏览器本身的事件。
10、进一步的,所述f12的键盘码是123。
11、进一步的,所述回调函数用以判断监听的键盘按下和抬起事件对应的键盘码的值是否是f12键。
12、进一步的,所述右键菜单重写的函数是oncontextmenu方法。
13、优选的,所述步骤五中,阻止代码继续运行并且阻止页面的继续渲染的方法为:在javascript脚本中写一个定时器,以200ms的周期执行定时器,添加断点,且记录下定时器触发的时间与点击debug后的时间,判断大于20ms即进入debugger模式,在此时执行window.open方法即可打开一个新的标签页,即提示性页面或空白页。
14、本发明将禁用开发者工具的js脚本放置在web应用内,减少了开发者工作量,并且灵活可配,既可部分页面可以使用开发者工具,部分页面禁用开发者工具。由于同样使用javascript语言开发,此方法可以放置在不同架构项目的入口文件,在开发阶段即可根据项目要求将js脚本放置在核心阶段,即使后面需要对项目安全性进行改造,也可以统一引用此脚本。
1.一种禁用开发者调试工具的方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的一种禁用开发者调试工具的方法,其特征在于,所述浏览器键盘事件包括键盘按下和键盘抬起事件,分别在键盘按下和抬起时触发,并返回一个键盘码和回调函数。
3.根据权利要求2所述的一种禁用开发者调试工具的方法,其特征在于,所述f12的键盘码是123。
4.根据权利要求2所述的一种禁用开发者调试工具的方法,其特征在于,所述浏览器键盘事件的回调函数会覆盖掉浏览器本身默认事件。
5.根据权利要求2所述的一种禁用开发者调试工具的方法,其特征在于,所述回调函数用以判断监听的键盘按下和抬起事件对应的键盘码的值是否是f12键。
6.根据权利要求2所述的一种禁用开发者调试工具的方法,其特征在于,所述右键菜单重写的函数是oncontextmenu方法。
7.根据权利要求1所述的一种禁用开发者调试工具的方法,其特征在于,所述步骤五中,阻止代码继续运行并且阻止页面的继续渲染的方法为:在javascript脚本中写一个定时器,以200ms的周期执行定时器,添加断点,且记录下定时器触发的时间与点击debug后的时间,判断大于20ms即进入debugger模式,在此时执行window.open方法即可打开一个新的标签页,即提示性页面或空白页。