CN110795731B - 一种页面检测方法及装置 - Google Patents

一种页面检测方法及装置 Download PDF

Info

Publication number
CN110795731B
CN110795731B CN201910955399.1A CN201910955399A CN110795731B CN 110795731 B CN110795731 B CN 110795731B CN 201910955399 A CN201910955399 A CN 201910955399A CN 110795731 B CN110795731 B CN 110795731B
Authority
CN
China
Prior art keywords
lexical
segment
page
fragment
script language
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910955399.1A
Other languages
English (en)
Other versions
CN110795731A (zh
Inventor
马文强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
New H3C Security Technologies Co Ltd
Original Assignee
New H3C Security Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by New H3C Security Technologies Co Ltd filed Critical New H3C Security Technologies Co Ltd
Priority to CN201910955399.1A priority Critical patent/CN110795731B/zh
Publication of CN110795731A publication Critical patent/CN110795731A/zh
Application granted granted Critical
Publication of CN110795731B publication Critical patent/CN110795731B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Machine Translation (AREA)

Abstract

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

Description

一种页面检测方法及装置
技术领域
本申请涉及安全防护技术领域,特别是涉及一种页面检测方法及装置。
背景技术
Javascript(简称:JS)是一种直译式脚本语言。JS广泛的应用于超文本标记语言(英文:Hyper Text Markup Language,简称:HTML)页面中,从而给浏览器显示的HTML页面增加动态功能。
目前,非法用户可以利用浏览器漏洞来进行网页挂马。例如,非法用户针对浏览器漏洞在HTML页面中植入恶意的JS代码(以下简称恶意代码),当合法用户通过未修补漏洞的浏览器访问携带恶意代码的HTML页面时,将会触发该恶意代码,造成用户信息的泄露,网络安全性差。
发明内容
有鉴于此,本申请的目的在于提供一种页面检测方法及装置,以提高恶意代码的正确率,降低用户信息泄露的概率,提高网络的安全性。具体技术方案如下:
第一方面,本申请提供了一种页面检测方法,该方法包括:
获取待检测页面的脚本语言代码;
将所述脚本语言代码划分为多个词法片段,并确定每一词法片段对应的片段类型;
按照每一词法片段在所述脚本语言代码中的位置,组合多个词法片段对应的片段类型,得到目标令牌(英文:Token)流;
对所述目标Token流中片段类型对应的词法片段进行表达式化简,得到脚本语言代码对应的简化代码。
结合第一方面,在第一种可能的实施方式中,上述方法还包括:
接收所述待检测页面的多个脚本语言代码片段,所述多个脚本语言代码片段组成所述待检测页面的脚本语言代码;
将所述多个脚本语言代码片段缓存到预设缓存空间中;
所述获取待检测页面的脚本语言代码,包括:
从所述预设缓存空间中,读取所述多个脚本语言代码片段。
结合第一方面或第一方面的第一种可能的实施方式中,在第二种可能的实施方式中,所述将所述脚本语言代码划分为多个词法片段,包括:
将所述脚本语言代码中的每一运算符划分为一个词法片段;
将所述脚本语言代码中除运算符外的连续至少一个字符划分为一个词法片段。
结合第一方面的第二种可能的实施方式,在第三种可能的实施方式中,所述确定每一词法片段对应的片段类型,包括:
对于每一词法片段,若该词法片段为运算符,则将该词法片段作为该词法片段的片段类型;
若该词法片段为连续至少一个字符,检测该词法片段是否与预设语法运算函数中的连续至少一个字符匹配;若匹配,则确定该词法片段的片段类型为标识类型;若否,则确定该词法片段的片段类型为字符类型。
结合第一方面的第三种可能的实施方式,在第四种可能的实施方式中,所述按照每一词法片段在所述脚本语言代码中的位置,组合多个词法片段对应的片段类型,得到目标Token流,包括:
将所述脚本语言代码中每一词法片段替换为该词法片段对应的片段类型,得到初始Token流;
若所述初始Token流中包括连续的多个目标片段类型,则将所述连续的多个目标片段类型替换为一个标识类型,得到目标Token流,其中,所述目标片段类型包括标识类型和预设运算符,所述连续的多个目标片段类型中首个片段类型和最后一个片段类型为标识类型,并且所述连续的多个目标片段类型中不包括字符类型;
若所述初始Token流中不包括连续的多个目标片段类型,则将所述初始Token流作为目标Token流。
结合第一方面,在第五种可能的实施方式中,所述预设安全引擎包括:恶意页面的代码片段;
所述将所述简化代码输入预设安全引擎,检测所述待检测页面是否为恶意页面,包括:
将所述简化代码输入预设安全引擎,检测所述简化代码与所述代码片段是否匹配;
若是,则确定所述待检测页面为恶意页面;
若否,则确定所述待检测页面为正常页面。
第二方面,本申请还提供了一种页面检测装置,该装置包括:
获取模块,用于获取待检测页面的脚本语言代码;
划分模块,用于将所述脚本语言代码划分为多个词法片段,并确定每一词法片段对应的片段类型;
组合模块,用于按照每一词法片段在所述脚本语言代码中的位置,组合多个词法片段对应的片段类型,得到目标Token流;
化简模块,用于对所述目标Token流中片段类型对应的词法片段进行表达式化简,得到脚本语言代码对应的简化代码;
检测模块,用于将所述简化代码输入预设安全引擎,检测所述待检测页面是否为恶意页面。
结合第二方面,在第一种可能的实施方式中,上述装置还包括:
接收模块,用于接收所述待检测页面的多个脚本语言代码片段,所述多个脚本语言代码片段组成所述待检测页面的脚本语言代码;
缓存模块,用于将所述多个脚本语言代码片段缓存到预设缓存空间中;
所述获取模块,具体用于从所述预设缓存空间中,读取所述多个脚本语言代码片段。
结合第二方面或第二方面的第一种可能的实施方式,在第二种可能的实施方式中,所述划分模块,具体用于:
将所述脚本语言代码中的每一运算符划分为一个词法片段;
将所述脚本语言代码中除运算符外的连续至少一个字符划分为一个词法片段。
结合第二方面的第二种可能的实施方式,在第三种可能的实施方式中,所述划分模块,具体用于:
对于每一词法片段,若该词法片段为运算符,则将该词法片段作为该词法片段的片段类型;
若该词法片段为连续至少一个字符,检测该词法片段是否与预设语法运算函数中的连续至少一个字符匹配;若匹配,则确定该词法片段的片段类型为标识类型;若否,则确定该词法片段的片段类型为字符类型。
结合第二方面的第三种可能的实施方式,在第四种可能的实施方式中,所述划分模块,具体用于:
将所述脚本语言代码中每一词法片段替换为该词法片段对应的片段类型,得到初始Token流;
若所述初始Token流中包括连续的多个目标片段类型,则将所述连续的多个目标片段类型替换为一个标识类型,得到目标Token流,其中,所述目标片段类型包括标识类型和预设运算符,所述连续的多个目标片段类型中首个片段类型和最后一个片段类型为标识类型,并且所述连续的多个目标片段类型中不包括字符类型;
若所述初始Token流中不包括连续的多个目标片段类型,则将所述初始Token流作为目标Token流上述分析模块,具体用于基于Token流以及预设语法规则,构建语法树;对语法树进行化简,得到简化后的代码。
结合第二方面,在第五种可能的实施方式中,所述预设安全引擎包括:恶意页面的代码片段;
所述检测模块,具体用于:
将所述简化代码输入预设安全引擎,检测所述简化代码与所述代码片段是否匹配;
若是,则确定所述待检测页面为恶意页面;
若否,则确定所述待检测页面为正常页面。
第三方面,本申请还提供了一种电子设备,包括处理器和机器可读存储介质,机器可读存储介质存储有能够被处理器执行的机器可执行指令,处理器被机器可执行指令促使:实现上述任一所述的页面检测方法步骤。
第四方面,本申请还提供了一种机器可读存储介质,存储有机器可执行指令,在被处理器调用和执行时,机器可执行指令促使处理器:实现上述任一所述的页面检测方法步骤。
本申请提供的页面检测方法及装置中,将获取的脚本语言代码划分成了多个词法片段后,由多个词法片段对应的片段类型,组合得到目标Token流。该目标Token流包括了每一词法片段对应的片段类型。其中,不同词法片段的片段类型决定了不同词法片段间的表达式关系。因此,基于目标Token流包括的片段类型,可对脚本语言代码中的词法片段进行表达式化简,消除脚本语言代码中的混淆或变形,得到脚本语言代码对应的简化代码。利用简化代码检测待检测页面是否为恶意页面,可以提高恶意代码的正确率,降低用户信息泄露的概率,提高网络的安全性。
当然,实施本申请的任一产品或方法必不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的页面检测方法的第一种流程示意图;
图2为本申请实施例提供的页面检测方法的第二种流程示意图;
图3为本申请实施例提供的页面检测方法的第三种流程示意图;
图4为本申请实施例提供的Token流的一种示意图;
图5为本申请实施例提供的语法树的一种示意图;
图6为本申请实施例提供的页面检测方法的第四种流程示意图;
图7为本申请实施例提供的页面检测装置的一种结构示意图;
图8为本申请实施例提供的电子设备的一种结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,页面检测主要通过定义字符规则的方式进行页面检测。具体的,将待检测页面的JS代码与定义的恶意代码片段进行匹配。若待检测页面的JS代码与定义的恶意代码片段匹配,即待检测页面的JS代码中包括与定义的恶意代码片段匹配的代码片段,则判定待检测页面是植入了恶意代码的页面,待检测页面是恶意页面。若待检测页面的JS代码与定义的恶意代码片段不匹配,即待检测页面的JS代码中未包括与定义的恶意代码片段匹配的代码片段,则判定待检测页面不是恶意页面,即正常页面。
但是,由于JS代码可以根据JS语言的特性进行一定的混淆或变形,而混淆或变形后的恶意代码很可能与定义的恶意代码片段不匹配,进而将植入恶意代码的页面判定为正常页面,造成用户信息的泄露,网络安全性差。
为了提高恶意代码的正确率,降低用户信息泄露的概率,提高网络的安全性,本申请实施例提供的一种页面检测方法。该方法可以应用于任一具有浏览器的电子设备。在本申请实施例提供的页面检测方法中,电子设备可以获取待检测页面的脚本语言代码,将脚本语言代码划分为多个词法片段,并确定每一词法片段对应的片段类型;按照每一词法片段在脚本语言代码中的位置,组合多个词法片段对应的片段类型,得到目标Token流;对目标Token流中片段类型对应的词法片段进行表达式化简,得到脚本语言代码对应的简化代码;将简化代码输入预设安全引擎,检测待检测页面是否为恶意页面。
通过本申请实施例提供的方法,将获取的脚本语言代码划分成了多个词法片段后,由多个词法片段对应的片段类型,组合得到目标Token流。该目标Token流包括了每一词法片段对应的片段类型。其中,不同词法片段的片段类型决定了不同词法片段间的表达式关系。因此,基于目标Token流包括的片段类型,可对脚本语言代码中的词法片段进行表达式化简,消除脚本语言代码中的混淆或变形,得到脚本语言代码对应的简化代码。利用简化代码检测待检测页面是否为恶意页面,可以提高恶意代码的正确率,降低用户信息泄露的概率,提高网络的安全性。
下面通过具体的实施例,对本申请实施例提供的页面检测方法进行说明。
如图1所示,图1为本申请实施例提供的页面检测方法的第一种流程示意图。为便于描述,下面以电子设备为执行主体进行说明,并不起限定作用。该方法包括以下步骤。
步骤S101,获取待检测页面的脚本语言代码。
在本步骤中,脚本语言代码可以为JS代码,也可以为HTML代码。在进行页面检测时,电子设备获取待检测页面的脚本语言代码。
一个示例中,待检测页面可以为用户需要访问的HTML页面。例如,某一用户在电子设备的浏览器中搜索某一关键词时,该浏览器将会显示出与该关键词对应的多个HTML页面的链接。用户通过点击浏览器中显示的一个链接,访问该链接对应的HTML页面。电子设备可以将用户点击访问的HTML页面,确定为待检测页面,并获取该HTML页面的脚本语言代码。
待检测页面可以为电子设备预先存储的HTML页面。本申请实施例对待检测页面不做具体限定。
一个可选的实施例中,电子设备在获取到待检测页面的脚本语言代码后,可以对待检测页面的代码进行预处理,例如,删除脚本语言代码中的注释、无用的换行等。这样可以有效提高页面检测的效率。
步骤S102,将脚本语言代码划分为多个词法片段,并确定每一词法片段对应的片段类型。
在本步骤中,电子设备可以在获取到待检测页面的脚本语言代码后,对待检测页面的脚本语言代码进行词法扫描分析,将脚本语言代码划分为多个词法片段,并确定每一词法片段对应的片段类型。
本申请实施例中,词法片段的划分规则以及词法片段对应的片段类型的划分规则可以根据实际需求进行设定。例如,词法片段的划分规则可以为:将连续的字母划分为一个词法片段,将连续的数字划分为一个词法片段,将运算符划分为一个词法片段,和/或将每一字符划分为一个词法片段等。词法片段对应的片段类型的划分规则可以为:将连续字母的词法片段对应的片段类型划分为字符串类型,将连续数字的词法片段对应的片段类型划分为数字类型,将运算符的词法片段对应的片段类型划分为该运算符的类型。
一个可选的实施例中,电子设备可以利用词法分析器,对待检测页面的脚本语言代码进行词法扫描分析,将脚本语言代码划分为多个词法片段。上述词法分析器包括但不限于lex(英文:LEXical compiler)词法分析器和flex词法分析器等。
步骤S103,按照每一词法片段在脚本语言代码中的位置,组合多个词法片段对应的片段类型,得到目标Token流。
本步骤中,电子设备将每一词法片段对应的片段类型作为一个Token,按照每一词法片段在脚本语言代码中的位置,组合多个词法片段对应的片段类型,得到目标Token流。
例如,脚本语言代码1为ABCD,A、B、C、D分别代表一个词法片段。其中,词法片段A对应的片段类型为a',词法片段B对应的片段类型为b',词法片段C对应的片段类型为c',词法片段D对应的片段类型为d'。电子设备按照每一词法片段在脚本语言代码1中的位置,组合词法片段A、B、C、D对应的片段类型,得到目标Token流为{a'b'c'd'}。
步骤S104,对目标Token流中片段类型对应的词法片段进行表达式化简,得到脚本语言代码对应的简化代码。
本步骤中,电子设备基于目标Token流中的片段类型,对目标Token流中片段类型对应的词法片段进行表达式化简,得到脚本语言代码对应的简化代码。
不同词法片段的片段类型决定了不同词法片段间的表达式关系。因此,基于目标Token流包括的片段类型,可对脚本语言代码中的词法片段进行表达式化简,消除脚本语言代码中的混淆或变形,得到脚本语言代码对应的简化代码。
一个可选的实施例中,电子设备可以利用语法分析器,对目标Token流中片段类型对应的词法片段进行语法分析,进而进行表达式化简,得到脚本语言代码对应的简化代码。
上述语法分析器包括但不限于yacc(英文:Yet AnotherCompile-Compiler)语法分析器和bison语法分析器等。
步骤S105,将简化代码输入预设安全引擎,检测待检测页面是否为恶意页面。
在本步骤中,电子设备可以将简化代码输入预设安全引擎,检测待检测页面是否为恶意页面。上述预设安全引擎包括但不限于病毒引擎,以及入侵防御***(英文:Intrusion Prevention System,简称:IPS)引擎。
本申请实施例中,电子设备对待检测页面的脚本语言代码进行了简化,可消除脚本语言代码的混淆或变形,得到简化代码。利用简化代码检测待检测页面是否为恶意页面,提高了恶意代码的正确率,降低用户信息泄露的概率,提高网络的安全性。
一个可选的实施例中,预设安全引擎可以包括恶意页面的代码片段。电子设备将简化代码输入预设安全引擎,检测简化代码与恶意页面的代码片段是否匹配;若是,则确定待检测页面为恶意页面;若否,则确定待检测页面为正常页面。
一个可选的实施例中,在确定待检测页面为恶意页面后,电子设备可以进行告警。以待检测页面为上述用户在浏览器中点击访问的HTML页面为例,一个示例中,电子设备可以对浏览器中显示的恶意页面的链接进行标记,如将恶意页面的链接标记为风险或者不建议访问。另一个示例中,当用户点击访问恶意页面时,电子设备可以向用户发送确认信息,如该页面存在风险,是否继续访问等。
另一个可选的实施例中,在确定待检测页面为恶意页面后,电子设备可以对恶意代码进行安全防护处理,如丢弃待检测页面的脚本语言代码中的恶意代码等。
再一个可选的实施例中,在确定待检测页面为正常页面后,电子设备可以对该正常页面不做处理。例如,电子设备允许用户正常访问该正常页面。
一个可选的实施例中,参考图2,步骤S101、步骤S1023、S103-S105可参考上述图1部分的描述,此处不再赘述。上述步骤S102具体可以包括以下步骤。
步骤S1021,将脚本语言代码中的每一运算符划分为一个词法片段。
步骤S1022,将脚本语言代码中除运算符外的连续至少一个字符划分为一个词法片段。
例如,待检测页面的脚本语言代码2为:
(("gUwIl"<"GjClm")?"MvOtt":"O")+String.fromCharCode(90,71,116,100)+unescape("wr")。
电子设备将脚本语言代码2中的每一运算符划分为一个词法片段,将脚本语言代码2中除运算符外的连续至少一个字符划分为一个词法片段。此时,电子设备得到脚本语言代码2的词法片段包括:“(”、“(”、“"gUwIl"”、“<”、“"GjClm"”、“)”、“?”、“"MvOtt"”、“:”、“"O"”、“)”、“+”、“String”、“.”、“fromCharCode”、“(”、“90”、“,”、“71”、“,”、“116”、“,”、“100”、“)”、“+”、“unescape”、“(”、“"wr"”、“)”。
本申请实施例中限定步骤S1021和S1022的执行顺序。在获取词法片段时,电子设备可以按照脚本语言代码的代码读取顺序,确定当前获取的词法片段为一运算符,还是除运算符外的连续至少一个字符。
步骤S1023,确定每一词法片段对应的片段类型。
一个可选的实施例中,参考图3,步骤S101、步骤S1024、S103-S105可参考上述图1部分的描述,此处不再赘述。上述步骤S102具体可以包括以下步骤。
步骤S1024,将脚本语言代码划分为多个词法片段。
步骤S1025,对于每一词法片段,若该词法片段为运算符,则将该词法片段作为该词法片段的片段类型。
步骤S1026,若该词法片段为连续至少一个字符,检测该词法片段是否与预设语法运算函数中的连续至少一个字符匹配;若匹配,则确定该词法片段的片段类型为标识类型;若否,则确定该词法片段的片段类型为字符类型。
其中,预设语法运算函数中的连续至少一个字符中不包括运算符。
本申请实施例中,为了便于后续进行表达式简化,字符类型还可以划分为字符串类型和数字类型。若字符类型对应的词法片段为数字,则该词法片段的片段类型可以细分为数字类型,否则,该词法片段的片段类型可以细分为字符串类型。
仍以上述步骤S1022部分的例子为例进行说明。电子设备得到脚本语言代码2的词法片段包括:“(”、“(”、“"gUwIl"”、“<”、“"GjClm"”、“)”、“?”、“"MvOtt"”、“:”、“"O"”、“)”、“+”、“String”、“.”、“fromCharCode”、“(”、“90”、“,”、“71”、“,”、“116”、“,”、“100”、“)”、“+”、“unescape”、“(”、“"wr"”、“)”。
对于运算符,例如“(”,电子设备可将运算符“(”的片段类型设置为“(”。对于连续至少一个字符,例如"gUwIl"和String。若预设语法运算函数为String.fromCharCode,则电子设备可确定词法片段"gUwIl"与预设语法运算函数中的连续至少一个字符不匹配,确定"gUwIl"的片段类型为字符串类型;确定词法片段String与预设语法运算函数中的连续至少一个字符匹配,确定String的片段类型为标识类型。以此类推,电子设备可得到脚本语言代码2中每一词法片段对应的片段类型,如表1所示。
表1
Figure BDA0002227109180000111
Figure BDA0002227109180000121
在上述表1中,type表示词法片段对应的片段类别。value指示词法片段对应的片段值。其中,片段值可以依据片段类别确定。例如,片段类别为运算符,则片段值为空,即null;片段类别为标识类型或字符串类型,则片段值为词法片段,词法片段对应的片段值便于构建Token流。Identity表示标识类型,string表示字符串类型。Number表示数字类型。
一个可选的实施例中,电子设备在确定每一词法片段对应的片段类型后,可以将脚本语言代码中每一词法片段替换为该词法片段对应的片段类型,得到初始Token流。若初始Token流中包括多个连续的多个目标片段类型,则将连续的多个目标片段类型替换为一个标识类型,得到目标Token流,其中,目标片段类型包括标识类型和预设运算符,连续的多个目标片段类型中首个片段类型和最后一个片段类型为标识类型,并且连续的多个目标片段类型中不包括字符类型;若初始Token流中不包括连续的多个目标片段类型,则将初始Token流作为目标Token流。
仍以上述脚本语言代码2和表1为例进行说明。电子设备将脚本语言代码2中每一词法片段替换为该词法片段对应的片段类型,得到初始Token流,如图4所示,图4中上方为脚本语言代码2,下方为初始Token流。预设运算符为“.”其中,String为标识类型,fromCharCode为标识类型。String和fromCharCode之间包括一个预设运算符“.”,因此,可将初始Token流中String.fromCharCode对应的Identity.Identity替换为Identity。此时,电子设备得到目标Token流为:
((string<string)?string:string)+Identity(number,number,number,number)+Identity(string)。
一个可选的实施例中,上述步骤S104,对目标Token流中片段类型对应的词法片段进行表达式化简,得到脚本语言代码对应的简化代码,具体可以包括以下步骤。
步骤S1041,基于目标Token流,按照预设语法规则,构建目标Token流对应的语法树。
在本步骤中,电子设备利用上述语法分析器,可以根据目标Token流,按照预设语法规则,构建目标Token流对应的语法树。该语法树中各个节点为目标Token流中每一片段类型对应的词法片段。
例如,目标Token流为x+y*(s-m),若预设语法规则即为数学运算规则,则基于目标Token流,按照预设语法规则,构建的语法树,如图5所示。
一个可选的实施例中,语法分析器进行语法分析的预设语法规则可以为待检测页面的脚本语言代码对应的全部语法规则。例如,若待检测页面的脚本语言代码为JS代码,则语法分析器进行语法分析的预设语法规则为JS代码对应的全部语法规则。电子设备基于全部的语法规则进行表达式化简,提高了简化代码的准确性,有效降低了恶意代码发生混淆或变形后逃逸页面检测的概率,提高了恶意代码的检出率,降低了用户信息泄露的概率,提高了网络的安全性。
另一个可选的实施例中,语法分析器进行语法分析的预设语法规则可以为待检测页面的代码对应部分语法规则。例如,上述全部语法规则中使用较为频繁的语法规则,也就是上述全部语法规则中除使用不频繁的语法规则以外的语法规则。再例如,用户根据实际需求从上述全部语法规则中选取的部分语法规则。电子设备基于部分语法规则进行表达式化简,预设语法规则的数量相对较少,但是却可以覆盖常用的语法,缩短了语法树构建所需的时间,并对较多发生混淆或变形的代码进行恢复,提高了恶意代码的检出率以及页面检测的效率。
步骤S1042,对上述语法树进行表达式化简,得到脚本语言代码对应的简化代码。
例如,预设语法规则如下所示:
规则一,初级表达式语法规则,具体可以表示为:primary_expr::=string|number|identity。其中,primary_expr是由字符串(即string)、数字(即number)或标识符(即identity)构成,primary_expr可以对应于语法树中的叶子节点。
规则二,后缀表达式的语法规则,具体可以表示为: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。
规则三,一元表达式的语法规则,具体可以表示为:unary_expr::=~unary_expr|^unary_expr|-unary_expr|post_expr。该语法规则表示为unary_expr可以表示为对unary_expr取反或取负得到的值,或者上述post_expr。其中,~和^为取反操作,-为取负操作。
规则三,乘除、取模或取余表达式的语法规则,具体可以表示为: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间的余数值。其中,*为乘操作,/为除操作,%为取余操作。
规则四,加法、减法表达式的语法规则,具体可以表示为:addi_expr::=addi_expr+prod_expr|addi_expr-prod_expr|prod_expr。该语法规则表示addi_expr可以表示为addi_expr与prod_expr的和,或者addi_expr和prod_expr的差。其中,+为加操作,-为减操作。
规则五,移位表达式的语法规则,具体可以表示为:shift_expr::=shift_expr<<addi_expr|shift_expr>>addi_expr。该语法规则表示shift_expr可以表示为shift_expr左移addi_expr位,或者shift_expr右移addi_expr位。其中,<<为左移位操作,>>为右移位操作。
规则六,关系表达式的语法规则,具体可以表示为:rel_expr::=rel_expr>shift_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。其中,>表示大于,<表示小于,>=表示大于等于,<=为小于等于。
规则七,等于表达式的语法规则,具体可以表示为:equal_expr::=equal_expr==rel_expr|equal_expr!=rel_expr。该语法规则表示equal_expr可以表示为equal_expr等于rel_expr,或者equal_expr不等于rel_expr。其中,==表示等于,!=表示不等于。
规则八,异或表达式的语法规则,具体可以表示为:exclu_expr::=exclu_expr^equal_expr|equal_expr。该语法规则表示为exclu_expr可以表示为exclu_expr异或equal_expr,或者equal_expr。其中,^为异或操作。
规则九,条件表达式的语法规则,具体可以表示为:condi_expr::=exclu_expr?expr:condi_expr|exclu_expr。该语法规则表示为condi_expr可以表示为exclu_expr为真(英文:True)输出expr,exclu_expr为假(英文:False),输出condi_expr或者exclu_expr。
规则十,赋值表达式的语法规则,具体可以表示为:assign_expr::=unary_expr=assign_expr|condi_expr。该语法规则为assign_expr可以由unary_expr赋值得到,assign_expr或者condi_expr赋值得到。其中,=为赋值操作。
规则十一,通用表达式的语法规则,具体可以表示为:expr::=assgin_expr|expr,assign_expr。该语法规则表示为expr可以表示为assgin_expr或者expr,assign_expr。
在本申请实施例中,上述预设语法规则仅仅为常用的JS语法规则,并不是全部的语法规则。另外,上述预设语法规则中的表达式,如上述post_exp、unary_expr、prod_expr、addi_expr、rel_expr、shift_expr等,根据具体语法规则的不同,具有不同实际意义,在此不作具体限定。
电子设备表达式简化的过程可以依据上述初级表达式的语法规则得到。即初级表达式可以为:primary_expr::=string|num|identity。
其中,::=表示推导和构建的含义,primary_expr可以为Token流中片段类别为string、num或者identity组成。如"gUwIl"所对应的片段类别是string,在构建语法树的时候,字符串gUwI将会被转换语法树的叶子节点。
或者,电子设备表达式简化的过程也可以通过其他表达式中的终止符得到。例如,assign_expr::=unary_expr=assign_expr定义了等于符号在语法分析中的结构。
电子设备在根据预设语法规则构建对应的语法树时,可以对语法树中的常量进行化简。
为便于理解,结合上述脚本语言代码2,对本申请实施例提供的语法树进行表达式化简的过程进行说明。如表2所示。
表2
Figure BDA0002227109180000161
在表2所示的表达式化简过程中,电子设备在根据目标Token流构建相应语法树的节点时,可以对语法树中的常量进行化简。例如,上述JS代码中的"gUwIl"<"GjClm"这一部分,在构建语法树时,根据上述预设语法规则中的rel_expr::=rel_expr<shift_expr可以构建成一条件表达式的子树。由于右侧的rel_expr("gUwIl")和shift_expr("GjClm")在获取的代码中为字符串常量,也就是存在具体的数值。因此,"gUwIl"<"GjClm"这一部分所对应的比较结果是确定的,也就是"gUwIl"<"GjClm"的比较结果可以为真,即gUwIl所对应的字符串常量小于GjClm所对应的字符串常量;或者"gUwIl"<"GjClm"的比较结果可以为假,即gUwIl所对应的字符串常量不小于GjClm所对应的字符串常量。
在表2所示的第一次化简过程中,根据gUwIl所对应的字符串常量,GjClm所对应的字符串常量,以及预设语法规则,进行第一次化简的所对应的简化结果为("gUwIl"<"GjClm")->0,也就是"gUwIl"<"GjClm"的判断结果为假。
针对第一次化简后的字符串,即(0?"MvOtt":"O")+String.fromCharCode(90,71,116,100)+unescape("wr"),根据预设语法规则,也就是"gUwIl"<"GjClm"的判断结果为真,输出"MvOtt";"gUwIl"<"GjClm"的判断结果为假,输出"O"。电子设备可以确定第二次化简的简化结果为(0?"MvOtt":"O")->"O"。
针对第二次化简后的字符串,即("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"。
针对第三次化简后的字符串,即("O")+"ZGtd"+unescape("wr"),根据预设语法规则,电子设备进行第四次化简的简化结果为unescape("wr")->"wr"。
针对第四次化简后的字符串,即("O")+"ZGtd"+"wr",根据预设语法规则,电子设备进行第五次化简的简化结果为("O")+"ZGtd"+"wr"->"OZGtdwr"。
电子设备通过五次化简过程,将上述获取到的JS代码中的字符串(("gUwIl"<"GjClm")?"MvOtt":"O")+String.fromCharCode(90,71,116,100)+unesca pe("wr"),简化为字符串"OZGtdwr"。也就是字符串"OZGtdwr"为获取到的脚本语言代码2进行混淆或变形前的字符串。
在表2所示的化简过程中,电子设备可以基于上述预设语法规则,采用递归下降分析法或移位归一分析法,对获取到的JS代码中的字符串进行遍历化简的。上述五次化简过程为电子设备对所构建的语法树的遍历过程。
综上所述,采用本申请实施例提供的方法,将获取的脚本语言代码划分成了多个词法片段后,由多个词法片段对应的片段类型,组合得到目标Token流。该目标Token流包括了每一词法片段对应的片段类型。其中,不同词法片段的片段类型决定了不同词法片段间的表达式关系。因此,基于目标Token流包括的片段类型,可对脚本语言代码中的词法片段进行表达式化简,消除脚本语言代码中的混淆或变形,得到脚本语言代码对应的简化代码。利用简化代码检测待检测页面是否为恶意页面,可以提高恶意代码的正确率,降低用户信息泄露的概率,提高网络的安全性。
一个可选的实施例中,根据上述图1所示的页面检测方法,本申请实施例还提供了一种页面检测方法。如图6所示,图6为本申请实施例提供的页面检测方法的第四种流程示意图。该方法包括以下步骤。
步骤S601,接收待检测页面的多个脚本语言代码片段,多个脚本语言代码片段组成待检测页面的脚本语言代码。
在本步骤中,待检测页面的脚本语言代码被划分为多个片段,分别发送给电子设备,电子设备接收待检测页面的多个脚本语言代码片段,得到待检测页面的脚本语言代码。
可以理解的,由于超文本传输协议(英文:HyperText Transfer Protocol,简称:HTTP)应答包较大,使得在传输控制协议(英文:Transmission Control Protocol,简称:TCP)传输过程中,HTTP应答包将被分包,每一分包中包括待检测页面的脚本语言代码片段。电子设备可以获取待检测页面所对应的所有分包,得到待检测页面的多个脚本语言代码片段,进而得到待检测页面的脚本语言代码。
步骤S602,将多个脚本语言代码片段缓存到预设缓存空间中。
在本步骤中,电子设备可以接收的每一脚本语言代码片段分别缓存到预设缓存空间中。便于后续对待检测页面的脚本语言代码分析。
一个示例,脚本语言代码片段携带在HTTP应答包的分包中,为了便于后续对待检测页面的脚本语言代码分析,电子设备可以根据分包的序号,将脚本语言代码片段顺序的缓存到预设缓存空间中。
步骤S603,从预设缓存空间中,读取多个脚本语言代码片段。
在本步骤中,电子设备可以从预设缓存空间中,读取多个脚本语言代码片段,这多个脚本语言代码片段即为待检测页面的脚本语言代码。
步骤S604,将脚本语言代码划分为多个词法片段,并确定每一词法片段对应的片段类型。
步骤S605,按照每一词法片段在脚本语言代码中的位置,组合多个词法片段对应的片段类型,得到目标令牌Token流。
步骤S606,对目标Token流中片段类型对应的词法片段进行表达式化简,得到脚本语言代码对应的简化代码。
步骤S607,将简化代码输入预设安全引擎,检测待检测页面是否为恶意页面。
上述步骤S604-步骤S607与上述步骤S102-步骤S105相同。
在图6所示的页面检测方法中,电子设备通过将待检测页面的脚本语言代码片段缓存到预设缓存空间中,这使得电子设备在获取待检测页面的代码进行页面检测时,可以直接从预设缓存空间中读取多个脚本语言代码片段,使得脚本语言代码获取更加方便,并且获取到的完整脚本语言代码,方便后期对获取到的脚本语言代码进行表达式化简。
基于同一种发明构思,根据上述本申请实施例提供的页面检测方法,本申请实施例还提供了一种页面检测装置。如图7所示,图7为本申请实施例提供的页面检测装置的一种结构示意图。该装置包括以下模块。
获取模块701,用于获取待检测页面的脚本语言代码;
划分模块702,用于将脚本语言代码划分为多个词法片段,并确定每一词法片段对应的片段类型;
组合模块703,用于按照每一词法片段在脚本语言代码中的位置,组合多个词法片段对应的片段类型,得到目标Token流;
化简模块704,用于对目标Token流中片段类型对应的词法片段进行表达式化简,得到脚本语言代码对应的简化代码;
检测模块705,用于将简化代码输入预设安全引擎,检测待检测页面是否为恶意页面。
一个可选的实施例中,上述页面检测装置还可以包括:
接收模块,用于接收待检测页面的多个脚本语言代码片段,多个脚本语言代码片段组成待检测页面的脚本语言代码;
缓存模块,用于将多个脚本语言代码片段缓存到预设缓存空间中;
获取模块701,具体用于从预设缓存空间中,读取多个脚本语言代码片段。
一个可选的实施例中,划分模块,具体用于:
将脚本语言代码中的每一运算符划分为一个词法片段;
将脚本语言代码中除运算符外的连续至少一个字符划分为一个词法片段。
一个可选的实施例中,划分模块702,具体可以用于:
对于每一词法片段,若该词法片段为运算符,则将该词法片段作为该词法片段的片段类型;
若该词法片段为连续至少一个字符,检测该词法片段是否与预设语法运算函数中的连续至少一个字符匹配;若匹配,则确定该词法片段的片段类型为标识类型;若否,则确定该词法片段的片段类型为字符类型。
一个可选的实施例中,划分模块702,具体可以用于:
将脚本语言代码中每一词法片段替换为该词法片段对应的片段类型,得到初始Token流;
若初始Token流中包括连续的多个目标片段类型,则将连续的多个目标片段类型替换为一个标识类型,得到目标Token流,其中,目标片段类型包括标识类型和预设运算符,连续的多个目标片段类型中首个片段类型和最后一个片段类型为标识类型,并且连续的多个目标片段类型中不包括字符类型;
若初始Token流中不包括连续的多个目标片段类型,则将初始Token流作为目标Token流。
一个可选的实施例中,预设安全引擎可以包括恶意页面的代码片段;
检测模块705,具体用于将简化代码输入预设安全引擎,检测简化代码与代码片段是否匹配;若是,则确定待检测页面为恶意页面;若否,则确定待检测页面为正常页面。
通过本申请实施例提供的装置,将获取的脚本语言代码划分成了多个词法片段后,由多个词法片段对应的片段类型,组合得到目标Token流。该目标Token流包括了每一词法片段对应的片段类型。其中,不同词法片段的片段类型决定了不同词法片段间的表达式关系。因此,基于目标Token流包括的片段类型,可对脚本语言代码中的词法片段进行表达式化简,消除脚本语言代码中的混淆或变形,得到脚本语言代码对应的简化代码。利用简化代码检测待检测页面是否为恶意页面,可以提高恶意代码的正确率,降低用户信息泄露的概率,提高网络的安全性。
基于同一种发明构思,根据上述本申请实施例提供的页面检测方法,本申请实施例还提供了一种电子设备,如图8所示,包括处理器801和机器可读存储介质802,机器可读存储介质802存储有能够被处理器801执行的机器可执行指令。
另外,如图8所示,电子设备还可以包括:通信接口803和通信总线804;其中,处理器801、机器可读存储介质802、通信接口803通过通信总线804完成相互间的通信,通信接口803用于上述电子设备与其他设备之间的通信。
处理器801被机器可执行指令促使实现如下步骤:
获取待检测页面的脚本语言代码;
将脚本语言代码划分为多个词法片段,并确定每一词法片段对应的片段类型;
按照每一词法片段在脚本语言代码中的位置,组合多个词法片段对应的片段类型,得到目标Token流;
对目标Token流中片段类型对应的词法片段进行表达式化简,得到脚本语言代码对应的简化代码;
将简化代码输入预设安全引擎,检测待检测页面是否为恶意页面。
上述通信总线804可以是外设部件互连标准(英文:Peripheral ComponentInterconnect,简称:PCI)总线或扩展工业标准结构(英文:Extended Industry StandardArchitecture,简称:EISA)总线等。该通信总线804可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
机器可读存储介质802可以包括随机存取存储器(英文:Random Access Memory,简称:RAM),也可以包括NVM(Non-Volatile Memory,非易失性存储器),例如至少一个磁盘存储器。另外,机器可读存储介质802还可以是至少一个位于远离前述处理器的存储装置。
上述处理器801可以是通用处理器,包括中央处理器(英文:Central ProcessingUnit,简称:CPU)、网络处理器(英文:Network Processor,简称:NP)等;还可以是数字信号处理器(英文:Digital Signal Processing,简称:DSP)、专用集成电路(英文:ApplicationSpecific Integrated Circuit,简称:ASIC)、现场可编程门阵列(英文:Field-Programmable Gate Array,简称:FPGA)或其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
通过本申请实施例提供的电子设备,将获取的脚本语言代码划分成了多个词法片段后,由多个词法片段对应的片段类型,组合得到目标Token流。该目标Token流包括了每一词法片段对应的片段类型。其中,不同词法片段的片段类型决定了不同词法片段间的表达式关系。因此,基于目标Token流包括的片段类型,可对脚本语言代码中的词法片段进行表达式化简,消除脚本语言代码中的混淆或变形,得到脚本语言代码对应的简化代码。利用简化代码检测待检测页面是否为恶意页面,可以提高恶意代码的正确率,降低用户信息泄露的概率,提高网络的安全性。
基于同一种发明构思,根据上述本申请实施例提供的页面检测方法,本申请实施例还提供了一种机器可读存储介质,存储有机器可执行指令,在被处理器调用和执行时,所述机器可执行指令促使所述处理器:实现上述任一所述的页面检测方法步骤。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备及机器可读存储介质等实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。

Claims (10)

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

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910955399.1A CN110795731B (zh) 2019-10-09 2019-10-09 一种页面检测方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910955399.1A CN110795731B (zh) 2019-10-09 2019-10-09 一种页面检测方法及装置

Publications (2)

Publication Number Publication Date
CN110795731A CN110795731A (zh) 2020-02-14
CN110795731B true CN110795731B (zh) 2022-02-25

Family

ID=69440070

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910955399.1A Active CN110795731B (zh) 2019-10-09 2019-10-09 一种页面检测方法及装置

Country Status (1)

Country Link
CN (1) CN110795731B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113609246B (zh) * 2021-08-04 2024-04-12 奇安盘古(上海)信息技术有限公司 一种网页相似性检测方法及***
CN113849248B (zh) * 2021-09-28 2023-09-26 北京京东振世信息技术有限公司 小程序加载方法、设备、存储介质及程序产品

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106874137A (zh) * 2017-03-16 2017-06-20 深圳市茁壮网络股份有限公司 一种js引擎容错方法和装置
CN107341399A (zh) * 2016-04-29 2017-11-10 阿里巴巴集团控股有限公司 评估代码文件安全性的方法及装置
CN108062474A (zh) * 2016-11-08 2018-05-22 阿里巴巴集团控股有限公司 文件的检测方法及装置
CN109831429A (zh) * 2019-01-30 2019-05-31 新华三信息安全技术有限公司 一种Webshell检测方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8549099B2 (en) * 2007-07-12 2013-10-01 Viasat, Inc. Methods and systems for javascript parsing
CN106909766B (zh) * 2015-12-18 2019-06-07 ***通信集团公司 一种信息处理方法及电子设备
CN110018820B (zh) * 2019-04-08 2022-08-23 浙江大学滨海产业技术研究院 一种基于深度强化学习的Graph2Seq自动生成Java代码注释的方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107341399A (zh) * 2016-04-29 2017-11-10 阿里巴巴集团控股有限公司 评估代码文件安全性的方法及装置
CN108062474A (zh) * 2016-11-08 2018-05-22 阿里巴巴集团控股有限公司 文件的检测方法及装置
CN106874137A (zh) * 2017-03-16 2017-06-20 深圳市茁壮网络股份有限公司 一种js引擎容错方法和装置
CN109831429A (zh) * 2019-01-30 2019-05-31 新华三信息安全技术有限公司 一种Webshell检测方法及装置

Also Published As

Publication number Publication date
CN110795731A (zh) 2020-02-14

Similar Documents

Publication Publication Date Title
US9405910B2 (en) Automatic library detection
US11586881B2 (en) Machine learning-based generation of similar domain names
US10440042B1 (en) Domain feature classification and autonomous system vulnerability scanning
JP6503141B2 (ja) アクセス分類装置、アクセス分類方法及びアクセス分類プログラム
CN112989348B (zh) 攻击检测方法、模型训练方法、装置、服务器及存储介质
CN107341399B (zh) 评估代码文件安全性的方法及装置
CN110795731B (zh) 一种页面检测方法及装置
CN112800427B (zh) webshell检测方法、装置、电子设备和存储介质
CN111224941B (zh) 一种威胁类型识别方法及装置
CN105338001A (zh) 识别钓鱼网站的方法及装置
CN108664791B (zh) 一种超文本预处理器代码中的网页后门检测方法及装置
CN111049819A (zh) 一种基于威胁建模的威胁情报发现方法及计算机设备
CN109040097A (zh) 一种跨站脚本攻击的防御方法、装置、设备和存储介质
CN111090860A (zh) 一种基于深度学习的代码漏洞检测方法及装置
CN104318162A (zh) 源代码泄露检测方法及装置
Zhang et al. Detecting malicious activities with user‐agent‐based profiles
CN111212033A (zh) 基于组合式网络爬虫防御技术的页面显示方法、装置和电子设备
CN111241496B (zh) 确定小程序特征向量的方法、装置和电子设备
CN115580494A (zh) 一种弱口令的检测方法、装置和设备
US20230353595A1 (en) Content-based deep learning for inline phishing detection
CN112989337A (zh) 一种恶意脚本代码检测方法及装置
CN104978423A (zh) 网站类型的检测方法及装置
CN115412312A (zh) 一种恶意域名确定方法、装置、设备及介质
JP7140268B2 (ja) 警告装置、制御方法、及びプログラム
Xiong et al. MIRD: trigram-based M alicious URL detection I mplanted with R andom D omain name recognition

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant