首页 / 专利库 / 人工智能 / 语言代码 / 一种页面检测方法及装置

一种页面检测方法及装置

阅读:488发布:2020-05-12

专利汇可以提供一种页面检测方法及装置专利检索,专利查询,专利分析的服务。并且本 申请 提供了一种页面检测方法及装置。方案如下:获取待检测页面的脚本 语言代码 ;将脚本语言代码划分为多个词法 片段 ,并确定每一词法片段对应的片段类型;按照每一词法片段在脚本语言代码中的 位置 ,组合多个词法片段对应的片段类型,得到目标Token流;对目标Token流中片段类型对应的词法片段进行表达式化简,得到脚本语言代码对应的简化代码;将简化代码输入预设安全引擎,检测待检测页面是否为恶意页面。应用本申请 实施例 提供的技术方案,提高了恶意代码的正确率,降低了用户信息泄露的概率,提高了网络的安全性。,下面是一种页面检测方法及装置专利的具体信息内容。

1.一种页面检测方法,其特征在于,所述方法包括:
获取待检测页面的脚本语言代码
将所述脚本语言代码划分为多个词法片段,并确定每一词法片段对应的片段类型;
按照每一词法片段在所述脚本语言代码中的位置,组合多个词法片段对应的片段类型,得到目标令牌Token流;
对所述目标Token流中片段类型对应的词法片段进行表达式化简,得到脚本语言代码对应的简化代码;
将所述简化代码输入预设安全引擎,检测所述待检测页面是否为恶意页面。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述待检测页面的多个脚本语言代码片段,所述多个脚本语言代码片段组成所述待检测页面的脚本语言代码;
将所述多个脚本语言代码片段缓存到预设缓存空间中;
所述获取待检测页面的脚本语言代码,包括:
从所述预设缓存空间中,读取所述多个脚本语言代码片段。
3.根据权利要求1或2所述的方法,其特征在于,所述将所述脚本语言代码划分为多个词法片段,包括:
将所述脚本语言代码中的每一运算符划分为一个词法片段;
将所述脚本语言代码中除运算符外的连续至少一个字符划分为一个词法片段。
4.根据权利要求3所述的方法,其特征在于,所述确定每一词法片段对应的片段类型,包括:
对于每一词法片段,若该词法片段为运算符,则将该词法片段作为该词法片段的片段类型;
若该词法片段为连续至少一个字符,检测该词法片段是否与预设语法运算函数中的连续至少一个字符匹配;若匹配,则确定该词法片段的片段类型为标识类型;若否,则确定该词法片段的片段类型为字符类型。
5.根据权利要求4所述的方法,其特征在于,所述按照每一词法片段在所述脚本语言代码中的位置,组合多个词法片段对应的片段类型,得到目标Token流,包括:
将所述脚本语言代码中每一词法片段替换为该词法片段对应的片段类型,得到初始Token流;
若所述初始Token流中包括连续的多个目标片段类型,则将所述连续的多个目标片段类型替换为一个标识类型,得到目标Token流,其中,所述目标片段类型包括标识类型和预设运算符,所述连续的多个目标片段类型中首个片段类型和最后一个片段类型为标识类型,并且所述连续的多个目标片段类型中不包括字符类型;
若所述初始Token流中不包括连续的多个目标片段类型,则将所述初始Token流作为目标Token流。
6.根据权利要求1所述的方法,其特征在于,所述预设安全引擎包括:恶意页面的代码片段;
所述将所述简化代码输入预设安全引擎,检测所述待检测页面是否为恶意页面,包括:
将所述简化代码输入预设安全引擎,检测所述简化代码与所述代码片段是否匹配;
若是,则确定所述待检测页面为恶意页面;
若否,则确定所述待检测页面为正常页面。
7.一种页面检测装置,其特征在于,所述装置包括:
获取模,用于获取待检测页面的脚本语言代码;
划分模块,用于将所述脚本语言代码划分为多个词法片段,并确定每一词法片段对应的片段类型;
组合模块,用于按照每一词法片段在所述脚本语言代码中的位置,组合多个词法片段对应的片段类型,得到目标令牌Token流;
化简模块,用于对所述目标Token流中片段类型对应的词法片段进行表达式化简,得到脚本语言代码对应的简化代码;
检测模块,用于将所述简化代码输入预设安全引擎,检测所述待检测页面是否为恶意页面。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
接收模块,用于接收所述待检测页面的多个脚本语言代码片段,所述多个脚本语言代码片段组成所述待检测页面的脚本语言代码;
缓存模块,用于将所述多个脚本语言代码片段缓存到预设缓存空间中;
所述获取模块,具体用于从所述预设缓存空间中,读取所述多个脚本语言代码片段。
9.根据权利要求7或8所述的装置,其特征在于,所述划分模块,具体用于:
将所述脚本语言代码中的每一运算符划分为一个词法片段;
将所述脚本语言代码中除运算符外的连续至少一个字符划分为一个词法片段。
10.根据权利要求9所述的装置,其特征在于,所述划分模块,具体用于:
对于每一词法片段,若该词法片段为运算符,则将该词法片段作为该词法片段的片段类型;
若该词法片段为连续至少一个字符,检测该词法片段是否与预设语法运算函数中的连续至少一个字符匹配;若匹配,则确定该词法片段的片段类型为标识类型;若否,则确定该词法片段的片段类型为字符类型。
11.根据权利要求10所述的装置,其特征在于,所述划分模块,具体用于:
将所述脚本语言代码中每一词法片段替换为该词法片段对应的片段类型,得到初始Token流;
若所述初始Token流中包括连续的多个目标片段类型,则将所述连续的多个目标片段类型替换为一个标识类型,得到目标Token流,其中,所述目标片段类型包括标识类型和预设运算符,所述连续的多个目标片段类型中首个片段类型和最后一个片段类型为标识类型,并且所述连续的多个目标片段类型中不包括字符类型;
若所述初始Token流中不包括连续的多个目标片段类型,则将所述初始Token流作为目标Token流。
12.根据权利要求7所述的装置,其特征在于,所述预设安全引擎包括:恶意页面的代码片段;
所述检测模块,具体用于:
将所述简化代码输入预设安全引擎,检测所述简化代码与所述代码片段是否匹配;
若是,则确定所述待检测页面为恶意页面;
若否,则确定所述待检测页面为正常页面。

