首页> 中国专利> 浏览器开发模式检测方法、装置、设备及存储介质

浏览器开发模式检测方法、装置、设备及存储介质

摘要

本申请提供一种浏览器开发模式检测方法、装置、设备及存储介质,其中,浏览器开发模式检测方法包括:获取浏览器的信息;根据所述浏览器的信息确定所述浏览器的类型;当所述浏览器为第一类型浏览器时,创建第一对象;重写所述第一对象的第一函数,所述第一函数在用户打开所述浏览器的开发者工具页面时被调用并用于输出打开提示信息;获取所述浏览器的控制台输出信息;判断所述控制台输出信息是否包括所述打开提示信息,若是则确定所述浏览器的开发者工具页面被用户打开。本申请能够提高检测浏览器的开发者工具页面被用户打开的精确度,进而能够防止开发者工具页面的源代码泄露。

著录项

说明书

技术领域

本申请涉及计算机技术领域,具体而言,涉及一种浏览器开发模式检测方法、装置、设备及存储介质。

背景技术

在现有技术中,由于浏览器提供的开发者工具页面能够使用户看到网站的源代码,这样会导致源代码泄露。

针对上述问题,现有技术采用两种方式来解决,第一种方式是先通过浏览器的窗口变化检测用户是否打开开发者工具页面,若是则采集相应的操作以防止源代码泄露,第二种方式是直接对源代码进行合并压缩处理,以降低源代码的可读性而防止源代码泄露。

然而,现有技术中的第一种方式容易出现窗口变化误检,例如,在独立窗口中容易出现窗口变化误检。另一方面,第二种方式中处理过的源代码容易被格式化工具还原,从而恢复源代码的可读性,且对源代码进行处理具有操作繁琐、复杂、成本高的缺点。

发明内容

本申请实施例的目的在于提供一种浏览器开发模式检测方法、装置、设备及存储介质,用于提高检测浏览器的开发者工具页面被用户打开的精确度。

为此,本申请第一方面公开一种浏览器开发模式检测方法,所述方法包括:

获取浏览器的信息;

根据所述浏览器的信息确定所述浏览器的类型;

当所述浏览器为第一类型浏览器时,创建第一对象;

重写所述第一对象的第一函数,所述第一函数在用户打开所述浏览器的开发者工具页面时被调用并用于输出打开提示信息;

获取所述浏览器的控制台输出信息;

判断所述控制台输出信息是否包括所述打开提示信息,若是则确定所述浏览器的开发者工具页面被用户打开。

在本申请实施例中,通过获取浏览器的信息,进而能够根据所述浏览器的信息确定所述浏览器的类型,进而能够当所述浏览器为第一类型浏览器时,创建第一对象,进而通过重写所述第一对象的第一函数,可使得所述第一函数在用户打开所述浏览器的开发者工具页面时被调用并用于输出打开提示信息,进而通过获取所述浏览器的控制台输出信息,能够判断所述控制台输出信息是否包括所述打开提示信息,若是则确定所述浏览器的开发者工具页面被用户打开。与现有技术相比,由于本申请不需要通过检测浏览器的窗口变化,因此可以避免窗口误检。

在申请第一方面中,作为一种可选的实施方式,在所述确定所述浏览器的开发者工具页面被用户打开之后,所述方法还包括:

删除所述浏览器的开发者工具页面中的代码。

在本可选的实施方式中,当检测到浏览器的开发者工具页面被用户打开后,通过删除浏览器的开发者工具页面中的代码,能够防止浏览器的开发者工具页面中的代码泄露。与现有技术中对代码进行压缩合并处理相比,可避免使用大量的插件而降低成本,与此同时,可避免压缩合并处理的繁琐过程。

在本申请第一方面中,作为一种可选的实施方式,所述方法还包括:

当所述浏览器为第二类型浏览器时,创建第二对象;

在所述第二对象中增加第二函数,所述第二函数在用户打开所述浏览器的开发者工具页面时被调用并用于输出打开提示信息。

在本可选的实施方式中,通过创建第二对象和在所述第二对象中增加第二函数,能够使得第一浏览器之外的多种浏览器输出打开提示信息,进而能够实现兼容不同浏览器,使得不同浏览器均能够输出打开提示信息。

在本申请第一方面中,作为一种可选的实施方式,在所述确定所述浏览器的开发者工具页面被用户打开之后,所述方法还包括:

