CN110417746A - 跨站脚本攻击防御方法、装置、设备及存储介质 - Google Patents
跨站脚本攻击防御方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN110417746A CN110417746A CN201910608562.7A CN201910608562A CN110417746A CN 110417746 A CN110417746 A CN 110417746A CN 201910608562 A CN201910608562 A CN 201910608562A CN 110417746 A CN110417746 A CN 110417746A
- Authority
- CN
- China
- Prior art keywords
- data
- encoded
- cross
- rule
- coding
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0263—Rule management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明涉及网络安全领域,公开一种跨站脚本攻击防御方法、装置、设备及存储介质,包括:拦截用户访问请求,将请求中包含的所有数据作为可疑跨站脚本攻击数据;按照预设数据过滤规则对可疑跨站脚本攻击数据进行过滤获得待编码数据;确定待编码数据对应的函数编码类型,并根据函数编码类型查找对应的目标编码规则;基于目标编码规则对待编码数据进行编码操作获得编码数据;根据编码数据生成并发送新的用户访问请求至对应服务器,由于是将所有的请求数据都作为可疑跨站脚本攻击数据,从而能够避免攻击数据的漏检,同时能够基于目标编码规则针对性的对攻击数据进行编码使其失效,有效的避免了跨站脚本攻击的发生。
Description
技术领域
本发明涉及网络安全技术领域,尤其涉及一种跨站脚本攻击防御方法、装置、设备及存储介质。
背景技术
跨站脚本是一种经常出现在web应用中的计算机安全漏洞,也是web中最主流的攻击方式。
目前网站应用程序极易受到跨站脚本攻击。常见的攻击手段是通过获取用户身份认证信息、缓存(Cookie)、会话(Session)等数据进行盗取私密网页内容、植入病毒等非法行为。例如网络社交平台在遇到跨站脚本蠕虫攻击侵袭时,网页应用被植入恶意代码,导致不良信息大规模的传播,大量用户自动发送消息及私信等。
现有技术中通常采用对用户请求进行恶意代码检测,若检测到用户请求中存在恶意代码时,对恶意代码进行匹配并过滤的方式来阻止跨站脚本攻击,但现有技术的缺陷在于对恶意代码进行匹配的方式往往会导致部分恶意代码被漏检,进而使得防御效果不佳,无法有效的避免跨站脚本攻击的发生。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供了一种跨站脚本攻击防御方法、装置、设备及存储介质,旨在解决现有技术对跨站脚本攻击的防御效果不佳,无法有效的避免跨站脚本攻击的技术问题。
为实现上述目的,本发明提供了一种跨站脚本攻击防御方法,所述方法包括以下步骤:
拦截用户访问请求,将所述用户访问请求中包含的所有数据作为可疑跨站脚本攻击数据;
按照预设数据过滤规则对所述可疑跨站脚本攻击数据进行过滤,以获得待编码数据;
根据所述用户访问请求确定所述待编码数据对应的函数编码类型,并根据所述函数编码类型从预设数据库中查找对应的目标编码规则;
基于所述目标编码规则对所述待编码数据进行编码操作,以获得编码数据;
根据所述编码数据生成新的用户访问请求,并将所述新的用户访问请求发送至对应服务器。
优选地,所述按照预设数据过滤规则对所述可疑跨站脚本攻击数据进行过滤,以获得待编码数据的步骤,包括:
通过预设正则表达式检索所述可疑跨站脚本攻击数据中是否存在预设标签数据;
若存在,则检测所述预设标签数据中是否包含待过滤对象;
在所述预设标签数据中包含所述待过滤对象时,对所述待过滤对象进行过滤,以获得待编码数据。
优选地,所述根据所述用户访问请求确定所述待编码数据对应的函数编码类型,并根据所述函数编码类型从预设数据库中查找对应的目标编码规则的步骤,包括:
获取所述用户访问请求所包含函数对应的函数属性,根据所述函数属性确定所述待编码数据对应的函数编码类型;
根据所述函数编码类型从预设数据库保存的映射关系中查找对应的目标编码规则,所述映射关系中存放有函数编码类型和编码规则之间的对应关系。
优选地,所述目标编码规则包括超文本标记语言编码规则;
所述基于所述目标编码规则对所述待编码数据进行编码操作,以获得编码数据的步骤,包括:
基于所述超文本标记语言编码规则提取所述待编码数据中包含的待转码字符;
将所述待转码字符转换成预设进制的超文本标记语言数据;
将所述待编码数据中包含的所述待转码字符替换为所述超文本标记语言数据,以获得编码数据。
优选地,所述目标编码规则包括统一资源定位符编码规则;
所述基于所述目标编码规则对所述待编码数据进行编码操作,以获得编码数据的步骤,包括:
基于所述统一资源定位符编码规则读取所述待编码数据中包含的原始统一资源定位符信息;
从所述原始统一资源定位符信息中读取对应的参数字段,并检测所述参数字段中是否携带脚本攻击字符;
若携带,则对所述参数字段中的所述脚本攻击字符进行转码,以获得新的参数字段;
根据所述新的参数字段对所述原始统一资源定位符信息进行字段更新,获得目标统一资源定位符信息;
将所述待编码数据中包含的所述原始统一资源定位符信息替换为所述目标统一资源定位符信息,以获得编码数据。
优选地,所述目标编码规则包括直译式脚本语言编码规则;
所述基于所述目标编码规则对所述待编码数据进行编码操作,以获得编码数据的步骤,包括:
基于所述直译式脚本语言编码规则提取所述待编码数据中包含的第一预设字符;
按预设筛选策略对所述第一预设字符进行筛选,并根据第一转义格式对筛选的字符进行转义,以获得第一类字符;
将所述待编码数据中包含的所述第一预设字符替换为所述第一类字符,以获得编码数据。
优选地,所述目标编码规则包括层叠样式表编码规则;
所述基于所述目标编码规则对所述待编码数据进行编码操作,以获得编码数据的步骤,包括:
基于所述层叠样式表编码规则提取所述待编码数据中包含的第二预设字符;
按所述预设筛选策略对所述第二预设字符进行筛选,并根据第二转义格式对筛选的字符进行转义,以获得第二类字符;
将所述待编码数据中包含的所述第二预设字符替换为所述第二类字符,以获得编码数据。
此外,为实现上述目的,本发明还提出一种跨站脚本攻击防御装置,所述装置包括:
请求拦截模块,用于拦截用户访问请求,将所述用户访问请求中包含的所有数据作为可疑跨站脚本攻击数据;
数据过滤模块,用于按照预设数据过滤规则对所述可疑跨站脚本攻击数据进行过滤,以获得待编码数据;
规则查找模块,用于根据所述用户访问请求确定所述待编码数据对应的函数编码类型,并根据所述函数编码类型从预设数据库中查找对应的目标编码规则;
数据编码模块,用于基于所述目标编码规则对所述待编码数据进行编码操作,以获得编码数据;
请求发送模块,用于根据所述编码数据生成新的用户访问请求,并将所述新的用户访问请求发送至对应服务器。
此外,为实现上述目的,本发明还提出一种跨站脚本攻击防御设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的跨站脚本攻击防御程序,所述跨站脚本攻击防御程序配置为实现如上文所述的跨站脚本攻击防御方法的步骤。
此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有跨站脚本攻击防御程序,所述跨站脚本攻击防御程序被处理器执行时实现如上文所述的跨站脚本攻击防御方法的步骤。
本发明通过拦截用户访问请求,将用户访问请求中包含的所有数据作为可疑跨站脚本攻击数据,能够避免遗漏攻击数据;然后按照预设数据过滤规则对可疑跨站脚本攻击数据进行过滤获得待编码数据,从而过滤掉嵌入到请求数据中不需要编码的部分攻击数据;再根据用户访问请求确定待编码数据对应的函数编码类型,并根据函数编码类型从预设数据库中查找对应的目标编码规则;然后基于目标编码规则针对性的对待编码数据进行编码操作获得编码数据;从而实现了对跨站脚本进行准确检测,有效的避免了跨站脚本攻击的发生。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的跨站脚本攻击防御设备的结构示意图;
图2为本发明跨站脚本攻击防御方法第一实施例的流程示意图;
图3为本发明跨站脚本攻击防御方法第二实施例的流程示意图;
图4为本发明跨站脚本攻击防御方法第三实施例的流程示意图;
图5为本发明跨站脚本攻击防御装置第一实施例的结构框图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的跨站脚本攻击防御设备结构示意图。
如图1所示,该跨站脚本攻击防御设备可以包括:处理器1001,例如中央处理器(Central Processing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(WIreless-FIdelity,WI-FI)接口)。存储器1005可以是高速的随机存取存储器(RandomAccess Memory,RAM)存储器,也可以是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对跨站脚本攻击防御设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种存储介质的存储器1005中可以包括操作***、数据存储模块、网络通信模块、用户接口模块以及跨站脚本攻击防御程序。
在图1所示的跨站脚本攻击防御设备中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明跨站脚本攻击防御设备中的处理器1001、存储器1005可以设置在跨站脚本攻击防御设备中,所述跨站脚本攻击防御设备通过处理器1001调用存储器1005中存储的跨站脚本攻击防御程序,并执行本发明实施例提供的跨站脚本攻击防御方法。
本发明实施例提供了一种跨站脚本攻击防御方法,参照图2,图2为本发明跨站脚本攻击防御方法第一实施例的流程示意图。
本实施例中,所述跨站脚本攻击防御方法包括以下步骤:
步骤S10:拦截用户访问请求,将所述用户访问请求中包含的所有数据作为可疑跨站脚本攻击数据;
需要说明的是,本实施例方法的执行主体可以是具有数据处理、网络通信以及程序运行功能的计算服务设备,如智能手机、平板电脑、个人电脑等。当然该执行主体也可以是装载在上述计算服务设备上的客户端应用程序(以下简称客户端)。
可理解的是,为提高跨站脚本攻击防御的防御效果,避免对恶意代码的漏检,本实施例将所述用户访问请求中包含的所有数据信息,包括用户在客户端上输入的任何信息均作为可疑跨站脚本攻击数据。所述可疑跨站脚本攻击数据可包括用户填写并提交的表单信息,输入的网络链接统一资源定位符(Uniform Resource Locator,URL)参数、又或者是点击某一链接时,链接携带的信息,如用户名、密码、缓存(cookie)等。
在具体实现中,客户端在接收到用户触发的访问请求时,对所述用户访问请求进行解析,以获得所述用户访问请求中包含的所有数据,并将获得的所有数据均作为所述可疑跨站脚本攻击数据。
步骤S20:按照预设数据过滤规则对所述可疑跨站脚本攻击数据进行过滤,以获得待编码数据;
可理解的是,为有效的对跨站脚本攻击进行防御,避免攻击者对访问者进行病毒侵害。本实施例跨站脚本攻击防御方法在对用户提交的数据(即所述可疑跨站脚本攻击数据)进行转义或编码前,还将对所述可疑跨站脚本攻击数据进行过滤操作。
在具体实现中,客户端可按照预先设定的数据过滤规则对可疑跨站脚本攻击数据进行过滤。具体的,客户端可通过预设正则表达式检索所述可疑跨站脚本攻击数据中是否存在预设标签数据;若存在,则检测所述预设标签数据中是否包含待过滤对象;在所述预设标签数据中包含所述待过滤对象时,对所述待过滤对象进行过滤,以获得待编码数据。
其中,所述预设正则表达式可以是具有检索以及替换符合既定模式(或规则)的字符或文本的代码工具。例如,可通过JS正则表达式去检测‘<>’等脚本字符,然后对检索到的这些字符中包含内容进行过滤或者编码操作。
本实施例中,客户端可先通过所述预设正则表达式检索可疑跨站脚本攻击数据中是否存在预设标签数据(如"<script>"、"<a>"、"<img>"等),若存在则继续检测预设标签数据中是否包含待过滤对象,本实施例中所述待过滤对象包括预设事件对象(如on事件)和/或预设字符对象(如'javascript'等字符串);若包含上述待过滤对象,则对这些待过滤对象过滤获得对应的待编码数据。
当然,本实施例中,若客户端在检测到可疑跨站脚本攻击数据中存在上述预设标签数据时,也可以直接将这些标签数据过滤掉,又或是直接删除这类标签数据对应的数据内容,从而实现对可疑跨站脚本攻击数据的过滤。
步骤S30:根据所述用户访问请求确定所述待编码数据对应的函数编码类型,并根据所述函数编码类型从预设数据库中查找对应的目标编码规则;
可理解的是,用户访问请求的发起是基于客户端页面实现的。通常情况下,页面中的元素包括:文本、图像、flash动画、声音、视频、表格、导航栏以及交互式表单等,这些页面元素对应的函数属性一般包括:超级文本标记语言(HyperText Markup Language,HTML)、Javascript(直译式脚本语言)、层叠样式表(Cascading Style Sheets,CSS)等。这些函数属性能够用来确定页面元素所属的函数编码类型(如HTML标签、JavaScirpt值、URL参数值、CSS等)。
应理解的是,不同的函数编码类型对应的具体编码规则也不同。因此,本实施例跨站脚本攻击防御方法中,研发人员可预先针对不同的函数编码类型配置相应的编码规则,同时还可以建立一个函数编码类型和编码规则之间的映射关系,以便客户端在确定出待编码数据的函数编码类型时,根据该映射关系实现对目标编码规则的快速查找。
进一步地,为便于研发人员简单明了地对上述映射关系进行修改更新,本实施例中所述映射关系的表现形式优选为键值对,且键值对中的键对象“key”为函数编码类型,值对象“value”为编码规则。
在具体实现中,客户端可先获取所述用户访问请求所包含函数对应的函数属性,根据所述函数属性确定所述待编码数据对应的函数编码类型;然后根据所述函数编码类型从预设数据库保存的映射关系中查找对应的目标编码规则。
步骤S40:基于所述目标编码规则对所述待编码数据进行编码操作,以获得编码数据;
需要说明的是,本实施例中,所述目标编码规则可以是预先设定的用于对待编码数据进行编码的编码策略。例如,将函数属性为HTML类型的待编码数据对应的编码策略配置(即超文本标记语言编码规则)为:将待编码数据放入到HTML标签内(例如div、span等)时进行HTML编码,将待编码数据中的&<>"'/等字符转义为十进制或者十六进制的字符等。
具体的,客户端在获取到待编码数据后,即可基于所述超文本标记语言编码规则提取所述待编码数据中包含的待转码字符;将所述待转码字符转换成预设进制的超文本标记语言数据;将所述待编码数据中包含的所述待转码字符替换为所述超文本标记语言数据,以获得编码数据。其中,所述预设进制包括但不限于十进制或十六进制。例如,待编码数据中包含“<script>alert('foolish!')</script>,”对于小于号(<)可以被转换成"十进制><"或"十六进制=><"两种HTML数据,而对于转换后的HTML数据,则可以通过预设正则表达式进行编码替换,如:let str=“<script>alert('foolish!')</script>”;str.replace(/</g,‘<;’)。
当然,研发人员也可以将函数属性为JavaScript类型的待编码数据对应的编码策略配置(即直译式脚本语言编码规则)为:将不可信数据放入事件处理属性、JavaScirpt值时进行JavaScript编码,除字母、数字字符外,使用\xHH格式转义ASCII码小于256的所有字符。
具体的,客户端可基于所述直译式脚本语言编码规则提取所述待编码数据中包含的第一预设字符;按预设筛选策略对所述第一预设字符进行筛选,并根据第一转义格式对筛选的字符进行转义,以获得第一类字符;将所述待编码数据中包含的所述第一预设字符替换为所述第一类字符,以获得编码数据。
其中,所述第一预设字符为JavaScript类型的数据中除字母字符和数字字符外的所有字符,所述预设筛选策略为将第一预设字符中美国信息交换标准代码(AmericanStandard Code for Information Interchange,ASCII)值小于256的字符剔除。所述第一转义格式即被转义对象最终被转换成的数据格式“\xHH格式”。
此外,需要说明的是,本实施例中目标编码规则除了包括上述超文本标记语言编码规则、直译式脚本语言编码规则外,还可包括其他的数据编码规则,本实施例对此不作限制。
在具体实现中,客户端可基于目标编码规则对待编码数据进行编码操作,以获得编码数据,从而使得攻击者嵌入的恶意代码失效,防止跨站脚本攻击。
步骤S50:根据所述编码数据生成新的用户访问请求,并将所述新的用户访问请求发送至对应服务器。
在具体实现中,客户端在获取到编码数据后,基本已经实现了对恶意代码的排查与破解,此时即可根据这些编码后的数据重新生成安全的、无病毒的用户访问请求,然后再将新生成的用户访问请求发送至对应服务器,由服务器对该请求进行响应。
本实施例通过拦截用户访问请求,将用户访问请求中包含的所有数据作为可疑跨站脚本攻击数据,能够避免遗漏攻击数据;然后按照预设数据过滤规则对可疑跨站脚本攻击数据进行过滤获得待编码数据,从而过滤掉嵌入到请求数据中不需要编码的部分攻击数据;再根据用户访问请求确定待编码数据对应的函数编码类型,并根据函数编码类型从预设数据库中查找对应的目标编码规则;然后基于目标编码规则针对性的对待编码数据进行编码操作获得编码数据;从而实现了对跨站脚本进行准确检测,有效的避免了跨站脚本攻击的发生。
参考图3,图3为本发明跨站脚本攻击防御方法第二实施例的流程示意图。
基于上述第一实施例,在本实施例中,所述目标编码规则包括统一资源定位符编码规则,相应地,所述步骤S30可包括:
步骤S301:基于所述统一资源定位符编码规则读取所述待编码数据中包含的原始统一资源定位符信息;
应理解的是,所述原始统一资源定位符信息即用户访问请求中最初携带的URL信息,例如http://www.test.com/message?send=<script>alert(‘foolish!’)</script>#r_70732423。通常情况下,一个完整的URL包括:协议部分、域名部分、端口部分、虚拟目录部分、文件名部分、参数部分以及锚部分。考虑到携带有攻击脚本的字符通常存放在参数部分,因此本实施例优先对URL信息中的参数部分进行攻击脚本字符的检测。
在具体实现中,客户端可基于预先配置的统一资源定位符编码规则读取待编码数据中包含的URL信息,然后对URL信息进行跨站脚本字符的检测。
步骤S302:从所述原始统一资源定位符信息中读取对应的参数字段,并检测所述参数字段中是否携带脚本攻击字符;
可理解的是,在URL中,从“?”开始到“#”为止之间的部分为参数部分(本实施例中称之为参数字段)。例如上述URL中“http://www.test.com/message?send=<script>alert(‘foolish!’)</script>#r_70732423”的参数部分为“send=<script>alert(‘foolish!’)</script>”。在获取到这些参数字段后,客户端即可对这些字段进行检测,以判断所述参数字段中是否携带脚本攻击字符。
在具体实现中,若客户端检测到从原始统一资源定位符信息中读取到的参数字段中携带有脚本攻击字符“<script>alert('foolish!')</script>”则需要对这些脚本攻击字符进行转码。
步骤S303:若携带,则对所述参数字段中的所述脚本攻击字符进行转码,以获得新的参数字段;
在具体实现中,若客户端在检测到参数字段中携带有脚本攻击字符,即可对这些脚本攻击字符进行转码操作,例如可通过如下方式来实现转码操作:
let url Str=‘http://www.test.com/message?send=<script>alert(‘foolish!’)</script>’
let needStr=encodeURIComponent(urlStr);
其中,encodeURIComponent(urlStr)为预先封装的对URL进行转码的方法(类)。
步骤S304:根据所述新的参数字段对所述原始统一资源定位符信息进行字段更新,获得目标统一资源定位符信息;
在具体实现中,客户端在对URL中的参数字段进行转码获得新的参数字段后,即可用新获得的参数字段对原始统一资源定位符信息中的(原始)参数字段进行替换(即所述字段更新),获得目标统一资源定位符信息,即新的URL。
步骤S305:将所述待编码数据中包含的所述原始统一资源定位符信息替换为所述目标统一资源定位符信息,以获得编码数据。
在具体实现中,客户端在获取到上述目标统一资源定位符信息后,即可将待编码数据中包含的原始统一资源定位符信息替换为所述目标统一资源定位符信息,保证客户端浏览器后续获取到的URL信息为安全的信息。
本实施例通过基于统一资源定位符编码规则读取待编码数据中包含的原始统一资源定位符信息;从原始统一资源定位符信息中读取对应的参数字段,并检测参数字段中是否携带脚本攻击字符;若携带,则对参数字段中的脚本攻击字符进行转码,以获得新的参数字段;根据新的参数字段对原始统一资源定位符信息进行字段更新,获得目标统一资源定位符信息;将待编码数据中包含的原始统一资源定位符信息替换为目标统一资源定位符信息,以获得编码数据,从而能够准确地检测出用户访问请求原始统一资源定位符信息中可能携带的脚本攻击字符,有效的防止跨站脚本攻击。
参考图4,图4为本发明跨站脚本攻击防御方法第三实施例的流程示意图。
基于上述各实施例,在本实施例中,所述目标编码规则包括层叠样式表编码规则,相应地,所述步骤S30可包括:
步骤S301':基于所述层叠样式表编码规则提取所述待编码数据中包含的第二预设字符;
应理解的是,层叠样式表(CSS)是一种用来表现HTML等文件样式的计算机语言,CSS能够对网页中元素位置的排版进行像素级精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力。因此,为进一步地防止跨站脚本攻击。本实施例跨站脚本攻击防御方法还将对待编码数据中CSS类型的数据进行跨站脚本的检测。
需要说明的是,所述第二预设字符为CSS类型的数据中除字母字符和数字字符外的所有字符。
在具体实现中,客户端可基于层叠样式表编码规则提取待编码数据中包含的第二预设字符。
步骤S302':按所述预设筛选策略对所述第二预设字符进行筛选,并根据第二转义格式对筛选的字符进行转义,以获得第二类字符;
同样地,所述预设筛选策略为将第二预设字符中ASCII值小于256的字符剔除。所述第二转义格式即被转义对象最终被转换成的数据格式“\XXXXXX格式”。
在具体实现中,客户端可按照上述预设筛选策略筛选出第二预设字符中ASCII值小于256的所有字符,然后根据上述第二转义格式对筛选出的字符进行转义获得第二类字符。
步骤S303':将所述待编码数据中包含的所述第二预设字符替换为所述第二类字符,以获得编码数据。
在具体实现中,客户端在获取到转义后的上述第二类字符后,即可将所述待编码数据中包含的所述第二预设字符替换为所述第二类字符获得编码后的待编码数据,进而防止CSS类型的数据可能携带的脚本攻击字符。
本实施例通过基于层叠样式表编码规则提取待编码数据中包含的第二预设字符;按预设筛选策略对第二预设字符进行筛选,并根据第二转义格式对筛选的字符进行转义,以获得第二类字符;将待编码数据中包含的第二预设字符替换为第二类字符,以获得编码数据,能够防止CSS类型的数据可能携带的脚本攻击字符,有效避免跨站脚本攻击的发生。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有跨站脚本攻击防御程序,所述跨站脚本攻击防御程序被处理器执行时实现如上文所述的跨站脚本攻击防御方法的步骤。
参照图5,图5为本发明跨站脚本攻击防御装置第一实施例的结构框图。
如图5所示,本发明实施例提出的跨站脚本攻击防御装置包括:
请求拦截模块501,用于拦截用户访问请求,将所述用户访问请求中包含的所有数据作为可疑跨站脚本攻击数据;
数据过滤模块502,用于按照预设数据过滤规则对所述可疑跨站脚本攻击数据进行过滤,以获得待编码数据;
规则查找模块503,用于根据所述用户访问请求确定所述待编码数据对应的函数编码类型,并根据所述函数编码类型从预设数据库中查找对应的目标编码规则;
数据编码模块504,用于基于所述目标编码规则对所述待编码数据进行编码操作,以获得编码数据;
请求发送模块505,用于根据所述编码数据生成新的用户访问请求,并将所述新的用户访问请求发送至对应服务器。
本实施例通过拦截用户访问请求,将用户访问请求中包含的所有数据作为可疑跨站脚本攻击数据,能够避免遗漏攻击数据;然后按照预设数据过滤规则对可疑跨站脚本攻击数据进行过滤获得待编码数据,从而过滤掉嵌入到请求数据中不需要编码的部分攻击数据;再根据用户访问请求确定待编码数据对应的函数编码类型,并根据函数编码类型从预设数据库中查找对应的目标编码规则;然后基于目标编码规则针对性的对待编码数据进行编码操作获得编码数据;从而实现了对跨站脚本进行准确检测,有效的避免了跨站脚本攻击的发生。
基于本发明上述跨站脚本攻击防御装置第一实施例,提出本发明跨站脚本攻击防御装置的第二实施例。
在本实施例中,所述数据过滤模块502,还用于通过预设正则表达式检索所述可疑跨站脚本攻击数据中是否存在预设标签数据;若存在,则检测所述预设标签数据中是否包含待过滤对象;在所述预设标签数据中包含所述待过滤对象时,对所述待过滤对象进行过滤,以获得待编码数据。
进一步地,所述规则查找模块503,还用于获取所述用户访问请求所包含函数对应的函数属性,根据所述函数属性确定所述待编码数据对应的函数编码类型;根据所述函数编码类型从预设数据库保存的映射关系中查找对应的目标编码规则,所述映射关系中存放有函数编码类型和编码规则之间的对应关系。
进一步地,所述数据编码模块504,还用于基于超文本标记语言编码规则提取所述待编码数据中包含的待转码字符;将所述待转码字符转换成预设进制的超文本标记语言数据;将所述待编码数据中包含的所述待转码字符替换为所述超文本标记语言数据,以获得编码数据。
进一步地,所述数据编码模块504,还用于基于统一资源定位符编码规则读取所述待编码数据中包含的原始统一资源定位符信息;从所述原始统一资源定位符信息中读取对应的参数字段,并检测所述参数字段中是否携带脚本攻击字符;若携带,则对所述参数字段中的所述脚本攻击字符进行转码,以获得新的参数字段;根据所述新的参数字段对所述原始统一资源定位符信息进行字段更新,获得目标统一资源定位符信息;将所述待编码数据中包含的所述原始统一资源定位符信息替换为所述目标统一资源定位符信息,以获得编码数据。
进一步地,所述数据编码模块504,还用于基于直译式脚本语言编码规则提取所述待编码数据中包含的第一预设字符;按预设筛选策略对所述第一预设字符进行筛选,并根据第一转义格式对筛选的字符进行转义,以获得第一类字符;将所述待编码数据中包含的所述第一预设字符替换为所述第一类字符,以获得编码数据。
进一步地,所述数据编码模块504,还用于基于层叠样式表编码规则提取所述待编码数据中包含的第二预设字符;按所述预设筛选策略对所述第二预设字符进行筛选,并根据第二转义格式对筛选的字符进行转义,以获得第二类字符;将所述待编码数据中包含的所述第二预设字符替换为所述第二类字符,以获得编码数据。
本发明跨站脚本攻击防御装置的其他实施例或具体实现方式可参照上述各方法实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者***不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者***所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者***中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器/随机存取存储器、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种跨站脚本攻击防御方法,其特征在于,所述方法包括:
拦截用户访问请求,将所述用户访问请求中包含的所有数据作为可疑跨站脚本攻击数据;
按照预设数据过滤规则对所述可疑跨站脚本攻击数据进行过滤,以获得待编码数据;
根据所述用户访问请求确定所述待编码数据对应的函数编码类型,并根据所述函数编码类型从预设数据库中查找对应的目标编码规则;
基于所述目标编码规则对所述待编码数据进行编码操作,以获得编码数据;
根据所述编码数据生成新的用户访问请求,并将所述新的用户访问请求发送至对应服务器。
2.如权利要求1所述的方法,其特征在于,所述按照预设数据过滤规则对所述可疑跨站脚本攻击数据进行过滤,以获得待编码数据的步骤,包括:
通过预设正则表达式检索所述可疑跨站脚本攻击数据中是否存在预设标签数据;
若存在,则检测所述预设标签数据中是否包含待过滤对象;
在所述预设标签数据中包含所述待过滤对象时,对所述待过滤对象进行过滤,以获得待编码数据。
3.如权利要求1所述的方法,其特征在于,所述根据所述用户访问请求确定所述待编码数据对应的函数编码类型,并根据所述函数编码类型从预设数据库中查找对应的目标编码规则的步骤,包括:
获取所述用户访问请求所包含函数对应的函数属性,根据所述函数属性确定所述待编码数据对应的函数编码类型;
根据所述函数编码类型从预设数据库保存的映射关系中查找对应的目标编码规则,所述映射关系中存放有函数编码类型和编码规则之间的对应关系。
4.如权利要求1至3任一项所述的方法,其特征在于,所述目标编码规则包括超文本标记语言编码规则;
所述基于所述目标编码规则对所述待编码数据进行编码操作,以获得编码数据的步骤,包括:
基于所述超文本标记语言编码规则提取所述待编码数据中包含的待转码字符;
将所述待转码字符转换成预设进制的超文本标记语言数据;
将所述待编码数据中包含的所述待转码字符替换为所述超文本标记语言数据,以获得编码数据。
5.如权利要求4所述的方法,其特征在于,所述目标编码规则包括统一资源定位符编码规则;
所述基于所述目标编码规则对所述待编码数据进行编码操作,以获得编码数据的步骤,包括:
基于所述统一资源定位符编码规则读取所述待编码数据中包含的原始统一资源定位符信息;
从所述原始统一资源定位符信息中读取对应的参数字段,并检测所述参数字段中是否携带脚本攻击字符;
若携带,则对所述参数字段中的所述脚本攻击字符进行转码,以获得新的参数字段;
根据所述新的参数字段对所述原始统一资源定位符信息进行字段更新,获得目标统一资源定位符信息;
将所述待编码数据中包含的所述原始统一资源定位符信息替换为所述目标统一资源定位符信息,以获得编码数据。
6.如权利要求5所述的方法,其特征在于,所述目标编码规则包括直译式脚本语言编码规则;
所述基于所述目标编码规则对所述待编码数据进行编码操作,以获得编码数据的步骤,包括:
基于所述直译式脚本语言编码规则提取所述待编码数据中包含的第一预设字符;
按预设筛选策略对所述第一预设字符进行筛选,并根据第一转义格式对筛选的字符进行转义,以获得第一类字符;
将所述待编码数据中包含的所述第一预设字符替换为所述第一类字符,以获得编码数据。
7.如权利要求6所述的方法,其特征在于,所述目标编码规则包括层叠样式表编码规则;
所述基于所述目标编码规则对所述待编码数据进行编码操作,以获得编码数据的步骤,包括:
基于所述层叠样式表编码规则提取所述待编码数据中包含的第二预设字符;
按所述预设筛选策略对所述第二预设字符进行筛选,并根据第二转义格式对筛选的字符进行转义,以获得第二类字符;
将所述待编码数据中包含的所述第二预设字符替换为所述第二类字符,以获得编码数据。
8.一种跨站脚本攻击防御装置,其特征在于,所述装置包括:
请求拦截模块,用于拦截用户访问请求,将所述用户访问请求中包含的所有数据作为可疑跨站脚本攻击数据;
数据过滤模块,用于按照预设数据过滤规则对所述可疑跨站脚本攻击数据进行过滤,以获得待编码数据;
规则查找模块,用于根据所述用户访问请求确定所述待编码数据对应的函数编码类型,并根据所述函数编码类型从预设数据库中查找对应的目标编码规则;
数据编码模块,用于基于所述目标编码规则对所述待编码数据进行编码操作,以获得编码数据;
请求发送模块,用于根据所述编码数据生成新的用户访问请求,并将所述新的用户访问请求发送至对应服务器。
9.一种跨站脚本攻击防御设备,其特征在于,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的跨站脚本攻击防御程序,所述跨站脚本攻击防御程序配置为实现如权利要求1至7中任一项所述的跨站脚本攻击防御方法的步骤。
10.一种存储介质,其特征在于,所述存储介质上存储有跨站脚本攻击防御程序,所述跨站脚本攻击防御程序被处理器执行时实现如权利要求1至7任一项所述的跨站脚本攻击防御方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910608562.7A CN110417746A (zh) | 2019-07-05 | 2019-07-05 | 跨站脚本攻击防御方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910608562.7A CN110417746A (zh) | 2019-07-05 | 2019-07-05 | 跨站脚本攻击防御方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110417746A true CN110417746A (zh) | 2019-11-05 |
Family
ID=68360536
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910608562.7A Pending CN110417746A (zh) | 2019-07-05 | 2019-07-05 | 跨站脚本攻击防御方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110417746A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113810418A (zh) * | 2021-09-18 | 2021-12-17 | 土巴兔集团股份有限公司 | 一种跨站脚本攻击的防御方法及其相关设备 |
CN114430339A (zh) * | 2021-12-25 | 2022-05-03 | 深圳太极云软技术有限公司 | 一种网络请求的过滤方法、装置、终端和可读存储介质 |
CN115834254A (zh) * | 2023-02-16 | 2023-03-21 | 北京安锐卓越信息技术股份有限公司 | 网络内容安全防护方法、装置、存储介质及电子设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101849238A (zh) * | 2007-11-05 | 2010-09-29 | 微软公司 | 跨站脚本过滤器 |
CN105100084A (zh) * | 2015-07-07 | 2015-11-25 | 中国科学院计算技术研究所 | 一种防止跨站请求伪造攻击的方法及*** |
CN106506548A (zh) * | 2016-12-23 | 2017-03-15 | 努比亚技术有限公司 | 跨站脚本攻击的防御装置及方法 |
US10063519B1 (en) * | 2017-03-28 | 2018-08-28 | Verisign, Inc. | Automatically optimizing web application firewall rule sets |
CN108881101A (zh) * | 2017-05-08 | 2018-11-23 | 腾讯科技(深圳)有限公司 | 一种基于文档对象模型的跨站脚本漏洞防御方法、装置以及客户端 |
CN109040097A (zh) * | 2018-08-23 | 2018-12-18 | 彩讯科技股份有限公司 | 一种跨站脚本攻击的防御方法、装置、设备和存储介质 |
CN109889478A (zh) * | 2018-12-21 | 2019-06-14 | 航天信息股份有限公司 | 一种用于防范React前端框架的跨站脚本攻击XSS的方法及*** |
-
2019
- 2019-07-05 CN CN201910608562.7A patent/CN110417746A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101849238A (zh) * | 2007-11-05 | 2010-09-29 | 微软公司 | 跨站脚本过滤器 |
CN105100084A (zh) * | 2015-07-07 | 2015-11-25 | 中国科学院计算技术研究所 | 一种防止跨站请求伪造攻击的方法及*** |
CN106506548A (zh) * | 2016-12-23 | 2017-03-15 | 努比亚技术有限公司 | 跨站脚本攻击的防御装置及方法 |
US10063519B1 (en) * | 2017-03-28 | 2018-08-28 | Verisign, Inc. | Automatically optimizing web application firewall rule sets |
CN108881101A (zh) * | 2017-05-08 | 2018-11-23 | 腾讯科技(深圳)有限公司 | 一种基于文档对象模型的跨站脚本漏洞防御方法、装置以及客户端 |
CN109040097A (zh) * | 2018-08-23 | 2018-12-18 | 彩讯科技股份有限公司 | 一种跨站脚本攻击的防御方法、装置、设备和存储介质 |
CN109889478A (zh) * | 2018-12-21 | 2019-06-14 | 航天信息股份有限公司 | 一种用于防范React前端框架的跨站脚本攻击XSS的方法及*** |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113810418A (zh) * | 2021-09-18 | 2021-12-17 | 土巴兔集团股份有限公司 | 一种跨站脚本攻击的防御方法及其相关设备 |
CN113810418B (zh) * | 2021-09-18 | 2023-12-26 | 土巴兔集团股份有限公司 | 一种跨站脚本攻击的防御方法及其相关设备 |
CN114430339A (zh) * | 2021-12-25 | 2022-05-03 | 深圳太极云软技术有限公司 | 一种网络请求的过滤方法、装置、终端和可读存储介质 |
CN115834254A (zh) * | 2023-02-16 | 2023-03-21 | 北京安锐卓越信息技术股份有限公司 | 网络内容安全防护方法、装置、存储介质及电子设备 |
CN115834254B (zh) * | 2023-02-16 | 2023-04-28 | 北京安锐卓越信息技术股份有限公司 | 网络内容安全防护方法、装置、存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9712560B2 (en) | Web page and web browser protection against malicious injections | |
US9509714B2 (en) | Web page and web browser protection against malicious injections | |
Lekies et al. | 25 million flows later: large-scale detection of DOM-based XSS | |
Carnavalet et al. | A large-scale evaluation of high-impact password strength meters | |
CN102254111B (zh) | 恶意网站检测方法及装置 | |
EP3726410B1 (en) | Interpretation device, interpretation method and interpretation program | |
US10325097B2 (en) | Static detection of context-sensitive cross-site scripting vulnerabilities | |
TWI461937B (zh) | 用於選擇性保護網頁瀏覽器之廣告顯示的方法及系統 | |
CN101356535B (zh) | 一种检测和防止java脚本程序中不安全行为的方法和装置 | |
CN108366058B (zh) | 防止广告运营商流量劫持的方法、装置、设备及存储介质 | |
Liu et al. | A novel approach for detecting browser-based silent miner | |
EP3113064A1 (en) | System and method for determining modified web pages | |
CN110650117B (zh) | 跨站攻击防护方法、装置、设备及存储介质 | |
CN103279710B (zh) | Internet信息***恶意代码的检测方法和*** | |
CN109688097A (zh) | 网站防护方法、网站防护装置、网站防护设备及存储介质 | |
JP2010516007A (ja) | コンピュータ不正行為を検出するための方法及び装置 | |
CN110417746A (zh) | 跨站脚本攻击防御方法、装置、设备及存储介质 | |
CN110046494B (zh) | 基于终端的大数据处理方法及*** | |
CN103716394B (zh) | 下载文件的管理方法及装置 | |
CN111628990A (zh) | 识别攻击的方法、装置和服务器 | |
CN105488400A (zh) | 一种恶意网页综合检测方法及*** | |
CN103312692B (zh) | 链接地址安全性检测方法及装置 | |
CN101183458A (zh) | 图片验证码生成方法和图片验证码生成装置 | |
CN111737692A (zh) | 应用程序的风险检测方法及装置、设备、存储介质 | |
CN103220277B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191105 |