说明书全文

一种页面检测方法及装置

技术领域

[0001] 本申请涉及安全防护技术领域,特别是涉及一种页面检测方法及装置。

背景技术

[0002] Javascript(简称:JS)是一种直译式脚本语言。JS广泛的应用于超文本标记语言(英文:Hyper Text Markup Language,简称:HTML)页面中,从而给浏览器显示的HTML页面
增加动态功能。
[0003] 目前,非法用户可以利用浏览器漏洞来进行网页挂。例如,非法用户针对浏览器漏洞在HTML页面中植入恶意的JS代码(以下简称恶意代码),当合法用户通过未修补漏洞的
浏览器访问携带恶意代码的HTML页面时,将会触发该恶意代码,造成用户信息的泄露,网络
安全性差。
发明内容
[0004] 有鉴于此,本申请的目的在于提供一种页面检测方法及装置,以提高恶意代码的正确率,降低用户信息泄露的概率,提高网络的安全性。具体技术方案如下:
[0005] 第一方面,本申请提供了一种页面检测方法,该方法包括:
[0006] 获取待检测页面的脚本语言代码
[0007] 将所述脚本语言代码划分为多个词法片段,并确定每一词法片段对应的片段类型;
[0008] 按照每一词法片段在所述脚本语言代码中的位置,组合多个词法片段对应的片段类型,得到目标令牌(英文:Token)流;
[0009] 对所述目标Token流中片段类型对应的词法片段进行表达式化简,得到脚本语言代码对应的简化代码。
[0010] 结合第一方面,在第一种可能的实施方式中,上述方法还包括:
[0011] 接收所述待检测页面的多个脚本语言代码片段,所述多个脚本语言代码片段组成所述待检测页面的脚本语言代码;
[0012] 将所述多个脚本语言代码片段缓存到预设缓存空间中;
[0013] 所述获取待检测页面的脚本语言代码,包括:
[0014] 从所述预设缓存空间中,读取所述多个脚本语言代码片段。
[0015] 结合第一方面或第一方面的第一种可能的实施方式中,在第二种可能的实施方式中,所述将所述脚本语言代码划分为多个词法片段,包括:
[0016] 将所述脚本语言代码中的每一运算符划分为一个词法片段;
[0017] 将所述脚本语言代码中除运算符外的连续至少一个字符划分为一个词法片段。
[0018] 结合第一方面的第二种可能的实施方式,在第三种可能的实施方式中,所述确定每一词法片段对应的片段类型,包括:
[0019] 对于每一词法片段,若该词法片段为运算符,则将该词法片段作为该词法片段的片段类型;
[0020] 若该词法片段为连续至少一个字符,检测该词法片段是否与预设语法运算函数中的连续至少一个字符匹配;若匹配,则确定该词法片段的片段类型为标识类型;若否,则确
定该词法片段的片段类型为字符类型。
[0021] 结合第一方面的第三种可能的实施方式,在第四种可能的实施方式中,所述按照每一词法片段在所述脚本语言代码中的位置,组合多个词法片段对应的片段类型,得到目
标Token流,包括:
[0022] 将所述脚本语言代码中每一词法片段替换为该词法片段对应的片段类型,得到初始Token流;
[0023] 若所述初始Token流中包括连续的多个目标片段类型,则将所述连续的多个目标片段类型替换为一个标识类型,得到目标Token流,其中,所述目标片段类型包括标识类型
和预设运算符,所述连续的多个目标片段类型中首个片段类型和最后一个片段类型为标识
类型,并且所述连续的多个目标片段类型中不包括字符类型;
[0024] 若所述初始Token流中不包括连续的多个目标片段类型,则将所述初始Token流作为目标Token流。
[0025] 结合第一方面,在第五种可能的实施方式中,所述预设安全引擎包括:恶意页面的代码片段;
[0026] 所述将所述简化代码输入预设安全引擎,检测所述待检测页面是否为恶意页面,包括:
[0027] 将所述简化代码输入预设安全引擎,检测所述简化代码与所述代码片段是否匹配;
[0028] 若是,则确定所述待检测页面为恶意页面;
[0029] 若否,则确定所述待检测页面为正常页面。
[0030] 第二方面,本申请还提供了一种页面检测装置,该装置包括:
[0031] 获取模,用于获取待检测页面的脚本语言代码;
[0032] 划分模块,用于将所述脚本语言代码划分为多个词法片段,并确定每一词法片段对应的片段类型;
[0033] 组合模块,用于按照每一词法片段在所述脚本语言代码中的位置,组合多个词法片段对应的片段类型,得到目标Token流;
[0034] 化简模块,用于对所述目标Token流中片段类型对应的词法片段进行表达式化简,得到脚本语言代码对应的简化代码;
[0035] 检测模块,用于将所述简化代码输入预设安全引擎,检测所述待检测页面是否为恶意页面。
[0036] 结合第二方面,在第一种可能的实施方式中,上述装置还包括:
[0037] 接收模块,用于接收所述待检测页面的多个脚本语言代码片段,所述多个脚本语言代码片段组成所述待检测页面的脚本语言代码;
[0038] 缓存模块,用于将所述多个脚本语言代码片段缓存到预设缓存空间中;
[0039] 所述获取模块,具体用于从所述预设缓存空间中,读取所述多个脚本语言代码片段。
[0040] 结合第二方面或第二方面的第一种可能的实施方式,在第二种可能的实施方式中,所述划分模块,具体用于:
[0041] 将所述脚本语言代码中的每一运算符划分为一个词法片段;
[0042] 将所述脚本语言代码中除运算符外的连续至少一个字符划分为一个词法片段。
[0043] 结合第二方面的第二种可能的实施方式,在第三种可能的实施方式中,所述划分模块,具体用于:
[0044] 对于每一词法片段,若该词法片段为运算符,则将该词法片段作为该词法片段的片段类型;
[0045] 若该词法片段为连续至少一个字符,检测该词法片段是否与预设语法运算函数中的连续至少一个字符匹配;若匹配,则确定该词法片段的片段类型为标识类型;若否,则确
定该词法片段的片段类型为字符类型。
[0046] 结合第二方面的第三种可能的实施方式,在第四种可能的实施方式中,所述划分模块,具体用于:
[0047] 将所述脚本语言代码中每一词法片段替换为该词法片段对应的片段类型,得到初始Token流;
[0048] 若所述初始Token流中包括连续的多个目标片段类型,则将所述连续的多个目标片段类型替换为一个标识类型,得到目标Token流,其中,所述目标片段类型包括标识类型
和预设运算符,所述连续的多个目标片段类型中首个片段类型和最后一个片段类型为标识
类型,并且所述连续的多个目标片段类型中不包括字符类型;
[0049] 若所述初始Token流中不包括连续的多个目标片段类型,则将所述初始Token流作为目标Token流上述分析模块,具体用于基于Token流以及预设语法规则,构建语法树;对语
法树进行化简,得到简化后的代码。
[0050] 结合第二方面,在第五种可能的实施方式中,所述预设安全引擎包括:恶意页面的代码片段;
[0051] 所述检测模块,具体用于:
[0052] 将所述简化代码输入预设安全引擎,检测所述简化代码与所述代码片段是否匹配;
[0053] 若是,则确定所述待检测页面为恶意页面;
[0054] 若否,则确定所述待检测页面为正常页面。
[0055] 第三方面,本申请还提供了一种电子设备,包括处理器和机器可读存储介质,机器可读存储介质存储有能够被处理器执行的机器可执行指令,处理器被机器可执行指令促
使:实现上述任一所述的页面检测方法步骤。
[0056] 第四方面,本申请还提供了一种机器可读存储介质,存储有机器可执行指令,在被处理器调用和执行时,机器可执行指令促使处理器:实现上述任一所述的页面检测方法步
骤。
[0057] 本申请提供的页面检测方法及装置中,将获取的脚本语言代码划分成了多个词法片段后,由多个词法片段对应的片段类型,组合得到目标Token流。该目标Token流包括了每
一词法片段对应的片段类型。其中,不同词法片段的片段类型决定了不同词法片段间的表
达式关系。因此,基于目标Token流包括的片段类型,可对脚本语言代码中的词法片段进行
表达式化简,消除脚本语言代码中的混淆或变形,得到脚本语言代码对应的简化代码。利用
简化代码检测待检测页面是否为恶意页面,可以提高恶意代码的正确率,降低用户信息泄
露的概率,提高网络的安全性。
[0058] 当然,实施本申请的任一产品或方法必不一定需要同时达到以上所述的所有优点。
附图说明
[0059] 为了更清楚地说明本申请实施例现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本
申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以
根据这些附图获得其他的附图。
[0060] 图1为本申请实施例提供的页面检测方法的第一种流程示意图;
[0061] 图2为本申请实施例提供的页面检测方法的第二种流程示意图;
[0062] 图3为本申请实施例提供的页面检测方法的第三种流程示意图;
[0063] 图4为本申请实施例提供的Token流的一种示意图;
[0064] 图5为本申请实施例提供的语法树的一种示意图;
[0065] 图6为本申请实施例提供的页面检测方法的第四种流程示意图;
[0066] 图7为本申请实施例提供的页面检测装置的一种结构示意图;
[0067] 图8为本申请实施例提供的电子设备的一种结构示意图。