清空所述浏览器的控制台输出信息。

在本可选的实施方式,通过清空所述浏览器的控制台输出信息,可降低浏览器的负担。

在本申请第一方面中,作为一种可选的实施方式,所述方法还包括:设置定时器的定时时间,所述定时器用于按照所述定时时间执行所述获取所述浏览器的控制台输出信息和执行所述判断所述控制台输出信息是否包括所述打开提示信息、执行所述清空所述浏览器的控制台输出信息。

在本可选的实施方式中,通过定时器能够及时检测用户是否打开浏览器的开发者工具页面。

在本申请第一方面中,作为一种可选的实施方式,在所述创建第一对象之前,所述方法还包括:

判断是否已存在所述第一对象,若是则调用已存在的所述第一对象。

在本可选的实施方式,通过调用已存在的所述第一对象,可避免重复创建第一对象,进而降低内存资源的消耗。

在本申请第一方面中,作为一种可选的实施方式,所述第一类型浏览器为火狐浏览器。

本申请第二方面公开一种浏览器开发模式检测装置,所述装置包括:

第一获取模块,用于获取浏览器的信息;

确定模块,用于根据所述浏览器的信息确定所述浏览器的类型;

对象创建模块,用于当所述浏览器为第一类型浏览器时,创建第一对象;

函数重写模块,用于重写所述第一对象的第一函数,所述第一函数在用户打开所述浏览器的开发者工具页面时被调用并用于输出打开提示信息;

第二获取模块,用于获取所述浏览器的控制台输出信息;

判断模块,用于判断所述控制台输出信息是否包括所述打开提示信息,若是则确定所述浏览器的开发者工具页面被用户打开。

本申请第二方面的浏览器开发模式检测装置通过获取浏览器的信息,进而能够根据所述浏览器的信息确定所述浏览器的类型,进而能够当所述浏览器为第一类型浏览器时,创建第一对象,进而通过重写所述第一对象的第一函数,可使得所述第一函数在用户打开所述浏览器的开发者工具页面时被调用并用于输出打开提示信息,进而通过获取所述浏览器的控制台输出信息,能够判断所述控制台输出信息是否包括所述打开提示信息,若是则确定所述浏览器的开发者工具页面被用户打开。与现有技术相比,由于本申请不需要通过检测浏览器的窗口变化,因此可以避免窗口误检。

本申请第三方面公开一种浏览器开发模式检测设备,该设备包括,包括:

处理器;以及

存储器,配置用于存储机器可读指令,所述指令在由所述处理器执行时,执行本申请第一方面的浏览器开发模式检测方法。

本申请第三方面的浏览器开发模式检测设备通过获取浏览器的信息,进而能够根据所述浏览器的信息确定所述浏览器的类型,进而能够当所述浏览器为第一类型浏览器时,创建第一对象,进而通过重写所述第一对象的第一函数,可使得所述第一函数在用户打开所述浏览器的开发者工具页面时被调用并用于输出打开提示信息,进而通过获取所述浏览器的控制台输出信息,能够判断所述控制台输出信息是否包括所述打开提示信息,若是则确定所述浏览器的开发者工具页面被用户打开。与现有技术相比,由于本申请不需要通过检测浏览器的窗口变化,因此可以避免窗口误检。

本申请第四方面公开一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行本申请第一方面的浏览器开发模式检测方法。

本申请第四方面的存储介质通过获取浏览器的信息,进而能够根据所述浏览器的信息确定所述浏览器的类型,进而能够当所述浏览器为第一类型浏览器时,创建第一对象,进而通过重写所述第一对象的第一函数,可使得所述第一函数在用户打开所述浏览器的开发者工具页面时被调用并用于输出打开提示信息,进而通过获取所述浏览器的控制台输出信息,能够判断所述控制台输出信息是否包括所述打开提示信息,若是则确定所述浏览器的开发者工具页面被用户打开。与现有技术相比,由于本申请不需要通过检测浏览器的窗口变化,因此可以避免窗口误检。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1是本申请实施例公开的一种浏览器开发模式检测方法的流程示意图;

图2是本申请实施例公开的一种浏览器开发模式检测装置的结构示意图;

图3是本申请实施例公开的一种浏览器开发模式检测设备的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。

实施例一

请参阅图1,图1是本申请实施例公开的一种浏览器开发模式检测方法的流程示意图。如图1所示,本申请实施例的浏览器开发模式检测方法,包括步骤:

