掌桥专利:专业的专利平台
掌桥专利
首页

一种识别网站插件的方法、装置、设备及介质

文献发布时间:2023-06-19 11:19:16


一种识别网站插件的方法、装置、设备及介质

技术领域

本发明涉及互联网技术领域,尤其涉及一种识别网站插件的方法、装置、设备及介质。

背景技术

网站开发过程以及其他一些情况下,需要使用第三方数据包对其进行辅助,以使网站获得更好的使用体验的同时,还能够与其他相关第三方进行交互。

现有技术中,想要获取终端设备登录网站过程中安装的第三方插件,需要通过嵌入式或者钓鱼式等方式才能够获取到,因此,对于非网站开发者来说,无法获取到终端设备安装的第三方插件的信息。然而,这些第三方插件有的存在漏洞,有的存在其他不安全因素,这就造成用户登录网站存在网络安全隐患。

为了获取网站中的第三方插件包的基本信息,检测第三方插件包是否安全,现有的一种解决方式是,通过浏览器先安装一个检测插件,接着通过浏览器登录网站,使用检测插件对该网站使用的第三方插件包进行识别和检测。

研发人员为了提高自身的研发能力,希望从网站中获取第三方插件,用于学习和研究。其他服务提供商,为了验证网站是否安全,需要对第三方插件进行检测。但现有技术中的识别和检测方法的步骤过于繁杂,增加了研发人员和服务提供商的学习成本和时间成本。

发明内容

为了解决上述技术问题,本发明提供了一种识别网站插件的方法、装置、设备及介质。

本发明提供的一种识别网站插件的方法,所述方法包括:

获取网站的域名;

基于所述网站的插件的属性对无头浏览器的运行状态进行配置,并使用经过配置后的无头浏览器对所述网站的域名进行访问;

接收返回的响应对象,并对所述响应对象进行解析,获得所述响应对象的预设属性;

根据所述响应对象的预设属性,确定所述网站的插件。

上述识别网站插件的方法还具有以下特点:所述根据所述响应对象的预设属性,确定所述网站的插件包括:

读取所述响应对象的预设属性,确定与所述响应对象对应的窗口对象;

根据预存的已知插件列表和与所述响应对象对应的窗口对象,确定所述网站的插件。

上述识别网站插件的方法还具有以下特点:

所述预存的已知插件列表中,以预设形式存储有已知插件和与其对应的窗口对象的映射关系;

所述根据所述预存的已知插件列表和与所述响应对象对应的窗口对象,确定所述网站的插件包括:

将所述响应对象对应的窗口对象在所述预存的已知插件列表中进行遍历,确定所述响应对象对应的窗口对象所对应的已知插件,将其作为所述网站的插件。

上述识别网站插件的方法还具有以下特点:所述方法还包括:

对使用经过配置后的无头浏览器对所述网站的域名进行访问的过程进行监测;

获取监测数据;

根据所述监测数据,获取所述插件的插件信息;

根据所述插件信息,判断所述插件是否安全,若否,对所述插件进行拦截。

上述识别网站插件的方法还具有以下特点:在所述经过配置后的无头浏览器首次对所述网站的域名进行访问时,根据访问状态码判断网络是否通畅,若是,则接收返回的响应对象;

若否,则提示网络异常。

上述识别网站插件的方法还具有以下特点:所述获取网站的域名包括:

接收输入的统一资源定位符;

根据所述统一资源定位符,确定所述网站的域名。

本发明提供的一种识别网站插件的装置,所述装置包括:

获取模块,用于获取网站的域名;

访问配置模块,用于对无头浏览器的运行状态进行配置,并使用经过配置后的无头浏览器对所述网站的域名进行访问;

解析模块,用于接收返回的响应对象,并对所述响应对象进行解析,获得所述响应对象的预设属性;

判断模块,用于根据所述响应对象的预设属性,确定所述网站的插件。

上述识别网站插件的装置还具有以下特点:所述判断模块,具体用于读取所述响应对象的预设属性,确定与所述响应对象对应的窗口对象;

根据预存的已知插件列表和与所述响应对象对应的窗口对象,确定所述网站的插件。