具体实施方式

[0068] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于
本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他
实施例,都属于本申请保护的范围。
[0069] 目前,页面检测主要通过定义字符规则的方式进行页面检测。具体的,将待检测页面的JS代码与定义的恶意代码片段进行匹配。若待检测页面的JS代码与定义的恶意代码片
段匹配,即待检测页面的JS代码中包括与定义的恶意代码片段匹配的代码片段,则判定待
检测页面是植入了恶意代码的页面,待检测页面是恶意页面。若待检测页面的JS代码与定
义的恶意代码片段不匹配,即待检测页面的JS代码中未包括与定义的恶意代码片段匹配的
代码片段,则判定待检测页面不是恶意页面,即正常页面。
[0070] 但是,由于JS代码可以根据JS语言的特性进行一定的混淆或变形,而混淆或变形后的恶意代码很可能与定义的恶意代码片段不匹配,进而将植入恶意代码的页面判定为正
常页面,造成用户信息的泄露,网络安全性差。
[0071] 为了提高恶意代码的正确率,降低用户信息泄露的概率,提高网络的安全性,本申请实施例提供的一种页面检测方法。该方法可以应用于任一具有浏览器的电子设备。在本
申请实施例提供的页面检测方法中,电子设备可以获取待检测页面的脚本语言代码,将脚
本语言代码划分为多个词法片段,并确定每一词法片段对应的片段类型;按照每一词法片
段在脚本语言代码中的位置,组合多个词法片段对应的片段类型,得到目标Token流;对目
标Token流中片段类型对应的词法片段进行表达式化简,得到脚本语言代码对应的简化代
码;将简化代码输入预设安全引擎,检测待检测页面是否为恶意页面。
[0072] 通过本申请实施例提供的方法,将获取的脚本语言代码划分成了多个词法片段后,由多个词法片段对应的片段类型,组合得到目标Token流。该目标Token流包括了每一词
法片段对应的片段类型。其中,不同词法片段的片段类型决定了不同词法片段间的表达式
关系。因此,基于目标Token流包括的片段类型,可对脚本语言代码中的词法片段进行表达
式化简,消除脚本语言代码中的混淆或变形,得到脚本语言代码对应的简化代码。利用简化
代码检测待检测页面是否为恶意页面,可以提高恶意代码的正确率,降低用户信息泄露的
概率,提高网络的安全性。
[0073] 下面通过具体的实施例,对本申请实施例提供的页面检测方法进行说明。
[0074] 如图1所示,图1为本申请实施例提供的页面检测方法的第一种流程示意图。为便于描述,下面以电子设备为执行主体进行说明,并不起限定作用。该方法包括以下步骤。
[0075] 步骤S101,获取待检测页面的脚本语言代码。
[0076] 在本步骤中,脚本语言代码可以为JS代码,也可以为HTML代码。在进行页面检测时,电子设备获取待检测页面的脚本语言代码。
[0077] 一个示例中,待检测页面可以为用户需要访问的HTML页面。例如,某一用户在电子设备的浏览器中搜索某一关键词时,该浏览器将会显示出与该关键词对应的多个HTML页面
的链接。用户通过点击浏览器中显示的一个链接,访问该链接对应的HTML页面。电子设备可
以将用户点击访问的HTML页面,确定为待检测页面,并获取该HTML页面的脚本语言代码。
[0078] 待检测页面可以为电子设备预先存储的HTML页面。本申请实施例对待检测页面不做具体限定。
[0079] 一个可选的实施例中,电子设备在获取到待检测页面的脚本语言代码后,可以对待检测页面的代码进行预处理,例如,删除脚本语言代码中的注释、无用的换行等。这样可
以有效提高页面检测的效率。
[0080] 步骤S102,将脚本语言代码划分为多个词法片段,并确定每一词法片段对应的片段类型。
[0081] 在本步骤中,电子设备可以在获取到待检测页面的脚本语言代码后,对待检测页面的脚本语言代码进行词法扫描分析,将脚本语言代码划分为多个词法片段,并确定每一
词法片段对应的片段类型。
[0082] 本申请实施例中,词法片段的划分规则以及词法片段对应的片段类型的划分规则可以根据实际需求进行设定。例如,词法片段的划分规则可以为:将连续的字母划分为一个
词法片段,将连续的数字划分为一个词法片段,将运算符划分为一个词法片段,和/或将每
一字符划分为一个词法片段等。词法片段对应的片段类型的划分规则可以为:将连续字母
的词法片段对应的片段类型划分为字符串类型,将连续数字的词法片段对应的片段类型划
分为数字类型,将运算符的词法片段对应的片段类型划分为该运算符的类型。
[0083] 一个可选的实施例中,电子设备可以利用词法分析器,对待检测页面的脚本语言代码进行词法扫描分析,将脚本语言代码划分为多个词法片段。上述词法分析器包括但不
限于lex(英文:LEXical compiler)词法分析器和flex词法分析器等。
[0084] 步骤S103,按照每一词法片段在脚本语言代码中的位置,组合多个词法片段对应的片段类型,得到目标Token流。
[0085] 本步骤中,电子设备将每一词法片段对应的片段类型作为一个Token,按照每一词法片段在脚本语言代码中的位置,组合多个词法片段对应的片段类型,得到目标Token流。
[0086] 例如,脚本语言代码1为ABCD,A、B、C、D分别代表一个词法片段。其中,词法片段A对应的片段类型为a',词法片段B对应的片段类型为b',词法片段C对应的片段类型为c',词法
片段D对应的片段类型为d'。电子设备按照每一词法片段在脚本语言代码1中的位置,组合
词法片段A、B、C、D对应的片段类型,得到目标Token流为{a'b'c'd'}。
[0087] 步骤S104,对目标Token流中片段类型对应的词法片段进行表达式化简,得到脚本语言代码对应的简化代码。
[0088] 本步骤中,电子设备基于目标Token流中的片段类型,对目标Token流中片段类型对应的词法片段进行表达式化简,得到脚本语言代码对应的简化代码。
[0089] 不同词法片段的片段类型决定了不同词法片段间的表达式关系。因此,基于目标Token流包括的片段类型,可对脚本语言代码中的词法片段进行表达式化简,消除脚本语言
代码中的混淆或变形,得到脚本语言代码对应的简化代码。
[0090] 一个可选的实施例中,电子设备可以利用语法分析器,对目标Token流中片段类型对应的词法片段进行语法分析,进而进行表达式化简,得到脚本语言代码对应的简化代码。
[0091] 上述语法分析器包括但不限于yacc(英文:Yet AnotherCompile-Compiler)语法分析器和bison语法分析器等。
[0092] 步骤S105,将简化代码输入预设安全引擎,检测待检测页面是否为恶意页面。
[0093] 在本步骤中,电子设备可以将简化代码输入预设安全引擎,检测待检测页面是否为恶意页面。上述预设安全引擎包括但不限于病毒引擎,以及入侵防御系统(英文:
Intrusion Prevention System,简称:IPS)引擎。
[0094] 本申请实施例中,电子设备对待检测页面的脚本语言代码进行了简化,可消除脚本语言代码的混淆或变形,得到简化代码。利用简化代码检测待检测页面是否为恶意页面,
提高了恶意代码的正确率,降低用户信息泄露的概率,提高网络的安全性。
[0095] 一个可选的实施例中,预设安全引擎可以包括恶意页面的代码片段。电子设备将简化代码输入预设安全引擎,检测简化代码与恶意页面的代码片段是否匹配;若是,则确定
待检测页面为恶意页面;若否,则确定待检测页面为正常页面。
[0096] 一个可选的实施例中,在确定待检测页面为恶意页面后,电子设备可以进行告警。以待检测页面为上述用户在浏览器中点击访问的HTML页面为例,一个示例中,电子设备可
以对浏览器中显示的恶意页面的链接进行标记,如将恶意页面的链接标记为险或者不建
议访问。另一个示例中,当用户点击访问恶意页面时,电子设备可以向用户发送确认信息,
如该页面存在风险,是否继续访问等。
[0097] 另一个可选的实施例中,在确定待检测页面为恶意页面后,电子设备可以对恶意代码进行安全防护处理,如丢弃待检测页面的脚本语言代码中的恶意代码等。
[0098] 再一个可选的实施例中,在确定待检测页面为正常页面后,电子设备可以对该正常页面不做处理。例如,电子设备允许用户正常访问该正常页面。
[0099] 一个可选的实施例中,参考图2,步骤S101、步骤S1023、S103-S105可参考上述图1部分的描述,此处不再赘述。上述步骤S102具体可以包括以下步骤。
[0100] 步骤S1021,将脚本语言代码中的每一运算符划分为一个词法片段。
[0101] 步骤S1022,将脚本语言代码中除运算符外的连续至少一个字符划分为一个词法片段。
[0102] 例如,待检测页面的脚本语言代码2为:
[0103] (("gUwIl"<"GjClm")?"MvOtt":"O")+String.fromCharCode(90,71,116,100)+unescape("wr")。
[0104] 电子设备将脚本语言代码2中的每一运算符划分为一个词法片段,将脚本语言代码2中除运算符外的连续至少一个字符划分为一个词法片段。此时,电子设备得到脚本语言
代码2的词法片段包括:“(”、“(”、“"gUwIl"”、“<”、“"GjClm"”、“)”、“?”、“"MvOtt"”、“:”、“"O"”、“)”、“+”、“String”、“.”、“fromCharCode”、“(”、“90”、“,”、“71”、“,”、“116”、“,”、“100”、“)”、“+”、“unescape”、“(”、“"wr"”、“)”。
[0105] 本申请实施例中限定步骤S1021和S1022的执行顺序。在获取词法片段时,电子设备可以按照脚本语言代码的代码读取顺序,确定当前获取的词法片段为一运算符,还是除
运算符外的连续至少一个字符。
[0106] 步骤S1023,确定每一词法片段对应的片段类型。
[0107] 一个可选的实施例中,参考图3,步骤S101、步骤S1024、S103-S105可参考上述图1部分的描述,此处不再赘述。上述步骤S102具体可以包括以下步骤。
[0108] 步骤S1024,将脚本语言代码划分为多个词法片段。
[0109] 步骤S1025,对于每一词法片段,若该词法片段为运算符,则将该词法片段作为该词法片段的片段类型。
[0110] 步骤S1026,若该词法片段为连续至少一个字符,检测该词法片段是否与预设语法运算函数中的连续至少一个字符匹配;若匹配,则确定该词法片段的片段类型为标识类型;
若否,则确定该词法片段的片段类型为字符类型。
[0111] 其中,预设语法运算函数中的连续至少一个字符中不包括运算符。
[0112] 本申请实施例中,为了便于后续进行表达式简化,字符类型还可以划分为字符串类型和数字类型。若字符类型对应的词法片段为数字,则该词法片段的片段类型可以细分
为数字类型,否则,该词法片段的片段类型可以细分为字符串类型。
[0113] 仍以上述步骤S1022部分的例子为例进行说明。电子设备得到脚本语言代码2的词法片段包括:“(”、“(”、“"gUwIl"”、“<”、“"GjClm"”、“)”、“?”、“"MvOtt"”、“:”、“"O"”、“)”、“+”、“String”、“.”、“fromCharCode”、“(”、“90”、“,”、“71”、“,”、“116”、“,”、“100”、“)”、“+”、“unescape”、“(”、“"wr"”、“)”。
[0114] 对于运算符,例如“(”,电子设备可将运算符“(”的片段类型设置为“(”。对于连续至少一个字符,例如"gUwIl"和String。若预设语法运算函数为String.fromCharCode,则电
子设备可确定词法片段"gUwIl"与预设语法运算函数中的连续至少一个字符不匹配,确定"
gUwIl"的片段类型为字符串类型;确定词法片段String与预设语法运算函数中的连续至少
一个字符匹配,确定String的片段类型为标识类型。以此类推,电子设备可得到脚本语言代
码2中每一词法片段对应的片段类型,如表1所示。
[0115] 表1
[0116]
[0117]
[0118] 在上述表1中,type表示词法片段对应的片段类别。value指示词法片段对应的片段值。其中,片段值可以依据片段类别确定。例如,片段类别为运算符,则片段值为空,即
null;片段类别为标识类型或字符串类型,则片段值为词法片段,词法片段对应的片段值便
于构建Token流。Identity表示标识类型,string表示字符串类型。Number表示数字类型。
[0119] 一个可选的实施例中,电子设备在确定每一词法片段对应的片段类型后,可以将脚本语言代码中每一词法片段替换为该词法片段对应的片段类型,得到初始Token流。若初
始Token流中包括多个连续的多个目标片段类型,则将连续的多个目标片段类型替换为一
个标识类型,得到目标Token流,其中,目标片段类型包括标识类型和预设运算符,连续的多
个目标片段类型中首个片段类型和最后一个片段类型为标识类型,并且连续的多个目标片
段类型中不包括字符类型;若初始Token流中不包括连续的多个目标片段类型,则将初始
Token流作为目标Token流。
[0120] 仍以上述脚本语言代码2和表1为例进行说明。电子设备将脚本语言代码2中每一词法片段替换为该词法片段对应的片段类型,得到初始Token流,如图4所示,图4中上方为
脚本语言代码2,下方为初始Token流。预设运算符为“.”其中,String为标识类型,
fromCharCode为标识类型。String和fromCharCode之间包括一个预设运算符“.”,因此,可
将初始Token流中String.fromCharCode对应的Identity.Identity替换为Identity。此时,
电子设备得到目标Token流为:
[0121] ((string
[0122] 一个可选的实施例中,上述步骤S104,对目标Token流中片段类型对应的词法片段进行表达式化简,得到脚本语言代码对应的简化代码,具体可以包括以下步骤。
[0123] 步骤S1041,基于目标Token流,按照预设语法规则,构建目标Token流对应的语法树。
[0124] 在本步骤中,电子设备利用上述语法分析器,可以根据目标Token流,按照预设语法规则,构建目标Token流对应的语法树。该语法树中各个节点为目标Token流中每一片段
类型对应的词法片段。
[0125] 例如,目标Token流为x+y*(s-m),若预设语法规则即为数学运算规则,则基于目标Token流,按照预设语法规则,构建的语法树,如图5所示。
[0126] 一个可选的实施例中,语法分析器进行语法分析的预设语法规则可以为待检测页面的脚本语言代码对应的全部语法规则。例如,若待检测页面的脚本语言代码为JS代码,则
语法分析器进行语法分析的预设语法规则为JS代码对应的全部语法规则。电子设备基于全
部的语法规则进行表达式化简,提高了简化代码的准确性,有效降低了恶意代码发生混淆
或变形后逃逸页面检测的概率,提高了恶意代码的检出率,降低了用户信息泄露的概率,提
高了网络的安全性。
[0127] 另一个可选的实施例中,语法分析器进行语法分析的预设语法规则可以为待检测页面的代码对应部分语法规则。例如,上述全部语法规则中使用较为频繁的语法规则,也就
是上述全部语法规则中除使用不频繁的语法规则以外的语法规则。再例如,用户根据实际
需求从上述全部语法规则中选取的部分语法规则。电子设备基于部分语法规则进行表达式
化简,预设语法规则的数量相对较少,但是却可以覆盖常用的语法,缩短了语法树构建所需
的时间,并对较多发生混淆或变形的代码进行恢复,提高了恶意代码的检出率以及页面检
测的效率。
[0128] 步骤S1042,对上述语法树进行表达式化简,得到脚本语言代码对应的简化代码。
[0129] 例如,预设语法规则如下所示:
[0130] 规则一,初级表达式语法规则,具体可以表示为:primary_expr::=string|number|identity。其中,primary_expr是由字符串(即string)、数字(即number)或标识符
(即identity)构成,primary_expr可以对应于语法树中的叶子节点
[0131] 规则二,后缀表达式的语法规则,具体可以表示为:post_expr::=post_expr[expr]|post_expr(expr,...)|post_expr.identity|post_expr++|po st_expr--|
primary_expr。该语法规则表示post_expr可以表示为递归表达式post_expr[expr]、或者
post_expr(expr,...)、或者post_expr++、或者post_expr--、或者结构体post_
expr.identity,或者上述primary_expr。
[0132] 规则三,一元表达式的语法规则,具体可以表示为:unary_expr::=~unary_expr|^unary_expr|-unary_expr|post_expr。该语法规则表示为unary_expr可以表示为对
unary_expr取反或取负得到的值,或者上述post_expr。其中,~和^为取反操作,-为取负操
作。
[0133] 规则三,乘除、取模或取余表达式的语法规则,具体可以表示为:prod_expr::=prod_expr*unary_expr|prod_expr/unary_expr|prod_expr%unary_expr。该语法规则表
示prod_expr可以表示为prod_expr和unary_expr的乘积值、或者prod_expr和unary_expr
的商,或者prod_expr和unary_expr间的余数值。其中,*为乘操作,/为除操作,%为取余操
作。
[0134] 规则四,加法、减法表达式的语法规则,具体可以表示为:addi_expr::=addi_expr+prod_expr|addi_expr-prod_expr|prod_expr。该语法规则表示addi_expr可以表示
为addi_expr与prod_expr的和,或者addi_expr和prod_expr的差。其中,+为加操作,-为减
操作。
[0135] 规则五,移位表达式的语法规则,具体可以表示为:shift_expr::=shift_expr<>addi_expr。该语法规则表示shift_expr可以表示为shift_expr
左移addi_expr位,或者shift_expr右移addi_expr位。其中,<<为左移位操作,>>为右移位
操作。
[0136] 规则六,关系表达式的语法规则,具体可以表示为:rel_expr::=rel_expr>shift_expr|rel_expr=shift_expr|rel_expr<=shift_expr。该
语法规则表示rel_expr可以表示为rel_expr大于shift_expr,或者rel_expr小于shift_
expr,或者rel_expr大于等于shift_expr,或者rel_expr小于等于shift_expr。其中,>表示
大于,<表示小于,>=表示大于等于,<=为小于等于。
[0137] 规则七,等于表达式的语法规则,具体可以表示为:equal_expr::=equal_expr==rel_expr|equal_expr!=rel_expr。该语法规则表示equal_expr可以表示为equal_expr
等于rel_expr,或者equal_expr不等于rel_expr。其中,==表示等于,!=表示不等于。
[0138] 规则八,异或表达式的语法规则,具体可以表示为:exclu_expr::=exclu_expr^equal_expr|equal_expr。该语法规则表示为exclu_expr可以表示为exclu_expr异或
equal_expr,或者equal_expr。其中,^为异或操作。
[0139] 规则九,条件表达式的语法规则,具体可以表示为:condi_expr::=exclu_expr?expr:condi_expr|exclu_expr。该语法规则表示为condi_expr可以表示为exclu_expr为真
(英文:True)输出expr,exclu_expr为假(英文:False),输出condi_expr或者exclu_expr。
[0140] 规则十,赋值表达式的语法规则,具体可以表示为:assign_expr::=unary_expr=assign_expr|condi_expr。该语法规则为assign_expr可以由unary_expr赋值得到,
assign_expr或者condi_expr赋值得到。其中,=为赋值操作。
[0141] 规则十一,通用表达式的语法规则,具体可以表示为:expr::=assgin_expr|expr,assign_expr。该语法规则表示为expr可以表示为assgin_expr或者expr,assign_
expr。
[0142] 在本申请实施例中,上述预设语法规则仅仅为常用的JS语法规则,并不是全部的语法规则。另外,上述预设语法规则中的表达式,如上述post_exp、unary_expr、prod_expr、
addi_expr、rel_expr、shift_expr等,根据具体语法规则的不同,具有不同实际意义,在此
不作具体限定。
[0143] 电子设备表达式简化的过程可以依据上述初级表达式的语法规则得到。即初级表达式可以为:primary_expr::=string|num|identity。
[0144] 其中,::=表示推导和构建的含义,primary_expr可以为Token流中片段类别为string、num或者identity组成。如"gUwIl"所对应的片段类别是string,在构建语法树的时
候,字符串gUwI将会被转换语法树的叶子节点。
[0145] 或者,电子设备表达式简化的过程也可以通过其他表达式中的终止符得到。例如,assign_expr::=unary_expr=assign_expr定义了等于符号在语法分析中的结构。
[0146] 电子设备在根据预设语法规则构建对应的语法树时,可以对语法树中的常量进行化简。
[0147] 为便于理解,结合上述脚本语言代码2,对本申请实施例提供的语法树进行表达式化简的过程进行说明。如表2所示。
[0148] 表2
[0149]
[0150] 在表2所示的表达式化简过程中,电子设备在根据目标Token流构建相应语法树的节点时,可以对语法树中的常量进行化简。例如,上述JS代码中的"gUwIl"<"GjClm"这一部
分,在构建语法树时,根据上述预设语法规则中的rel_expr::=rel_expr构建成一条件表达式的子树。由于右侧的rel_expr("gUwIl")和shift_expr("GjClm")在获
取的代码中为字符串常量,也就是存在具体的数值。因此,"gUwIl"<"GjClm"这一部分所对
应的比较结果是确定的,也就是"gUwIl"<"GjClm"的比较结果可以为真,即gUwIl所对应的
字符串常量小于GjClm所对应的字符串常量;或者"gUwIl"<"GjClm"的比较结果可以为假,
即gUwIl所对应的字符串常量不小于GjClm所对应的字符串常量。
[0151] 在表2所示的第一次化简过程中,根据gUwIl所对应的字符串常量,GjClm所对应的字符串常量,以及预设语法规则,进行第一次化简的所对应的简化结果为("gUwIl"<"
GjClm")->0,也就是"gUwIl"<"GjClm"的判断结果为假。
[0152] 针对第一次化简后的字符串,即(0?"MvOtt":"O")+String.fromCharCode(90,71,116,100)+unescape("wr"),根据预设语法规则,也就是"gUwIl"<"GjClm"的判断结果为真,
输出"MvOtt";"gUwIl"<"GjClm"的判断结果为假,输出"O"。电子设备可以确定第二次化简
的简化结果为(0?"MvOtt":"O")->"O"。
[0153] 针对第二次化简后的字符串,即("O")+String.fromCharCode(90,71,116,100)+unescape("wr"),电子设备可以根据预设语法规则,也就是美国信息交换标准代码(英文:
American Standard Code for Information Interchange,简称:ASCII)值转换为对应的
字符,也就是将ASCII值90转换为字符Z,将ASCII值71转换为字符G,将ASCII值116转换为字
符t,将ASCII值100转换为字符d。电子设备进行第三次化简的简化结果为
String.fromCharCode(90,71,116,100)->"ZGtd"。
[0154] 针对第三次化简后的字符串,即("O")+"ZGtd"+unescape("wr"),根据预设语法规则,电子设备进行第四次化简的简化结果为unescape("wr")->"wr"。
[0155] 针对第四次化简后的字符串,即("O")+"ZGtd"+"wr",根据预设语法规则,电子设备进行第五次化简的简化结果为("O")+"ZGtd"+"wr"->"OZGtdwr"。
[0156] 电子设备通过五次化简过程,将上述获取到的JS代码中的字符串(("gUwIl"<"GjClm")?"MvOtt":"O")+String.fromCharCode(90,71,116,100)+unesca pe("wr"),简化
为字符串"OZGtdwr"。也就是字符串"OZGtdwr"为获取到的脚本语言代码2进行混淆或变形
前的字符串。
[0157] 在表2所示的化简过程中,电子设备可以基于上述预设语法规则,采用递归下降分析法或移位归一分析法,对获取到的JS代码中的字符串进行遍历化简的。上述五次化简过
程为电子设备对所构建的语法树的遍历过程。
[0158] 综上所述,采用本申请实施例提供的方法,将获取的脚本语言代码划分成了多个词法片段后,由多个词法片段对应的片段类型,组合得到目标Token流。该目标Token流包括
了每一词法片段对应的片段类型。其中,不同词法片段的片段类型决定了不同词法片段间
的表达式关系。因此,基于目标Token流包括的片段类型,可对脚本语言代码中的词法片段
进行表达式化简,消除脚本语言代码中的混淆或变形,得到脚本语言代码对应的简化代码。
利用简化代码检测待检测页面是否为恶意页面,可以提高恶意代码的正确率,降低用户信
息泄露的概率,提高网络的安全性。
[0159] 一个可选的实施例中,根据上述图1所示的页面检测方法,本申请实施例还提供了一种页面检测方法。如图6所示,图6为本申请实施例提供的页面检测方法的第四种流程示
意图。该方法包括以下步骤。
[0160] 步骤S601,接收待检测页面的多个脚本语言代码片段,多个脚本语言代码片段组成待检测页面的脚本语言代码。
[0161] 在本步骤中,待检测页面的脚本语言代码被划分为多个片段,分别发送给电子设备,电子设备接收待检测页面的多个脚本语言代码片段,得到待检测页面的脚本语言代码。
[0162] 可以理解的,由于超文本传输协议(英文:HyperText Transfer Protocol,简称:HTTP)应答包较大,使得在传输控制协议(英文:Transmission Control Protocol,简称:
TCP)传输过程中,HTTP应答包将被分包,每一分包中包括待检测页面的脚本语言代码片段。
电子设备可以获取待检测页面所对应的所有分包,得到待检测页面的多个脚本语言代码片
段,进而得到待检测页面的脚本语言代码。
[0163] 步骤S602,将多个脚本语言代码片段缓存到预设缓存空间中。
[0164] 在本步骤中,电子设备可以接收的每一脚本语言代码片段分别缓存到预设缓存空间中。便于后续对待检测页面的脚本语言代码分析。
[0165] 一个示例,脚本语言代码片段携带在HTTP应答包的分包中,为了便于后续对待检测页面的脚本语言代码分析,电子设备可以根据分包的序号,将脚本语言代码片段顺序的
缓存到预设缓存空间中。
[0166] 步骤S603,从预设缓存空间中,读取多个脚本语言代码片段。
[0167] 在本步骤中,电子设备可以从预设缓存空间中,读取多个脚本语言代码片段,这多个脚本语言代码片段即为待检测页面的脚本语言代码。
[0168] 步骤S604,将脚本语言代码划分为多个词法片段,并确定每一词法片段对应的片段类型。
[0169] 步骤S605,按照每一词法片段在脚本语言代码中的位置,组合多个词法片段对应的片段类型,得到目标令牌Token流。
[0170] 步骤S606,对目标Token流中片段类型对应的词法片段进行表达式化简,得到脚本语言代码对应的简化代码。
[0171] 步骤S607,将简化代码输入预设安全引擎,检测待检测页面是否为恶意页面。
[0172] 上述步骤S604-步骤S607与上述步骤S102-步骤S105相同。
[0173] 在图6所示的页面检测方法中,电子设备通过将待检测页面的脚本语言代码片段缓存到预设缓存空间中,这使得电子设备在获取待检测页面的代码进行页面检测时,可以
直接从预设缓存空间中读取多个脚本语言代码片段,使得脚本语言代码获取更加方便,并
且获取到的完整脚本语言代码,方便后期对获取到的脚本语言代码进行表达式化简。
[0174] 基于同一种发明构思,根据上述本申请实施例提供的页面检测方法,本申请实施例还提供了一种页面检测装置。如图7所示,图7为本申请实施例提供的页面检测装置的一
种结构示意图。该装置包括以下模块。
[0175] 获取模块701,用于获取待检测页面的脚本语言代码;
[0176] 划分模块702,用于将脚本语言代码划分为多个词法片段,并确定每一词法片段对应的片段类型;
[0177] 组合模块703,用于按照每一词法片段在脚本语言代码中的位置,组合多个词法片段对应的片段类型,得到目标Token流;
[0178] 化简模块704,用于对目标Token流中片段类型对应的词法片段进行表达式化简,得到脚本语言代码对应的简化代码;
[0179] 检测模块705,用于将简化代码输入预设安全引擎,检测待检测页面是否为恶意页面。
[0180] 一个可选的实施例中,上述页面检测装置还可以包括:
[0181] 接收模块,用于接收待检测页面的多个脚本语言代码片段,多个脚本语言代码片段组成待检测页面的脚本语言代码;
[0182] 缓存模块,用于将多个脚本语言代码片段缓存到预设缓存空间中;
[0183] 获取模块701,具体用于从预设缓存空间中,读取多个脚本语言代码片段。
[0184] 一个可选的实施例中,划分模块,具体用于:
[0185] 将脚本语言代码中的每一运算符划分为一个词法片段;
[0186] 将脚本语言代码中除运算符外的连续至少一个字符划分为一个词法片段。
[0187] 一个可选的实施例中,划分模块702,具体可以用于:
[0188] 对于每一词法片段,若该词法片段为运算符,则将该词法片段作为该词法片段的片段类型;
[0189] 若该词法片段为连续至少一个字符,检测该词法片段是否与预设语法运算函数中的连续至少一个字符匹配;若匹配,则确定该词法片段的片段类型为标识类型;若否,则确
定该词法片段的片段类型为字符类型。
[0190] 一个可选的实施例中,划分模块702,具体可以用于:
[0191] 将脚本语言代码中每一词法片段替换为该词法片段对应的片段类型,得到初始Token流;
[0192] 若初始Token流中包括连续的多个目标片段类型,则将连续的多个目标片段类型替换为一个标识类型,得到目标Token流,其中,目标片段类型包括标识类型和预设运算符,
连续的多个目标片段类型中首个片段类型和最后一个片段类型为标识类型,并且连续的多
个目标片段类型中不包括字符类型;
[0193] 若初始Token流中不包括连续的多个目标片段类型,则将初始Token流作为目标Token流。
[0194] 一个可选的实施例中,预设安全引擎可以包括恶意页面的代码片段;
[0195] 检测模块705,具体用于将简化代码输入预设安全引擎,检测简化代码与代码片段是否匹配;若是,则确定待检测页面为恶意页面;若否,则确定待检测页面为正常页面。
[0196] 通过本申请实施例提供的装置,将获取的脚本语言代码划分成了多个词法片段后,由多个词法片段对应的片段类型,组合得到目标Token流。该目标Token流包括了每一词
法片段对应的片段类型。其中,不同词法片段的片段类型决定了不同词法片段间的表达式
关系。因此,基于目标Token流包括的片段类型,可对脚本语言代码中的词法片段进行表达
式化简,消除脚本语言代码中的混淆或变形,得到脚本语言代码对应的简化代码。利用简化
代码检测待检测页面是否为恶意页面,可以提高恶意代码的正确率,降低用户信息泄露的
概率,提高网络的安全性。
[0197] 基于同一种发明构思,根据上述本申请实施例提供的页面检测方法,本申请实施例还提供了一种电子设备,如图8所示,包括处理器801和机器可读存储介质802,机器可读
存储介质802存储有能够被处理器801执行的机器可执行指令。
[0198] 另外,如图8所示,电子设备还可以包括:通信接口803和通信总线804;其中,处理器801、机器可读存储介质802、通信接口803通过通信总线804完成相互间的通信,通信接口
803用于上述电子设备与其他设备之间的通信。
[0199] 处理器801被机器可执行指令促使实现如下步骤:
[0200] 获取待检测页面的脚本语言代码;
[0201] 将脚本语言代码划分为多个词法片段,并确定每一词法片段对应的片段类型;
[0202] 按照每一词法片段在脚本语言代码中的位置,组合多个词法片段对应的片段类型,得到目标Token流;
[0203] 对目标Token流中片段类型对应的词法片段进行表达式化简,得到脚本语言代码对应的简化代码;
[0204] 将简化代码输入预设安全引擎,检测待检测页面是否为恶意页面。
[0205] 上述通信总线804可以是外设部件互连标准(英文:Peripheral Component Interconnect,简称:PCI)总线或扩展工业标准结构(英文:Extended Industry Standard 
Architecture,简称:EISA)总线等。该通信总线804可以分为地址总线数据总线、控制总线
等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0206] 机器可读存储介质802可以包括随机存取存储器(英文:Random Access Memory,简称:RAM),也可以包括NVM(Non-Volatile Memory,非易失性存储器),例如至少一个磁盘
存储器。另外,机器可读存储介质802还可以是至少一个位于远离前述处理器的存储装置。
[0207] 上述处理器801可以是通用处理器,包括中央处理器(英文:Central Processing Unit,简称:CPU)、网络处理器(英文:Network Processor,简称:NP)等;还可以是数字信号
处理器(英文:Digital Signal Processing,简称:DSP)、专用集成电路(英文:Application 
Specific Integrated Circuit,简称:ASIC)、现场可编程阵列(英文:Field-
Programmable Gate Array,简称:FPGA)或其他可编程逻辑器件、分立门或者晶体管逻辑器
件、分立硬件组件。
[0208] 通过本申请实施例提供的电子设备,将获取的脚本语言代码划分成了多个词法片段后,由多个词法片段对应的片段类型,组合得到目标Token流。该目标Token流包括了每一
词法片段对应的片段类型。其中,不同词法片段的片段类型决定了不同词法片段间的表达
式关系。因此,基于目标Token流包括的片段类型,可对脚本语言代码中的词法片段进行表
达式化简,消除脚本语言代码中的混淆或变形,得到脚本语言代码对应的简化代码。利用简
化代码检测待检测页面是否为恶意页面,可以提高恶意代码的正确率,降低用户信息泄露
的概率,提高网络的安全性。
[0209] 基于同一种发明构思,根据上述本申请实施例提供的页面检测方法,本申请实施例还提供了一种机器可读存储介质,存储有机器可执行指令,在被处理器调用和执行时,所
述机器可执行指令促使所述处理器:实现上述任一所述的页面检测方法步骤。
[0210] 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存
在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖
非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要
素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备
所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在
包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0211] 本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、
电子设备及机器可读存储介质等实施例而言,由于其基本相似于方法实施例,所以描述的
比较简单,相关之处参见方法实施例的部分说明即可。
[0212] 以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围
内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