101、获取浏览器的信息;

102、根据重点病历浏览器的信息确定重点病历浏览器的类型;

103、当重点病历浏览器为第一类型浏览器时,创建第一对象;

104、重写重点病历第一对象的第一函数,重点病历第一函数在用户打开重点病历浏览器的开发者工具页面时被调用并用于输出打开提示信息;

105、获取重点病历浏览器的控制台输出信息;

106、判断重点病历控制台输出信息是否包括重点病历打开提示信息,若是则确定重点病历浏览器的开发者工具页面被用户打开。

在本申请实施例中,可选地,第一类型浏览器为火狐浏览器。

在本申请实施例中,第一对象为正则对象,进一步地,第一对象的第一函数为正则对象中的toString函数。

在本申请实施例中,打开提示信息可以为“开发者工具已被打开”。进一步地,作为步骤104的一个示例,通过test.toString=function(){alert(‘开发者工具已被打开‘)}实现正则对象的toString函数的重写。

本申请实施例的方法通过获取浏览器的信息,进而能够根据重点病历浏览器的信息确定重点病历浏览器的类型,进而能够当重点病历浏览器为第一类型浏览器时,创建第一对象,进而通过重写重点病历第一对象的第一函数,可使得重点病历第一函数在用户打开重点病历浏览器的开发者工具页面时被调用并用于输出打开提示信息,进而通过获取重点病历浏览器的控制台输出信息,能够判断重点病历控制台输出信息是否包括重点病历打开提示信息,若是则确定重点病历浏览器的开发者工具页面被用户打开。与现有技术相比,由于本申请不需要通过检测浏览器的窗口变化,因此可以避免窗口误检。

在申请实施例中,作为一种可选的实施方式,在步骤106:重点病历确定重点病历浏览器的开发者工具页面被用户打开之后,本申请实施例的方法还包括步骤:

删除重点病历浏览器的开发者工具页面中的代码。

具体地,当定重点病历浏览器的开发者工具页面被用户打开之后,可执行删除指令以删除重点病历浏览器的开发者工具页面中的代码。

在本可选的实施方式中,当检测到浏览器的开发者工具页面被用户打开后,通过删除浏览器的开发者工具页面中的代码,能够防止浏览器的开发者工具页面中的代码泄露。与现有技术中对代码进行压缩合并处理相比,可避免使用大量的插件而降低成本,与此同时,可避免压缩合并处理的繁琐过程。

在本申请实施例,作为一种可选的实施方式,本申请实施例的方法还包括步骤:

当重点病历浏览器为第二类型浏览器时,创建第二对象;

在重点病历第二对象中增加第二函数,重点病历第二函数在用户打开重点病历浏览器的开发者工具页面时被调用并用于输出打开提示信息。

在本可选的实施方式,第二类型浏览器是火狐浏览器之外的浏览器,例如,可以是谷歌浏览器、IE浏览器中的一种。

在本可选的实施方式,可选地,第二对象是img对象,进一步地,第二函数可以是“test.__defineGetter__(‘id’,function(){alert(‘开发者工具已被打开‘)})”。

在本可选的实施方式中,通过创建第二对象和在重点病历第二对象中增加第二函数,能够使得第一浏览器之外的多种浏览器输出打开提示信息,进而能够实现兼容不同浏览器,使得不同浏览器均能够输出打开提示信息。

在本申请实施例中,作为一种可选的实施方式,在步骤106:重点病历确定重点病历浏览器的开发者工具页面被用户打开之后,本申请实施例的方法还包括步骤:

清空重点病历浏览器的控制台输出信息。

在本可选的实施方式,通过清空重点病历浏览器的控制台输出信息,可降低浏览器的负担。

在本申请实施例中,作为一种可选的实施方式,本申请实施例的方法还包括步骤:

设置定时器的定时时间,重点病历定时器用于按照重点病历定时时间执行重点病历获取重点病历浏览器的控制台输出信息和执行重点病历判断重点病历控制台输出信息是否包括重点病历打开提示信息、执行重点病历清空重点病历浏览器的控制台输出信息。

在本可选的实施方式中,通过定时器能够及时检测用户是否打开浏览器的开发者工具页面。

在本申请实施例中,作为一种可选的实施方式,在步骤103:重点病历创建第一对象之前,本申请实施例的方法还包括步骤:

判断是否已存在重点病历第一对象,若是则调用已存在的重点病历第一对象。

在本可选的实施方式,通过调用已存在的重点病历第一对象,可避免重复创建第一对象,进而降低内存资源的消耗。

实施例二

请参阅图1,图1是本申请实施例公开的一种浏览器开发模式检测装置的结构示意图。如图1所示,本申请实施例的装置包括:

第一获取模块201,用于获取浏览器的信息;

确定模块202,用于根据重点病历浏览器的信息确定重点病历浏览器的类型;

对象创建模块203,用于当重点病历浏览器为第一类型浏览器时,创建第一对象;

函数重写模块204,用于重写重点病历第一对象的第一函数,重点病历第一函数在用户打开重点病历浏览器的开发者工具页面时被调用并用于输出打开提示信息;

第二获取模块205,用于获取重点病历浏览器的控制台输出信息;

判断模块206,用于判断重点病历控制台输出信息是否包括重点病历打开提示信息,若是则确定重点病历浏览器的开发者工具页面被用户打开。

在本申请实施例中,可选地,第一类型浏览器为火狐浏览器。

在本申请实施例中,第一对象为正则对象,进一步地,第一对象的第一函数为正则对象中的toString函数。

在本申请实施例中,打开提示信息可以为“开发者工具已被打开”。进一步地,作为步骤104的一个示例,通过test.toString=function(){alert(‘开发者工具已被打开‘)}实现正则对象的toString函数的重写。

本申请实施例的浏览器开发模式检测装置通过获取浏览器的信息,进而能够根据重点病历浏览器的信息确定重点病历浏览器的类型,进而能够当重点病历浏览器为第一类型浏览器时,创建第一对象,进而通过重写重点病历第一对象的第一函数,可使得重点病历第一函数在用户打开重点病历浏览器的开发者工具页面时被调用并用于输出打开提示信息,进而通过获取重点病历浏览器的控制台输出信息,能够判断重点病历控制台输出信息是否包括重点病历打开提示信息,若是则确定重点病历浏览器的开发者工具页面被用户打开。与现有技术相比,由于本申请不需要通过检测浏览器的窗口变化,因此可以避免窗口误检。

需要说明的是,关于浏览器开发模式检测装置的其他详细说明请参阅本申请实施例一,本申请实施例对此不走赘述。

实施例三

请参阅图3,图3是本申请实施例公开的一种浏览器开发模式检测设备的结构示意图。如图3所示,本申请实施例的设备,包括:

处理器301;以及

存储器302,配置用于存储机器可读指令,重点病历指令在由重点病历处理器301执行时,执行本申请实施例一的浏览器开发模式检测方法。

本申请实施例的浏览器开发模式检测设备通过获取浏览器的信息,进而能够根据重点病历浏览器的信息确定重点病历浏览器的类型,进而能够当重点病历浏览器为第一类型浏览器时,创建第一对象,进而通过重写重点病历第一对象的第一函数,可使得重点病历第一函数在用户打开重点病历浏览器的开发者工具页面时被调用并用于输出打开提示信息,进而通过获取重点病历浏览器的控制台输出信息,能够判断重点病历控制台输出信息是否包括重点病历打开提示信息,若是则确定重点病历浏览器的开发者工具页面被用户打开。与现有技术相比,由于本申请不需要通过检测浏览器的窗口变化,因此可以避免窗口误检。

实施例四

本申请实施例公开一种存储介质,重点病历存储介质存储有计算机程序,重点病历计算机程序被处理器执行本申请实施例一的浏览器开发模式检测方法。

本申请实施例的存储介质通过获取浏览器的信息,进而能够根据重点病历浏览器的信息确定重点病历浏览器的类型,进而能够当重点病历浏览器为第一类型浏览器时,创建第一对象,进而通过重写重点病历第一对象的第一函数,可使得重点病历第一函数在用户打开重点病历浏览器的开发者工具页面时被调用并用于输出打开提示信息,进而通过获取重点病历浏览器的控制台输出信息,能够判断重点病历控制台输出信息是否包括重点病历打开提示信息,若是则确定重点病历浏览器的开发者工具页面被用户打开。与现有技术相比,由于本申请不需要通过检测浏览器的窗口变化,因此可以避免窗口误检。

在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,重点病历单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

需要说明的是,功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例重点病历方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。

以上重点病历仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号