上述识别网站插件的装置还具有以下特点:所述装置包括:

存储模块,用于存储所述预存的已知插件列表,其中,所述预存的已知插件列表中,以预设形式存储有已知插件和与其对应的窗口对象的映射关系;

所述判断模块,具体用于将所述响应对象对应的窗口对象在所述预存的已知插件列表中进行遍历,确定所述响应对象对应的窗口对象所对应的已知插件,将其作为所述网站的插件。

上述识别网站插件的装置还具有以下特点:所述装置还包括:

监测模块,用于对使用经过配置后的无头浏览器对所述网站的域名进行访问的过程进行监测;

所述获取模块,还用于获取监测数据;

所述判断模块,还用于根据所述监测数据,获取所述插件的插件信息;根据所述插件信息,判断所述插件是否安全,若否,对所述插件进行拦截。

上述识别网站插件的装置还具有以下特点:所述装置还包括:

网络判断模块,用于在所述经过配置后的无头浏览器首次对所述网站的域名进行访问时,根据访问状态码判断网络是否通畅;

提示模块,用于提示网络异常。

上述识别网站插件的装置还具有以下特点:所述获取模块,具体用于接收输入的统一资源定位符;

根据所述统一资源定位符,确定所述网站的域名。

本发明提供的传输设备,所述传输设备包括:收发器、存储器、处理器;

所述收发器用于收发报文;

所述存储器用于存储指令和数据;

所述处理器用于读取所述存储器中存储的指令和数据,以执行如上所述的识别网站插件的方法。

本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述程序被处理器执行时实现如上所述的识别网站插件的方法。

本发明中的识别网站插件的方法、装置无需在可视化界面上打开浏览器,也无需使用浏览器下载识别检测插件,在不破坏原有web的情况下,就能够解析出网站使用的插件,减少研发人员的检索时间,提升网站研发人员学习和开发效率。

附图说明

构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是实施例中的识别网站插件方法的方法流程图;

图2是实施例中的识别网站插件方法的另一方法流程图;

图3是实施例中的识别网站插件方法的另一方法流程图;

图4是实施例中的识别网站插件方法的另一方法流程图;

图5是实施例中的识别网站插件方法的另一方法流程图;

图6是实施例中的识别网站插件的装置的连接结构图;

图7是实施例中的识别网站插件的装置的另一连接结构图;

图8是实施例中的识别网站插件的装置的另一连接结构图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

本申请提供了一种识别网站插件的方法,基于网站插件的属性对无头浏览器的运行状态进行配置,并使用经过配置后的无头浏览器对网站的域名进行访问,无需在可视化界面上打开浏览器,也无需使用浏览器下载识别检测插件,在不破坏原有web的情况下,就能够解析出网站使用的插件,减少研发人员的检索时间,提升网站研发人员学习和开发效率。

如图1所示,在一个实施例中,识别网站插件的方法使用nodejs作为基础开发环境进行开发,其可以应用在终端上,比如手机、平板电脑、电脑等,其具体的实现形式可以是比如APP、或者应用软件等。识别网站插件的方法包括:

S1、获取网站的域名;

S2、基于网站的插件的属性对无头浏览器的运行状态进行配置,并使用经过配置后的无头浏览器对网站的域名进行访问;

S3、接收返回的响应对象,并对响应对象进行解析,获得响应对象的预设属性;

S4、根据响应对象的预设属性,确定网站的插件。

其中,在步骤S1中,获取网站的域名的方法具体为:

接收输入的统一资源定位符;

根据统一资源定位符,确定网站的域名。

研发人员等用户在使用终端上的软件中输入统一资源定位符,比如http://www.cnipa.gov.cn/xwfb/index.htm,软件接收到统一资源定位符后,会自动获取统一资源定位符中的网站的域名,http://www.cnipa.gov.cn。由于本实施例中的方法是在nodejs作为基础开发环境,因此,会在获取到网站的域名后,对其进行格式配置,配置成json格式,以使域名的格式与软件能够识别的格式保持统一,确保后续功能实现。在此,需要说明的是,由于用户输入习惯不同,在输入统一资源定位符的时候,有的用户不习惯添加头部“http://”,这种情况容易导致后续访问出现问题,此时,软件会自动为域名增加头部“http://”。如果用户在输入统一资源定位符的时候,直接就输入了头部“http://”,软件能够快速对其进行识别,并获取统一资源定位符中的需要访问的域名。

