CN114168950A - 一种跨站脚本攻击漏洞的修复方法、装置、设备及产品 - Google Patents
一种跨站脚本攻击漏洞的修复方法、装置、设备及产品 Download PDFInfo
- Publication number
- CN114168950A CN114168950A CN202210127359.XA CN202210127359A CN114168950A CN 114168950 A CN114168950 A CN 114168950A CN 202210127359 A CN202210127359 A CN 202210127359A CN 114168950 A CN114168950 A CN 114168950A
- Authority
- CN
- China
- Prior art keywords
- context
- data
- markup language
- hypertext markup
- repairing
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/552—Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Document Processing Apparatus (AREA)
Abstract
本发明提供一种跨站脚本攻击漏洞的修复方法、装置、设备及产品,涉及网络安全技术领域,该方法包括以下步骤:将待修复的网页中的内容拆分并转换成超文本标记语言元素;其中,所述待修复的网页中包含漏洞渲染结果;针对每一个被转换得到的所述超文本标记语言元素,确定其中是否包含不可信来源的数据,以及确定所述不可信来源的数据所处的上下文;基于所述上下文,生成相应的提示信息;其中,所述提示信息包含基于所述上下文,对所述不可信来源的数据进行相应的编码。本发明可以有针对性的,真正修复该跨站脚本攻击漏洞,覆盖不同的上下文情况,保证修复XSS漏洞的代码是有效的,并且在修复过程中,不会删除或变异用户输入的数据。
Description
技术领域
本发明涉及网络安全技术领域,尤其涉及一种跨站脚本攻击漏洞的修复方法、装置、设备及产品。
背景技术
跨站脚本攻击(Cross Site Scripting,XSS)漏洞逐渐成为对全球广域网(WorldWide Web,Web)应用威胁最大且最常见的漏洞种类。XSS漏洞的原理是,应用程序将不可信来源(通常是来自客户端输入)的数据,未经任何检查和预处理就直接输出到超文本标记语言页面(Hyper Text Markup Language,HTML)中,继而直接在客户端浏览器中渲染,造成攻击者可以在受害者浏览器进程中执行任意的JavaScript脚本代码,窃取受害者隐私信息等问题。
当前一般可以通过Web漏洞扫描器或者安全厂商提供的人工安全测试的方式发现XSS漏洞,并给出对应的修复方案。然而,由于XSS漏洞视其所处的上下文的不同,至少应该对应多种修复方案,目前针对XSS漏洞的修复方式一方面只能应对最常见种类的上下文,另一方面也会对用户体验造成不必要的负面影响。
发明内容
本发明提供一种跨站脚本攻击漏洞的修复方法、装置、设备及产品,用以解决现有技术中XSS漏洞的修复方案无法应对不同上下文情况的缺陷,实现覆盖不同的上下文情况,保证修复XSS漏洞的代码是有效的。
本发明提供一种跨站脚本攻击漏洞的修复方法,包括以下步骤:
将待修复的网页中的内容拆分并转换成超文本标记语言元素;其中,所述待修复的网页中包含漏洞渲染结果;
针对每一个被转换得到的所述超文本标记语言元素,确定其中是否包含不可信来源的数据,以及确定所述不可信来源的数据所处的上下文;
基于所述上下文,生成相应的提示信息;其中,所述提示信息包含基于所述上下文,对所述不可信来源的数据进行相应的编码。
根据本发明提供的跨站脚本攻击漏洞的修复方法,所述将待修复的网页中的内容拆分并转换成超文本标记语言元素步骤,具体包括:
通过lxml工具库,将所述待修复的网页中的内容拆分并转换成由所述超文本标记语言元素组成的所述超文本标记语言元素对象列表;其中,所述超文本标记语言元素对象列表包含至少一个所述超文本标记语言元素。
根据本发明提供的跨站脚本攻击漏洞的修复方法,所述基于所述上下文的类型,生成相应的提示信息步骤中,所述上下文具体包括:
禁止出现、非script和非style标签的正文内容、超文本标记语言标签的属性值、超文本标记语言标签的需要网页地址值的位置、超文本标记语言标签的需要网页地址值的位置中的查询字符串值、JavaScript代码的字符串值以及层叠样式表的属性值;
其中,当所述不可信来源的数据位于script标签内容中时,并且所述不可信来源的数据前侧和后侧最近的非空白字符为英文半角单引号或者英文半角双引号以及前后两侧最近的两个非空白字符相同时,则所述上下文为JavaScript代码的字符串值;
当所述不可信来源的数据位于style标签内容中时,并且所述不可信来源的数据前侧最近的非空白字符是英文半角冒号时,则所述上下文为层叠样式表的属性值。
根据本发明提供的跨站脚本攻击漏洞的修复方法,所述针对每一个被转换得到的所述超文本标记语言元素,确定其中是否包含不可信来源的数据,以及确定所述不可信来源的数据所处的上下文,具体包括以下步骤:
判断所述超文本标记语言元素中是否包含触发了漏洞执行的有效载荷字符串;
若包含,确定所述有效载荷字符串所处的位置以及前后两侧最近的非空白字符的值;
基于所述位置以及前后两侧最近的非空白字符的值,确定所述不可信来源的数据所处的上下文。
根据本发明提供的跨站脚本攻击漏洞的修复方法,所述基于所述上下文,生成相应的提示信息,具体包括:
若所述上下文为禁止出现,则生成用于提示不应将所述不可信来源的数据输出至所述上下文处的所述提示信息;
若所述上下文为非script和非style标签的正文内容,则生成用于指示对所述不可信来源的数据进行超文本标记语言实体编码的提示信息;
若所述上下文为超文本标记语言标签的属性值,则生成用于指示对所述不可信来源的数据进行超文本标记语言属性编码的所述提示信息;其中,所述超文本标记语言属性编码为在所述超文本标记语言实体编码的基础上,对所有的非字母和数字字符进行实体编码;
若所述上下文为超文本标记语言标签的需要网页地址值的位置,则生成用于指示检查网页地址值的协议部分的所述提示信息;
若所述上下文为超文本标记语言标签的需要网页地址值的位置中的查询字符串值,则生成用于指示对所述不可信来源的数据进行网页地址引用编码的所述提示信息;
若所述上下文为JavaScript代码的字符串值,则生成用于指示对所述不可信来源的数据进行JavaScript十六进制编码的所述提示信息;
若所述上下文为层叠样式表的属性值,则生成用于指示对所述不可信来源的数据进行层叠样式表十六进制编码的所述提示信息。
根据本发明提供的跨站脚本攻击漏洞的修复方法,所述基于所述上下文,生成相应的提示信息步骤中,具体包括:
基于需要对所述不可信来源的数据进行编码的所述上下文,对所述不可信来源的数据进相应的编码,并生成携带有所述编码的所述提示信息。
本发明还提供一种跨站脚本攻击漏洞的修复装置,包括:
转换模块,用于将待修复的网页中的内容拆分并转换成超文本标记语言元素;其中,所述待修复的网页中包含漏洞渲染结果;
搜寻模块,用于针对每一个被转换得到的所述超文本标记语言元素,确定其中是否包含不可信来源的数据,以及确定所述不可信来源的数据所处的上下文;
修复模块,用于基于所述上下文,生成相应的提示信息;其中,所述提示信息包含基于所述上下文,对所述不可信来源的数据进行相应的编码。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述跨站脚本攻击漏洞的修复方法的步骤。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述跨站脚本攻击漏洞的修复方法的步骤。
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述跨站脚本攻击漏洞的修复方法的步骤。
本发明提供的跨站脚本攻击漏洞的修复方法、装置、设备及产品,通过将待修复的网页中的内容拆分并转换成HTML元素,再针对被转换得到的每一个HTML元素,执行不可信来源的数据的搜寻和检查所处上下文的操作,再根据不可信来源的数据所处上下文的不同,生成最合适的提示信息,提升信息能够指示对应的输出编码方案,以有针对性的,真正修复该跨站脚本攻击漏洞,覆盖不同的上下文情况,保证修复XSS漏洞的代码是有效的,并且在修复过程中,不会删除或变异用户输入的数据,因此不会影响到用户体验,造成不必要的负面影响。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的跨站脚本攻击漏洞的修复方法的流程示意图;
图2是本发明提供的跨站脚本攻击漏洞的修复方法中步骤S200具体的流程示意图;
图3是本发明提供的跨站脚本攻击漏洞的修复装置的结构示意图;
图4是本发明提供的跨站脚本攻击漏洞的修复装置中搜寻模块具体的结构示意图;
图5是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
XSS漏洞是一种网站应用程序的安全漏洞攻击,是代码注入的一种。XSS漏洞允许恶意用户将代码注入到网页上,其他用户在观看网页时就会受到影响。这类攻击通常包含了HTML以及用户端脚本语言。XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript代码,攻击成功后,攻击者可能得到更高的权限(如执行一些操作)、私密网页内容、会话和缓存(cookie)等各种内容。
针对一个特定的XSS漏洞,目前的Web漏洞扫描器和安全厂商渗透测试服务,给出的修复方案一般可以分为以下两种。
1)在将来自不可信源的输入数据输出至HTML页面之前,先经过HTML实体编码,即编码HTML语法中的5个HTML元字符(&, <, >, ", ');
具体的,HTML实体编码按照以下规则进行5个HTML元字符的转换:
将&转换为&;将<转换为<;将>转换为>;将"转换为";将'转换为'。
2)对于来自不可信源的输入数据,在将其输出至HTML页面之前,过滤掉其中的HTML元字符、JavaScript内置函数名等特定字符串,过滤的方法可以是黑名单、直接删除,或者将英文半角字符转为全角字符等。
上述的通过HTML实体编码进行修复的第一种方式,仅针对XSS漏洞所处上下文为HTML标签内容处这一种情况,因此,对XSS于漏洞所处位置为其他上下文的情况是没有用处的。当开发人员发现该方案不能有效修复漏洞代码时,需要再付出很多时间和精力寻求更加合适的解决方案。
上述的以黑名单等形式转换过滤掉用户输入数据进行修复的第二种方式,一方面也是不能够有效覆盖所有不同情况,另一方面无差别的删除或修改用户输入的数据,会对用户体验造成负面影响,并且该影响在很多情况下是没有必要的。
下面结合图1描述本发明的跨站脚本攻击漏洞的修复方法,该方法包括以下步骤:
S100、将待修复的网页中的内容拆分并转换成HTML元素。在该方法中,待修复的网页中包含漏洞渲染结果。
在本实施例中,通过lxml工具库,将待修复的网页中的内容拆分并转换成由HTML元素组成的HTML元素对象列表,可以理解的是,HTML元素对象列表包含至少一个HTML元素。lxml工具库是Python语言中,用于处理HTML文档的工具库。
S200、针对每一个被转换得到的HTML元素,确定HTML元素是否包含不可信来源的数据,以及当HTML元素包含不可信来源的数据时确定不可信来源的数据所处的上下文(Context)。
在本实施例中,上下文具体包括:
禁止出现、非script和非style标签的正文内容、HTML标签的属性值、HTML标签的href、src、srcset等需要URL值的位置、HTML标签的href、src、srcset等需要URL值的位置中的查询字符串值、JavaScript代码的字符串值(数据值)以及层叠样式表(Cascading StyleSheets,CSS)的属性值。
可选的,禁止出现的上下文包括以下五种:HTML标签名、HTML标签属性名、object标签的data属性的值、script标签内容中非字符串值部分、style标签中非属性值部分。
其中,当不可信来源的数据位于script标签内容中时,并且不可信来源的数据前侧(左侧)和后侧(右侧)最近的非空白字符为英文半角单引号或者英文半角双引号以及前后两侧最近的两个非空白字符相同时,则上下文为JavaScript代码的字符串值;
当不可信来源的数据位于style标签内容中时,并且不可信来源的数据前侧最近的非空白字符是英文半角冒号时,则上下文为CSS的属性值。
可选的,通过迭代HTML元素对象列表,针对HTML元素对象列表其中的每一个HTML元素,检查其中是否包含了目标不可信来源的数据,并确定不可信来源的数据所处的上下文,如果不包含,说明XSS漏洞不存在于不包含的HTML元素处,相对应的HTML元素也无需修复。
S300、基于上下文,生成相应的提示信息。在该方法中,提示信息包含基于上下文,对不可信来源的数据进行相应的编码。
本发明的跨站脚本攻击漏洞的修复方法,通过将待修复的网页中的内容拆分并转换成HTML元素,再针对被转换得到的每一个HTML元素,执行不可信来源的数据的搜寻和检查所处上下文的操作,再根据不可信来源的数据所处上下文的不同,生成最合适的提示信息,提升信息能够指示对应的输出编码方案,以有针对性的,真正修复该跨站脚本攻击漏洞,覆盖不同的上下文情况,保证修复XSS漏洞的代码是有效的,并且在修复过程中,不会删除或变异用户输入的数据,因此不会影响到用户体验,造成不必要的负面影响。
下面结合图2描述本发明的跨站脚本攻击漏洞的修复方法,步骤S200具体包括以下步骤:
S210、判断HTML元素中是否包含触发了漏洞执行的Payload(有效载荷)字符串。Payload字符串即指攻击者发送的能够触发漏洞执行的字符串。
S220、若包含,确定Payload字符串所处的位置以及前后两侧最近的非空白字符的值,基于Payload字符串前后两侧最近的非空白字符的值,能够确定Payload字符串所处的上下文是否为JavaScript代码的字符串值或者CSS的属性值。
S230、基于位置以及前后两侧最近的非空白字符的值,确定不可信来源的数据所处的上下文。
因此,步骤S300具体包括:
若上下文为禁止出现,则生成用于提示不应将不可信来源的数据输出至该上下文处的提示信息;
若上下文为非script和非style标签的正文内容,则生成用于指示对不可信来源的数据进行HTML实体编码的提示信息;
若上下文为HTML标签的属性值,则生成用于指示对不可信来源的数据进行HTML属性编码的提示信息,HTML属性编码为在HTML实体编码的基础上,对其他所有的非字母和数字字符也进行实体编码;
若上下文为HTML标签的需要URL值的位置,则生成用于指示检查URL值的协议(scheme)部分,的提示信息,以确保不是javascript伪协议;
若上下文为HTML标签的需要URL值的位置中的查询字符串值,则生成用于指示对不可信来源的数据进行URL引用编码的提示信息;
若上下文为JavaScript代码的字符串值,则生成用于指示对不可信来源的数据进行JavaScript十六进制编码的提示信息;
若上下文为CSS的属性值,则生成用于指示对不可信来源的数据进行CSS十六进制编码的提示信息。
上述的提示信息即为在将不可信来源的数据输出至HTML网页之前,先进行对应的编码或者进行相应的检查后,再输出至HTML网页,若上下文为禁止出现的上下文,那么就不会再输出至禁止出现的上下文处。
因此,步骤S300具体还包括:基于需要对不可信来源的数据进行编码的上下文,对不可信来源的数据进相应的编码,并生成携带有编码的提示信息。通过本发明对Payload字符串也就是不可信来源的数据进行编码之后随提示信息一起输出,方便程序开发人员去理解。
下面对本发明提供的跨站脚本攻击漏洞的修复装置进行描述,下文描述的跨站脚本攻击漏洞的修复装置与上文描述的跨站脚本攻击漏洞的修复方法可相互对应参照。
下面结合图3描述本发明的跨站脚本攻击漏洞的修复装置,该装置包括:
转换模块100,用于将待修复的网页中的内容拆分并转换成HTML元素。在该装置中,待修复的网页中包含漏洞渲染结果。
在本实施例中,通过lxml工具库,将待修复的网页中的内容拆分并转换成由HTML元素组成的HTML元素对象列表,可以理解的是,HTML元素对象列表包含至少一个HTML元素。lxml工具库是Python语言中,用于处理HTML文档的工具库。
搜寻模块200,用于针对每一个被转换得到的HTML元素,确定HTML元素是否包含不可信来源的数据,以及当HTML元素包含不可信来源的数据时确定不可信来源的数据所处的上下文(Context)。
在本实施例中,上下文具体包括:
禁止出现、非script和非style标签的正文内容、HTML标签的属性值、HTML标签的href、src、srcset等需要URL值的位置、HTML标签的href、src、srcset等需要URL值的位置中的查询字符串值、JavaScript代码的字符串值(数据值)以及层CSS的属性值。
可选的,禁止出现的上下文包括以下五种:HTML标签名、HTML标签属性名、object标签的data属性的值、script标签内容中非字符串值部分、style标签中非属性值部分。
其中,当不可信来源的数据位于script标签内容中时,并且不可信来源的数据前侧(左侧)和后侧(右侧)最近的非空白字符为英文半角单引号或者英文半角双引号以及前后两侧最近的两个非空白字符相同时,则上下文为JavaScript代码的字符串值;
当不可信来源的数据位于style标签内容中时,并且不可信来源的数据前侧最近的非空白字符是英文半角冒号时,则上下文为CSS的属性值。
可选的,通过迭代HTML元素对象列表,针对HTML元素对象列表其中的每一个HTML元素,检查其中是否包含了目标不可信来源的数据,并确定不可信来源的数据所处的上下文,如果不包含,说明XSS漏洞不存在于不包含的HTML元素处,相对应的HTML元素也无需修复。
修复模块300,用于基于上下文,生成相应的提示信息。在该装置中,提示信息包含基于上下文,对不可信来源的数据进行相应的编码。
本发明的跨站脚本攻击漏洞的修复装置,通过将待修复的网页中的内容拆分并转换成HTML元素,再针对被转换得到的每一个HTML元素,执行不可信来源的数据的搜寻和检查所处上下文的操作,再根据不可信来源的数据所处上下文的不同,生成最合适的提示信息,提升信息能够指示对应的输出编码方案,以有针对性的,真正修复该跨站脚本攻击漏洞,覆盖不同的上下文情况,保证修复XSS漏洞的代码是有效的,并且在修复过程中,不会删除或变异用户输入的数据,因此不会影响到用户体验,造成不必要的负面影响。
下面结合图4描述本发明的跨站脚本攻击漏洞的修复装置,搜寻模块 200具体包括:
判断单元210,用于判断HTML元素中是否包含触发了漏洞执行的Payload(有效载荷)字符串。Payload字符串即指攻击者发送的能够触发漏洞执行的字符串。
第一确定单元220,用于若包含,确定Payload字符串所处的位置以及前后两侧最近的非空白字符的值,基于Payload字符串前后两侧最近的非空白字符的值,能够确定Payload字符串所处的上下文是否为JavaScript代码的字符串值或者CSS的属性值。
第二确定单元230,用于基于位置以及前后两侧最近的非空白字符的值,确定不可信来源的数据所处的上下文。
因此,修复模块300具体包括:
第一修复单元,被配置为若上下文为禁止出现,则生成用于提示不应将不可信来源的数据输出至该上下文处的提示信息;
第二修复单元,被配置为若上下文为非script和非style标签的正文内容,则生成用于指示对不可信来源的数据进行HTML实体编码的提示信息;
第三修复单元,被配置为若上下文为HTML标签的属性值,则生成用于指示对不可信来源的数据进行HTML属性编码的提示信息,HTML属性编码为在HTML实体编码的基础上,对其他所有的非字母和数字字符也进行实体编码;
第四修复单元,被配置为若上下文为HTML标签的需要URL值的位置,则生成用于指示检查URL值的协议(scheme)部分,的提示信息,以确保不是javascript伪协议;
第五修复单元,被配置为若上下文为HTML标签的需要URL值的位置中的查询字符串值,则生成用于指示对不可信来源的数据进行URL引用编码的提示信息;
第六修复单元,被配置为若上下文为JavaScript代码的字符串值,则生成用于指示对不可信来源的数据进行JavaScript十六进制编码的提示信息;
第七修复单元,被配置为若上下文为CSS的属性值,则生成用于指示对不可信来源的数据进行CSS十六进制编码的提示信息。
上述的提示信息即为在将不可信来源的数据输出至HTML网页之前,先进行对应的编码或者进行相应的检查后,再输出至HTML网页,若上下文为禁止出现的上下文,那么就不会再输出至禁止出现的上下文处。
因此,修复模块300具体还包括:基于需要对不可信来源的数据进行编码的上下文,对不可信来源的数据进相应的编码,并生成携带有编码的提示信息。通过本发明对Payload字符串也就是不可信来源的数据进行编码之后随提示信息一起输出,方便程序开发人员去理解。
图5示例了一种电子设备的实体结构示意图,如图5所示,该电子设备可以包括:处理器(processor)810、通信接口(Communications Interface)820、存储器(memory)830和通信总线840,其中,处理器810,通信接口820,存储器830通过通信总线840完成相互间的通信。处理器810可以调用存储器830中的逻辑指令,以执行跨站脚本攻击漏洞的修复方法,该方法包括以下步骤:
S100、将待修复的网页中的内容拆分并转换成超文本标记语言元素;其中,所述待修复的网页中包含漏洞渲染结果;
S200、针对每一个被转换得到的所述超文本标记语言元素,确定其中是否包含不可信来源的数据,以及确定所述不可信来源的数据所处的上下文;
S300、基于所述上下文,生成相应的提示信息;其中,所述提示信息包含基于所述上下文,对所述不可信来源的数据进行相应的编码。
此外,上述的存储器830中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的跨站脚本攻击漏洞的修复方法,该方法包括以下步骤:
S100、将待修复的网页中的内容拆分并转换成超文本标记语言元素;其中,所述待修复的网页中包含漏洞渲染结果;
S200、针对每一个被转换得到的所述超文本标记语言元素,确定其中是否包含不可信来源的数据,以及确定所述不可信来源的数据所处的上下文;
S300、基于所述上下文,生成相应的提示信息;其中,所述提示信息包含基于所述上下文,对所述不可信来源的数据进行相应的编码。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的跨站脚本攻击漏洞的修复方法,该方法包括以下步骤:
S100、将待修复的网页中的内容拆分并转换成超文本标记语言元素;其中,所述待修复的网页中包含漏洞渲染结果;
S200、针对每一个被转换得到的所述超文本标记语言元素,确定其中是否包含不可信来源的数据,以及确定所述不可信来源的数据所处的上下文;
S300、基于所述上下文,生成相应的提示信息;其中,所述提示信息包含基于所述上下文,对所述不可信来源的数据进行相应的编码。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种跨站脚本攻击漏洞的修复方法,其特征在于,包括以下步骤:
将待修复的网页中的内容拆分并转换成超文本标记语言元素;其中,所述待修复的网页中包含漏洞渲染结果;
针对每一个被转换得到的所述超文本标记语言元素,确定其中是否包含不可信来源的数据,以及确定所述不可信来源的数据所处的上下文;
基于所述上下文,生成相应的提示信息;其中,所述提示信息包含基于所述上下文,对所述不可信来源的数据进行相应的编码。
2.根据权利要求1所述的跨站脚本攻击漏洞的修复方法,其特征在于,所述将待修复的网页中的内容拆分并转换成超文本标记语言元素步骤,具体包括:
通过lxml工具库,将所述待修复的网页中的内容拆分并转换成由所述超文本标记语言元素组成的所述超文本标记语言元素对象列表;其中,所述超文本标记语言元素对象列表包含至少一个所述超文本标记语言元素。
3.根据权利要求1所述的跨站脚本攻击漏洞的修复方法,其特征在于,所述基于所述上下文的类型,生成相应的提示信息步骤中,所述上下文具体包括:
禁止出现、非script和非style标签的正文内容、超文本标记语言标签的属性值、超文本标记语言标签的需要网页地址值的位置、超文本标记语言标签的需要网页地址值的位置中的查询字符串值、JavaScript代码的字符串值以及层叠样式表的属性值;
其中,当所述不可信来源的数据位于script标签内容中时,并且所述不可信来源的数据前侧和后侧最近的非空白字符为英文半角单引号或者英文半角双引号以及前后两侧最近的两个非空白字符相同时,则所述上下文为JavaScript代码的字符串值;
当所述不可信来源的数据位于style标签内容中时,并且所述不可信来源的数据前侧最近的非空白字符是英文半角冒号时,则所述上下文为层叠样式表的属性值。
4.根据权利要求3所述的跨站脚本攻击漏洞的修复方法,其特征在于,所述针对每一个被转换得到的所述超文本标记语言元素,确定其中是否包含不可信来源的数据,以及确定所述不可信来源的数据所处的上下文,具体包括以下步骤:
判断所述超文本标记语言元素中是否包含触发了漏洞执行的有效载荷字符串;
若包含,确定所述有效载荷字符串所处的位置以及前后两侧最近的非空白字符的值;
基于所述位置以及前后两侧最近的非空白字符的值,确定所述不可信来源的数据所处的上下文。
5.根据权利要求4所述的跨站脚本攻击漏洞的修复方法,其特征在于,所述基于所述上下文,生成相应的提示信息,具体包括:
若所述上下文为禁止出现,则生成用于提示不应将所述不可信来源的数据输出至所述上下文处的所述提示信息;
若所述上下文为非script和非style标签的正文内容,则生成用于指示对所述不可信来源的数据进行超文本标记语言实体编码的提示信息;
若所述上下文为超文本标记语言标签的属性值,则生成用于指示对所述不可信来源的数据进行超文本标记语言属性编码的所述提示信息;其中,所述超文本标记语言属性编码为在所述超文本标记语言实体编码的基础上,对所有的非字母和数字字符进行实体编码;
若所述上下文为超文本标记语言标签的需要网页地址值的位置,则生成用于指示检查网页地址值的协议部分的所述提示信息;
若所述上下文为超文本标记语言标签的需要网页地址值的位置中的查询字符串值,则生成用于指示对所述不可信来源的数据进行网页地址引用编码的所述提示信息;
若所述上下文为JavaScript代码的字符串值,则生成用于指示对所述不可信来源的数据进行JavaScript十六进制编码的所述提示信息;
若所述上下文为层叠样式表的属性值,则生成用于指示对所述不可信来源的数据进行层叠样式表十六进制编码的所述提示信息。
6.根据权利要求5所述的跨站脚本攻击漏洞的修复方法,其特征在于,所述基于所述上下文,生成相应的提示信息步骤中,具体包括:
基于需要对所述不可信来源的数据进行编码的所述上下文,对所述不可信来源的数据进相应的编码,并生成携带有所述编码的所述提示信息。
7.一种跨站脚本攻击漏洞的修复装置,其特征在于,包括:
转换模块,用于将待修复的网页中的内容拆分并转换成超文本标记语言元素;其中,所述待修复的网页中包含漏洞渲染结果;
搜寻模块,用于针对每一个被转换得到的所述超文本标记语言元素,确定其中是否包含不可信来源的数据,以及确定所述不可信来源的数据所处的上下文;
修复模块,用于基于所述上下文,生成相应的提示信息;其中,所述提示信息包含基于所述上下文,对所述不可信来源的数据进行相应的编码。
8.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6任一项所述跨站脚本攻击漏洞的修复方法的步骤。
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述跨站脚本攻击漏洞的修复方法的步骤。
10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述跨站脚本攻击漏洞的修复方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210127359.XA CN114168950B (zh) | 2022-02-11 | 2022-02-11 | 一种跨站脚本攻击漏洞的修复方法、装置、设备及产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210127359.XA CN114168950B (zh) | 2022-02-11 | 2022-02-11 | 一种跨站脚本攻击漏洞的修复方法、装置、设备及产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114168950A true CN114168950A (zh) | 2022-03-11 |
CN114168950B CN114168950B (zh) | 2022-06-10 |
Family
ID=80489746
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210127359.XA Active CN114168950B (zh) | 2022-02-11 | 2022-02-11 | 一种跨站脚本攻击漏洞的修复方法、装置、设备及产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114168950B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105282096A (zh) * | 2014-06-18 | 2016-01-27 | 腾讯科技(深圳)有限公司 | Xss 漏洞检测方法和装置 |
US20160142419A1 (en) * | 2014-11-14 | 2016-05-19 | Adobe Systems Incorporated | Protecting documents from cross-site scripting attacks |
CN108881101A (zh) * | 2017-05-08 | 2018-11-23 | 腾讯科技(深圳)有限公司 | 一种基于文档对象模型的跨站脚本漏洞防御方法、装置以及客户端 |
CN109040097A (zh) * | 2018-08-23 | 2018-12-18 | 彩讯科技股份有限公司 | 一种跨站脚本攻击的防御方法、装置、设备和存储介质 |
CN110708308A (zh) * | 2019-09-29 | 2020-01-17 | 武汉大学 | 一种面向云计算环境的跨站脚本漏洞挖掘方法及系统 |
-
2022
- 2022-02-11 CN CN202210127359.XA patent/CN114168950B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105282096A (zh) * | 2014-06-18 | 2016-01-27 | 腾讯科技(深圳)有限公司 | Xss 漏洞检测方法和装置 |
US20160142419A1 (en) * | 2014-11-14 | 2016-05-19 | Adobe Systems Incorporated | Protecting documents from cross-site scripting attacks |
CN108881101A (zh) * | 2017-05-08 | 2018-11-23 | 腾讯科技(深圳)有限公司 | 一种基于文档对象模型的跨站脚本漏洞防御方法、装置以及客户端 |
CN109040097A (zh) * | 2018-08-23 | 2018-12-18 | 彩讯科技股份有限公司 | 一种跨站脚本攻击的防御方法、装置、设备和存储介质 |
CN110708308A (zh) * | 2019-09-29 | 2020-01-17 | 武汉大学 | 一种面向云计算环境的跨站脚本漏洞挖掘方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN114168950B (zh) | 2022-06-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Lekies et al. | 25 million flows later: large-scale detection of DOM-based XSS | |
US9407658B1 (en) | System and method for determining modified web pages | |
US9241004B1 (en) | Alteration of web documents for protection against web-injection attacks | |
Nunan et al. | Automatic classification of cross-site scripting in web pages using document-based and URL-based features | |
US10325097B2 (en) | Static detection of context-sensitive cross-site scripting vulnerabilities | |
Heiderich et al. | mxss attacks: Attacking well-secured web-applications by using innerhtml mutations | |
US9058489B2 (en) | Marking documents with executable text for processing by computing systems | |
RU2637477C1 (ru) | Система и способ обнаружения фишинговых веб-страниц | |
US9553865B2 (en) | Protecting websites from cross-site scripting | |
KR101874373B1 (ko) | 난독화 스크립트에 대한 악성 스크립트 탐지 방법 및 그 장치 | |
US9838418B1 (en) | Detecting malware in mixed content files | |
CN104168293A (zh) | 结合本地内容规则库识别可疑钓鱼网页的方法及系统 | |
US8332821B2 (en) | Using encoding to detect security bugs | |
Heiderich et al. | Crouching tiger-hidden payload: security risks of scalable vectors graphics | |
CN102893576A (zh) | 用于减缓跨站弱点的方法和装置 | |
CN110417746A (zh) | 跨站脚本攻击防御方法、装置、设备及存储介质 | |
CN112287349A (zh) | 安全漏洞检测方法及服务端 | |
CN114626061A (zh) | 网页木马检测的方法、装置、电子设备及介质 | |
CN114168950B (zh) | 一种跨站脚本攻击漏洞的修复方法、装置、设备及产品 | |
CN109491647A (zh) | 一种基于编程语言的在线预防攻击方法及电子设备 | |
JP4617243B2 (ja) | 情報発信元検証方法および装置 | |
CN116015777A (zh) | 一种文档检测方法、装置、设备及存储介质 | |
CN109309677A (zh) | 一种基于语义协同的Web应用动态防御方法 | |
CN114329459A (zh) | 浏览器防护方法及装置 | |
CN115774873A (zh) | 一种跨站脚本攻击的检测方法、装置、设备及存储介质 |
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 |