在步骤S2中,基于网站的插件对无头浏览器的运行状态进行配置,是指对无头浏览器的运行程序进行编码,以使得无头浏览器运行的目的是获取网站的插件的属性,以确定网站的插件。无头浏览器在运行过程中没有UI界面,其通过对运行程序进行编码模拟浏览器访问网站的操作,经过配置后的无头浏览器以黑盒方式在终端上启用后台的gpu资源,生成对应的模拟操作对网站进行访问。

在步骤S3中,无头浏览器访问网站,通过正常的握手方式返回响应对象,终端接收返回的响应对象,响应对象可以是一个,也可以是多个。对响应对象进行解析,获得响应对象的预设属性,比如可以是响应对象的[js-libraries]属性,通过该属性可以确定网站的插件,在此,需要说明的是,确定网站的插件并不能够直接获得插件的数据包,而是确定插件的名称和版本。

如图2所示,步骤S4进一步包括:

S41、读取响应对象的预设属性,确定与响应对象对应的窗口对象;

S42、根据预存的已知插件列表和与响应对象对应的窗口对象,确定网站的插件。

在步骤S41中,通过读取响应对象的[js-libraries]属性,可以获取到对应的窗口对象,通常情况下,每一个插件的运行都需要使用窗口对象作为关联,也就是说插件与窗口对象之间存在对应关系,通过窗口对象就能够确定与其对应的插件。

在步骤S42中,预存的已知插件列表中存储有窗口对象与插件之间的对应关系,从而根据窗口对象和已知插件列表就能够确定网站的插件。

更进一步的,预存的已知插件列表中,以预设形式存储有已知插件和与其对应的窗口对象的映射关系,如图3所示,步骤S42在具体执行过程中包括:

S421、将响应对象对应的窗口对象在预存的已知插件列表中进行遍历,确定响应对象对应的窗口对象所对应的已知插件,将其作为网站的插件。

其中,预存的已知插件列表中存储的是已知的常用插件对应的窗口对象,比如可以通过key/value形式存储在插件列表中。将响应对象对应的窗口对象在预存的已知插件列表中进行遍历是指,将响应对象对应的窗口对象与已知插件列表中存储的每一个常用插件对应的窗口对象进行一一比较,如果响应对象对应的窗口对象与插件列表中存储的常用插件对应的窗口对象一致,该插件即为网站的插件,具体为获得网站的插件的名称和/或版本。

在此需要说明的是,在某些特殊情况下,网站使用的插件并非是常用插件,比如bootstrap或者jquery这两个插件,需要匹配该插件对应的窗口对象上是否具有特殊属性,如果有特殊属性则通过正则表达式匹配的方式确定该插件对应特殊的版本标识和版本信息。

如图4所示,在经过配置后的无头浏览器首次对网站的域名进行访问时,识别网站插件的方法还包括确定网络是否正常的步骤,具体为:

S5、根据访问状态码判断网络是否通畅,若是,则执行步骤S3;

若否,则执行步骤S51;

S51、提示网络异常。

其中,通过nodejs作为基础开发环境的框架下提供了url包,以保证无头浏览器能够模拟常规浏览器进行正常url访问,通过访问状态码确定网络是否通畅。若网络http状态码是200,说明网络通畅,可以继续执行步骤S3;如果网络http状态码不是200,说明网络异常。造成网络异常的原因有可能是网络状况不好,也可能是终端出现了宕机情况,还可能是因为无头浏览器没有访问权限,上述情况都可能造成无法访问,当出现网络异常无法访问时,需要对无头浏览器的运行状态重新进行配置,或者对网络和终端进行调试,以找出访问无法进行的原因,确保访问能够正常执行。在此需要说明的是,如果不是首次访问可以不用进行网络是否通畅的判断,当然,为了保证每次访问的网络都是通畅的,也可以每次访问之前都进行网络是否通畅的判断。

如图5所示,本实施例中的识别网站插件的方法还包括以下步骤:

S6、对使用经过配置后的无头浏览器对网站的域名进行访问的过程进行监测,获取监测数据;

S7、根据监测数据,获取插件的插件信息;

S8、根据插件信息,判断插件是否安全,若是,则执行步骤S10;

若否,则执行步骤S9;

S9、对插件进行拦截;

S10、允许插件使用。

其中,在步骤S6中,对使用无头浏览器进行访问过程中,对访问过程进行监控和逐项审查,比如对访问性能信息、配置参数信息、指标分组信息进行监控和逐项审查,以获取监测数据。

步骤S7中,获取到监测数据后,根据监测数据获取网站的插件的属性,遍历属性下的所有数组,取出对应的参数信息,参数信息包括有漏洞的插件的名称、漏洞严重程度、插件的缺陷、插件对应的地址等。根据上述参数信息判断网站的插件是否存在漏洞或者不安全因素,如果存在漏洞或者不安全因素,则对插件做相应的拦截处理,不允许其在终端上运行。

本发明中的识别网站插件的方法,不需要通过UI界面打开浏览器,通过无头浏览器即可模拟浏览器访问网站,同时,不需要安装检测插件,只需要执行脚本并输入统一资源定位符,就能过确定网站的插件的名称和版本。

本发明还提供了一种识别网站插件的装置,用于执行上述识别网站插件的方法,如图6所示,一种识别网站插件的装置,用于执行上述图1中所示的识别网站插件的方法,该装置包括:

获取模块,用于获取网站的域名;

访问配置模块,用于对无头浏览器的运行状态进行配置,并使用经过配置后的无头浏览器对网站的域名进行访问;

解析模块,用于接收返回的响应对象,并对响应对象进行解析,获得响应对象的预设属性;

判断模块,用于根据响应对象的预设属性,确定网站的插件。

其中,获取模块具体用于接收输入的统一资源定位符,并根据统一资源定位符,确定网站的域名。

进一步地,判断模块用于执行图2中示出的步骤S41和S42,具体用于读取响应对象的预设属性,确定与响应对象对应的窗口对象;并根据预存的已知插件列表和与响应对象对应的窗口对象,确定网站的插件。

进一步地,为了执行图3中示出的识别网站插件的方法,本发明中的识别网站插件的装置还包括存储模块,用于存储预存的已知插件列表,其中,预存的已知插件列表中,以预设形式存储有已知插件和与其对应的窗口对象的映射关系。判断模块,还具体用于将响应对象对应的窗口对象在预存的已知插件列表中进行遍历,确定响应对象对应的窗口对象所对应的已知插件,将其作为网站的插件。

进一步地,为了保证图4中示出的方法能够顺利执行,如图7所示,识别网站插件的装置还包括:

网络判断模块,用于在经过配置后的无头浏览器首次对网站的域名进行访问时,根据访问状态码判断网络是否通畅;

提示模块,用于提示网络异常。

进一步地,为了保证图5中示出的方法能够顺利执行,如图8所示,识别网站插件的装置还包括:

监测模块,用于对使用经过配置后的无头浏览器对网站的域名进行访问的过程进行监测;

获取模块,还用于获取监测数据;

判断模块,还用于根据监测数据,获取插件的插件信息;根据插件信息,判断插件是否安全,若否,对插件进行拦截。

本发明还提供了一种传输设备,传输设备包括:收发器、存储器、处理器;收发器用于收发报文;存储器用于存储指令和数据;处理器用于读取存储器中存储的指令和数据,以执行上述的识别网站插件的方法。

本发明还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,程序被处理器执行时实现上述的识别网站插件的方法。

上面描述的内容可以单独地或者以各种方式组合起来实施,而这些变型方式都在本发明的保护范围之内。

本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现,相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的物品或者设备中还存在另外的相同要素。

以上实施例仅用以说明本发明的技术方案而非限制,仅仅参照较佳实施例对本发明进行了详细说明。本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,均应涵盖在本发明的权利要求范围当中。

相关技术
  • 一种识别网站插件的方法、装置、设备及介质
  • 一种跨网站发送弹幕的插件、方法、电子设备和存储介质
技术分类

06120112880705