CN109347820A - 一种应用安全防御方法及*** - Google Patents
一种应用安全防御方法及*** Download PDFInfo
- Publication number
- CN109347820A CN109347820A CN201811191644.8A CN201811191644A CN109347820A CN 109347820 A CN109347820 A CN 109347820A CN 201811191644 A CN201811191644 A CN 201811191644A CN 109347820 A CN109347820 A CN 109347820A
- Authority
- CN
- China
- Prior art keywords
- parameter
- blacklist
- data packet
- request text
- safety
- 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
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/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/101—Access control lists [ACL]
-
- 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/20—Network architectures or network communication protocols for network security for managing network security; network security policies in general
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种应用安全防御方法及***,涉及应用安全领域,该应用安全防御方法运行于Spring框架,该方法包括:当接收到HTTP请求报文时,解析所述HTTP请求报文,得到解析后数据包;所述解析后数据包包括:消息报头参数和请求正文参数;将所述消息报头参数和所述请求正文参数分别在预设黑名单中进行匹配;当所述消息报头参数和/或所述请求正文参数匹配中了预设黑名单中的黑名单参数,执行安全防御操作。本发明的应用安全防御方法是基于Spring框架设置,直接从Spring框架层面进行数据包的安全检测,保证写入到云平台(即云数据库)的数据的安全性,降低应用安全风险。
Description
技术领域
本发明涉及应用安全领域,尤其涉及一种应用安全防御方法及***。
背景技术
随着信息技术不断发展,信息安全事件呈现增长态势,信息安全已成为企业信息化建设的重点,而应用安全是安全体系中重要一个环节。现有技术是使用传统Web应用防护***(Web Application Firewall,WAF),通过对数据包加密进行传输,以保证应用安全。
然而,在遇到业务***位于云平台上时,传统WAF无法部署到云网络中,即云平台无法解析加密数据包,从而应用安全无法得到保障。
发明内容
本发明的目的是提供一种应用安全防御方法及***,解决业务***位于云平台上时的应用安全问题。
本发明提供的技术方案如下:
一种应用安全防御方法,所述应用安全防御方法运行于Spring框架,该方法包括:当接收到HTTP请求报文时,解析所述HTTP请求报文,得到解析后数据包;所述解析后数据包包括:消息报头参数和请求正文参数;将所述消息报头参数和所述请求正文参数分别在预设黑名单中进行匹配;当所述消息报头参数和/或所述请求正文参数匹配中了预设黑名单中的黑名单参数,执行安全防御操作。
在上述技术方案中,应用安全防御方法是基于Spring框架设置,即使业务***部署于云平台,也能在传输过程中使用加密数据包,直接从Spring框架层面进行数据包的安全检测,保证写入到云平台(即云数据库)的数据的安全性,降低应用安全风险。
进一步,所述请求正文参数的获取过程具体为:当所述HTTP请求报文中的请求正文为Ajax格式数据包时,直接取出所述请求正文参数;当所述HTTP请求报文中的请求正文为JSON格式数据包时,进行JSON格式转换,再取出所述请求正文参数。
在上述技术方案中,可兼容两种数据包格式的处理和安全判断,兼容性高。
进一步,所述安全防御操作包括以下任意一种或多种:丢弃接收到的HTTP请求报文;跳转至错误中断页。
在上述技术方案中,多种安全防御操作给予了更多的选择。
进一步,所述当接收到HTTP请求报文时,解析所述HTTP请求报文,得到解析后数据包之后还包括:对所述解析后数据包进行安全预处理,得到处理结果;当所述处理结果为无需黑名单匹配时,将经过安全预处理后的解析后数据包写入云数据库。
在上述技术方案中,安全预处理进一步降低了应用安全的风险。
进一步,所述将消息报头参数和所述请求正文参数分别在预设黑名单中进行匹配具体为:当所述处理结果为需要黑名单匹配时,将经过安全预处理后的消息报头参数和请求正文参数分别在预设黑名单中进行匹配。
在上述技术方案中,安全预处理和预设黑名单匹配相结合,多方面提高应用的安全性。
进一步,所述安全预处理包括:预设URL校验;当所述解析后数据包为预设URL时,所述处理结果为无需黑名单匹配。
在上述技术方案中,可给予特殊URL高权限,提高响应速度。
进一步,所述安全预处理包括以下任意一种或多种:消息报头校验、请求正文参数校验、请求正文特殊字符替换、消息报头特殊字符替换、编码转义格式。
在上述技术方案中,多种安全预处理方式的选择,具有更多的灵活性,可适应不同的使用场合。
本发明还提供一种应用安全防御***,包括:解析模块,用于当接收到HTTP请求报文时,解析所述HTTP请求报文,得到解析后数据包;所述解析后数据包包括:消息报头参数和请求正文参数;匹配模块,用于将所述消息报头参数和所述请求正文参数分别在预设黑名单中进行匹配;执行模块,用于当所述消息报头参数和/或所述请求正文参数匹配中了预设黑名单中的黑名单参数,执行安全防御操作。
在上述技术方案中,应用安全防御方法是基于Spring框架设置,即使业务***部署于云平台,也能在传输过程中使用加密数据包,直接从Spring框架层面进行数据包的安全检测,保证写入到云平台(即云数据库)的数据的安全性,降低应用安全风险。
进一步,还包括:预处理模块,用于对所述解析后数据包进行安全预处理,得到处理结果;所述执行模块,进一步用于当所述处理结果为无需黑名单匹配时,将经过安全预处理后的解析后数据包写入云数据库。
进一步,所述匹配模块,用于将所述消息报头参数和所述请求正文参数分别在预设黑名单中进行匹配具体为:所述匹配模块,用于当所述处理结果为需要黑名单匹配时,将经过安全预处理后的消息报头参数和请求正文参数分别在预设黑名单中进行匹配。
与现有技术相比,本发明的应用安全防御方法及***有益效果在于:
本发明的应用安全防御方法是基于Spring框架设置,直接从Spring框架层面进行数据包的安全检测,保证写入到云平台(即云数据库)的数据的安全性,降低应用安全风险。
附图说明
下面将以明确易懂的方式,结合附图说明优选实施方式,对一种应用安全防御方法及***的上述特性、技术特征、优点及其实现方式予以进一步说明。
图1是本发明应用安全防御方法一个实施例的流程图;
图2是本发明应用安全防御方法另一个实施例的流程图;
图3是本发明应用安全防御方法又一个实施例的流程图;
图4是本发明应用安全防御***一个实施例的结构示意图;
图5是本发明应用安全防御***另一个实施例的结构示意图。
附图标号说明:
10.解析模块,20.匹配模块,30.执行模块,40.预处理模块。
具体实施方式
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。
为使图面简洁,各图中只示意性地表示出了与本发明相关的部分,它们并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。
本发明的应用安全防御方法是基于Spring框架(包括:Spring MVC框架和SpringBoot框架)开发,针对位于云平台的业务***无法解析加密数据包的问题,直接从Spring框架层面对加密传输的数据包进行安全判断,以最小代价提高业务***的安全防御,尤其适合业务***基于Spring框架开发、且部署于云平台的情况。
图1示出了本发明的一个实施例,一种应用安全防御方法,应用安全防御方法运行于Spring框架,该方法包括:
S101当接收到HTTP请求报文时,解析HTTP请求报文,得到解析后数据包;解析后数据包包括:消息报头参数和请求正文参数。
具体的,HTTP请求报文为了安全性考虑是经过加密的,因此,需要对其解析才可取出消息报头和请求正文中的参数。
消息报头参数包括:Accept、Host、Referer、Accept-Language、Accept-Encoding、User-Agent、Connection、Cookie等参数的值。请求正文分为Ajax和JSON格式,但JSON格式的数据包需要单独处理。在实际使用时,通过Java开发技术获取消息报头参数和请求正文。
优选地,请求正文参数的获取过程具体为:
当HTTP请求报文中的请求正文为Ajax(一种用于创建快速动态网页的技术)格式数据包时,直接取出请求正文参数;当HTTP请求报文中的请求正文为JSON(一种轻量级的数据交换模式)格式数据包时,进行JSON格式转换(例如json格式:{‘a’:’1z’,’c’:’rk’}json格式转成之后数据:a=lz&c=rk),再取出请求正文参数(即a=lz&c=rk)。
Ajax和JSON是常用的数据包格式,本实施例可兼容两种数据包格式的处理和安全判断,兼容性高。
S102将消息报头参数和请求正文参数分别在预设黑名单中进行匹配。
具体的,预设黑名单是根据经验、历史碰到的攻击代码等预先设置的,预设黑名单中存在多个黑名单参数,例如:
1、<string><![CDATA[\"{1,1}]]></string>匹配含有字符:含有一个符号:"
2、<string><![CDATA[<{1,1}]]></string>匹配含有字符:含有一个符号:<
3、<string><![CDATA[>{1,1}]]></string>匹配含有字符:含有一个符号:>
4、<string><![CDATA['{1,1}]]></string>匹配含有字符:含有一个符号:'<string><![CDATA[%27{1,1}]]></string>匹配含有字符:含有一个符号:'URL编码
5、<string><![CDATA[%22{1,1}]]></string>匹配含有字符:含有一个符号:"URL编码
6、<string><![CDATA[%3C{1,1}]]></string>匹配含有字符:含有一个符号:<URL编码
7、<string><![CDATA[%3E{1,1}]]></string>匹配含有字符:含有一个符号:>URL编码
8、<string><![CDATA[alert*(*)]]></string>匹配含有字符:alert()
9、<string><![CDATA[window.location]]></string>匹配含有字符:window.location
10、<string><![CDATA[style*=*x:ex*pression*(*)]]></string>匹配含有字符:style=x:ex pression()
11、<string><![CDATA[document.cookie]]></string>匹配含有字符:document.cookie
12、<string><![CDATA[eval*(*)]]></string>匹配含有字符:eval()
13、<string><![CDATA[unescape*(*)]]></string>匹配含有字符:unescape()
14、<string><![CDATA[execscript*(*)]]></string>匹配含有字符:execscript()
15、<string><![CDATA[msgbox*(*)]]></string>匹配含有字符:msgbox()
16、<string><![CDATA[confirm*(*)]]></string>匹配含有字符:confirm()
17、<string><![CDATA[prompt*(*)]]></string>匹配含有字符:prompt()
18、<string><![CDATA[<script>*</script>]]></string>匹配含有字符:含有回车换行<script></script>
19<string><![CDATA[update|grant|count|sitename|char|drop|use|by|from|where|column_name|order|group_concat|union|delete|execute|select|or|like|create|master|and|declare|net|user|like|truncate|xp_cmdshell|exec|mid|insert|information_schema.columns]]></string>SQL注入相关关键字
20、<string><![CDATA[../../]]></string>匹配含有非法目录:../../
预设黑名单中的黑名单参数可被更新、修改,与时俱进,提高攻击代码的覆盖性,保证HTTP请求报文的安全性。
S103当消息报头参数和/或请求正文参数匹配中了预设黑名单中的黑名单参数,执行安全防御操作。
具体的,在提取了消息报头参数和请求正文参数后,会让他们分别与预设黑名单中的各黑名单参数进行匹配,如果预设黑名单中发现了和消息报头参数一样的,或,预设黑名单中发现了和请求正文参数一样的,或,预设黑名单中发现了和请求正文参数、洗牌报头参数一样的黑名单参数,就认为消息报头参数和/或请求正文参数匹配到了黑名单参数,说明此条HTTP请求报文具有攻击性,需要特殊处理。
例如:①SQL注入代码安全威胁判断
请求HTTP数据包(即HTTP请求报文):http://www.yangshi.com/id=1unionselect
格式化的数据(即请求正文参数):id=union select
命中的黑名单参数:
<string><![CDATA[update|grant|count|sitename|char|drop|use|by|from|where|column_name|order|group_concat|union|delete|execute|select|or|like|create|master|and|declare|net|user|like|truncate|xp_cmdshell|exec|mid|insert|infor mation_schema.columns]]></string>
②XSS攻击代码安全威胁判断
请求http数据包(即HTTP请求报文):http://www.yangshi.com/id=1<script>alert(/xss/)</script>
格式化的数据(即请求正文参数):id=1<script>alert(/xss/)</script>
命中的黑名单参数:
<string><![CDATA[<script>*</script>]]></string>
<string><![CDATA[alert*(*)]]></string>
③目录遍历安全威胁判断
请求http数据包:http://www.yangshi.com/id=1../../../passwd
格式化的数据(即请求正文参数):id=1../../../passwd
命中的黑名单参数:
<string><![CDATA[../../]]></string>
需要注意的是,上述都是关于请求正文参数的匹配例子,消息报头参数的匹配方式相同,在此不再举例说明。
安全防御操作有多种,根据实际需求自行设置,例如:丢弃接收到的HTTP请求报文;跳转至错误中断页等。可选择一种作为安全防御操作,也可多种结合使用。
例如:两者结合使用,若发现接收到的HTTP请求报文为攻击性报文,则将其丢弃,并跳转到错误中断页面。
错误中断页包括:定制404页面或默认404页面。如果存在定制404页面,则跳转到定制404页面;若不存在定制404页面,则跳转到默认404页面。
跳转至错误中断页相当于一个中断请求,根据实际需求选择此中断请求的开启和关闭,当开启时,就可跳转到错误中断页,关闭时,则不跳转到错误中断页。
S104当消息报头参数和请求正文参数未匹配中预设黑名单中的黑名单参数,将解析后数据包写入云数据库。
具体的,如果消息报头参数和请求正文参数都未匹配到黑名单参数,说明此条HTTP请求报文是正常的报文,可将其写入云数据库,进行后续的正常操作。
可选地,当日志记录开启时,记录对接收到的HTTP请求报文的处理过程。
具体的,日志记录可根据实际需求开启或关闭,开启时进行日志记录,便于后续的统计,关闭时,则无需进行日志记录。
本实施例的应用安全防御方法是基于Spring框架设置,即使业务***部署于云平台,也能在传输过程中使用加密数据包,直接从Spring框架层面进行数据包的安全检测,保证写入到云平台(即云数据库)的数据的安全性,降低应用安全风险。
图2示出了本发明的另一个实施例,一种应用安全防御方法,应用安全防御方法运行于Spring框架,该方法包括:
S201当接收到HTTP请求报文时,解析HTTP请求报文,得到解析后数据包;解析后数据包包括:消息报头参数和请求正文参数。
优选地,请求正文参数的获取过程具体为:当HTTP请求报文中的请求正文为Ajax格式数据包时,直接取出请求正文参数;当HTTP请求报文中的请求正文为JSON格式数据包时,进行JSON格式转换,再取出请求正文参数。
S202对解析后数据包进行安全预处理,得到处理结果。
具体的,安全预处理是指在得到解析后数据包时,不直接进行预设黑名单匹配,而是先对解析后数据包进行处理,具体处理的内容根据实际设置执行。
安全预处理包括以下任意一种或多种:预设URL校验、消息报头校验、消息报头特殊字符替换、请求正文参数(parameter)校验、请求正文特殊字符替换、编码转义格式。
上述任意一种安全预处理方式都可以单独控制其开启和关闭,只有在开启时才会执行相应的处理过程。工程师可根据实际情况人工调整相应安全预处理方式的开关,且此安全预处理是基于Spring框架开发,能够在1-2秒内实现开启或关闭,响应速度快。
例如:当预设URL校验开启时,判断解析后数据包是否为预设URL,若是,处理结果为无需黑名单匹配,跳转至S203。
预设URL是指一些特殊的URL,只要是这些URL,可享受VIP待遇,直接放行,无需执行后面的预设黑名单匹配。预设URL校验给予了一些特殊URL高级的权限,能够被快速执行,提高响应速度。
消息报头校验和消息报头特殊字符替换是针对消息报道参数进行处理;请求正文参数校验和请求正文特殊字符替换是针对请求正文参数进行处理;而编码转义格式是针对整个解析后数据包进行处理,根据设计要求,将现在的一种编码格式转换成另一种指定的编码格式。
S203当处理结果为无需黑名单匹配时,将经过安全预处理后的解析后数据包写入云数据库。
S204将消息报头参数和请求正文参数分别在预设黑名单中进行匹配具体为:S214当处理结果为需要黑名单匹配时,将经过安全预处理后的消息报头参数和请求正文参数分别在预设黑名单中进行匹配。
S205当消息报头参数和/或请求正文参数匹配中了预设黑名单中的黑名单参数,执行安全防御操作。安全防御操作有多种,根据实际需求自行设置,例如:丢弃接收到的HTTP请求报文;跳转至错误中断页等。可选择一种作为安全防御操作,也可多种结合使用。
S206当消息报头参数和请求正文参数未匹配中预设黑名单中的黑名单参数,将经过安全预处理后的解析后数据包写入云数据库。
可选地,当日志记录开启时,记录对接收到的HTTP请求报文的处理过程。
具体的,本实施例与上述实施例相同部分的解释请参见上述实施例,在此不再详细描述。
本实施例中在预设黑名单匹配前添加了安全预处理,对解析后数据包先进行预处理,降低其具有攻击性的概率,提高应用安全性。且安全预处理可动态管理,支持人工针对性调整,可灵活适应实际多变情况,使用体验好。
若应用安全防御方法采用了安全预处理,且安全预处理包括了上述所有的处理方式,它们实现的流程图请参见图3:
步骤1、判断解析后数据包是否为预设URL,若是,执行13,若否,执行步骤2;
步骤2、对解析后数据包进行编码转义格式处理;
步骤3、对消息报头参数进行消息报头校验,若通过,执行步骤4,若未通过,执行步骤7;
步骤4、消息报头特殊字符替换;
步骤5、对请求正文参数进行请求正文参数校验,若通过,执行步骤6,若未通过,执行步骤7;
步骤6、请求正文特殊字符替换;步骤7、预设黑名单匹配,若匹配成功(说明有攻击性),则执行步骤8,若匹配不成功(说明安全),则执行步骤13;
步骤8、丢弃解析后数据包(即丢弃接收到的HTTP请求报文);
步骤9、判断是否有中断请求,若是,执行步骤10,若否,结束;
步骤10、错误中断页判断,即判断是否正在定制404页面,若有,执行步骤11,若无,执行步骤12;
步骤11、返回定制404页面;
步骤12、返回默认404页面;
步骤13、写入数据库。
需要注意的是,步骤3-6若同时开启,步骤3-4和步骤5-6可以同步进行,不规定具体的先后顺序。
图4示出了本发明一个***实施例,一种应用安全防御***,包括:
解析模块10,用于当接收到HTTP请求报文时,解析HTTP请求报文,得到解析后数据包;解析后数据包包括:消息报头参数和请求正文参数。
具体的,HTTP请求报文为了安全性考虑是经过加密的,因此,需要对其解析才可取出消息报头和请求正文中的参数。
消息报头参数包括:Accept、Host、Referer、Accept-Language、Accept-Encoding、User-Agent、Connection、Cookie等参数的值。请求正文分为Ajax和JSON格式,但JSON格式的数据包需要单独处理。在实际使用时,通过Java开发技术获取消息报头参数和请求正文。
优选地,请求正文参数的获取过程具体为:
解析模块10,用于当HTTP请求报文中的请求正文为Ajax格式数据包时,直接取出请求正文参数;以及,当HTTP请求报文中的请求正文为JSON格式数据包时,进行JSON格式转换,再取出请求正文参数。
Ajax和JSON是常用的数据包格式,本实施例可兼容两种数据包格式的处理和安全判断,兼容性高。
匹配模块20,与解析模块10电连接,用于将消息报头参数和请求正文参数分别在预设黑名单中进行匹配。
具体的,预设黑名单是根据经验、历史碰到的攻击代码等预先设置的,预设黑名单中存在多个黑名单参数。具体的例子请参见对应的方法实施例,在此不再赘述。
预设黑名单中的黑名单参数可被更新、修改,与时俱进,提高攻击代码的覆盖性,保证HTTP请求报文的安全性。
执行模块30,与匹配模块20电连接,用于当消息报头参数和/或请求正文参数匹配中了预设黑名单中的黑名单参数,执行安全防御操作。
具体的,在提取了消息报头参数和请求正文参数后,会让他们分别与预设黑名单中的各黑名单参数进行匹配,如果预设黑名单中发现了和消息报头参数一样的,或,预设黑名单中发现了和请求正文参数一样的,或,预设黑名单中发现了和请求正文参数、洗牌报头参数一样的黑名单参数,就认为消息报头参数和/或请求正文参数匹配到了黑名单参数,说明此条HTTP请求报文具有攻击性,需要特殊处理。具体的例子请参见对应的方法实施例,在此不再赘述。
安全防御操作有多种,根据实际需求自行设置,例如:丢弃接收到的HTTP请求报文;跳转至错误中断页等。可选择一种作为安全防御操作,也可多种结合使用。
例如:两者结合使用,若发现接收到的HTTP请求报文为攻击性报文,则将其丢弃,并跳转到错误中断页面。
错误中断页包括:定制404页面或默认404页面。如果存在定制404页面,则跳转到定制404页面;若不存在定制404页面,则跳转到默认404页面。
跳转至错误中断页相当于一个中断请求,根据实际需求选择此中断请求的开启和关闭,当开启时,就可跳转到错误中断页,关闭时,则不跳转到错误中断页。
执行模块30,进一步用于当消息报头参数和请求正文参数未匹配中预设黑名单中的黑名单参数,将解析后数据包写入云数据库。
具体的,如果消息报头参数和请求正文参数都未匹配到黑名单参数,说明此条HTTP请求报文是正常的报文,可将其写入云数据库,进行后续的正常操作。
可选地,本实施例的***还包括:记录模块,用于当日志记录开启时,记录对接收到的HTTP请求报文的处理过程。
具体的,日志记录可根据实际需求开启或关闭,开启时进行日志记录,便于后续的统计,关闭时,则无需进行日志记录。
本实施例的应用安全防御方法是基于Spring框架设置,即使业务***部署于云平台,也能在传输过程中使用加密数据包,直接从Spring框架层面进行数据包的安全检测,保证写入到云平台(即云数据库)的数据的安全性,降低应用安全风险。
图5示出了本发明另一个***实施例,一种应用安全防御***,包括:
解析模块10,用于当接收到HTTP请求报文时,解析HTTP请求报文,得到解析后数据包;解析后数据包包括:消息报头参数和请求正文参数。
优选地,请求正文参数的获取过程具体为:
解析模块10,用于当HTTP请求报文中的请求正文为Ajax格式数据包时,直接取出请求正文参数;以及,当HTTP请求报文中的请求正文为JSON格式数据包时,进行JSON格式转换,再取出请求正文参数。
预处理模块40,与解析模块10和执行模块30电连接,用于对解析后数据包进行安全预处理,得到处理结果。
具体的,安全预处理是指在得到解析后数据包时,不直接进行预设黑名单匹配,而是先对解析后数据包进行处理,具体处理的内容根据实际设置执行。
安全预处理包括以下任意一种或多种:预设URL校验、消息报头校验、请求正文参数校验、请求正文特殊字符替换、消息报头特殊字符替换、编码转义格式。
上述任意一种安全预处理方式都可以单独控制其开启和关闭,只有在开启时才会执行相应的处理过程。工程师可根据实际情况人工调整相应安全预处理方式的开关,且此安全预处理是基于Spring框架开发,能够在1-2秒内实现开启或关闭,响应速度快。
例如:预处理模块40,当预设URL校验开启时,判断解析后数据包是否为预设URL,若是,处理结果为无需黑名单匹配。
预设URL是指一些特殊的URL,只要是这些URL,可享受VIP待遇,直接放行,无需执行后面的预设黑名单匹配。预设URL校验给予了一些特殊URL高级的权限,能够被快速执行,提高响应速度。
消息报头校验和消息报头特殊字符替换是针对消息报道参数进行处理;请求正文参数校验和请求正文特殊字符替换是针对请求正文参数进行处理;而编码转义格式是针对整个解析后数据包进行处理,根据设计要求,将现在的一种编码格式转换成另一种指定的编码格式。
执行模块30,进一步用于当处理结果为无需黑名单匹配时,将经过安全预处理后的解析后数据包写入云数据库。
匹配模块20,用于将消息报头参数和请求正文参数分别在预设黑名单中进行匹配具体为:匹配模块20,用于当处理结果为需要黑名单匹配时,将经过安全预处理后的消息报头参数和请求正文参数分别在预设黑名单中进行匹配。
执行模块30,用于当消息报头参数和/或请求正文参数匹配中了预设黑名单中的黑名单参数,执行安全防御操作;以及,当消息报头参数和请求正文参数未匹配中预设黑名单中的黑名单参数,将解析后数据包写入云数据库。
可选地,本实施例的***还包括:记录模块,用于当日志记录开启时,记录对接收到的HTTP请求报文的处理过程。
具体的,此***实施例的具体实施过程与上述对应方法实施例中的具体实施过程相同,在此不再详细描述。
本实施例中在预设黑名单匹配前添加了安全预处理,对解析后数据包先进行预处理,降低其具有攻击性的概率,提高应用安全性。且安全预处理可动态管理,支持人工针对性调整,可灵活适应实际多变情况,使用体验好。
应当说明的是,上述实施例均可根据需要自由组合。以上仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种应用安全防御方法,其特征在于,所述应用安全防御方法运行于Spring框架,该方法包括:
当接收到HTTP请求报文时,解析所述HTTP请求报文,得到解析后数据包;所述解析后数据包包括:消息报头参数和请求正文参数;
将所述消息报头参数和所述请求正文参数分别在预设黑名单中进行匹配;
当所述消息报头参数和/或所述请求正文参数匹配中了预设黑名单中的黑名单参数,执行安全防御操作。
2.如权利要求1所述的应用安全防御方法,其特征在于,所述请求正文参数的获取过程具体为:
当所述HTTP请求报文中的请求正文为Ajax格式数据包时,直接取出所述请求正文参数;
当所述HTTP请求报文中的请求正文为JSON格式数据包时,进行JSON格式转换,再取出所述请求正文参数。
3.如权利要求1所述的应用安全防御方法,其特征在于,所述安全防御操作包括以下任意一种或多种:
丢弃接收到的HTTP请求报文;
跳转至错误中断页。
4.如权利要求1所述的应用安全防御方法,其特征在于,所述当接收到HTTP请求报文时,解析所述HTTP请求报文,得到解析后数据包之后还包括:
对所述解析后数据包进行安全预处理,得到处理结果;
当所述处理结果为无需黑名单匹配时,将经过安全预处理后的解析后数据包写入云数据库。
5.如权利要求4所述的应用安全防御方法,其特征在于,所述将消息报头参数和所述请求正文参数分别在预设黑名单中进行匹配具体为:
当所述处理结果为需要黑名单匹配时,将经过安全预处理后的消息报头参数和请求正文参数分别在预设黑名单中进行匹配。
6.如权利要求4所述的应用安全防御方法,其特征在于,所述安全预处理包括:预设URL校验;
当所述解析后数据包为预设URL时,所述处理结果为无需黑名单匹配。
7.如权利要求4所述的应用安全防御方法,其特征在于,所述安全预处理包括以下任意一种或多种:
消息报头校验、请求正文参数校验、请求正文特殊字符替换、消息报头特殊字符替换、编码转义格式。
8.一种应用安全防御***,其特征在于,包括:
解析模块,用于当接收到HTTP请求报文时,解析所述HTTP请求报文,得到解析后数据包;所述解析后数据包包括:消息报头参数和请求正文参数;
匹配模块,用于将所述消息报头参数和所述请求正文参数分别在预设黑名单中进行匹配;
执行模块,用于当所述消息报头参数和/或所述请求正文参数匹配中了预设黑名单中的黑名单参数,执行安全防御操作。
9.如权利要求8所述的应用安全防御***,其特征在于,还包括:
预处理模块,用于对所述解析后数据包进行安全预处理,得到处理结果;
所述执行模块,进一步用于当所述处理结果为无需黑名单匹配时,将经过安全预处理后的解析后数据包写入云数据库。
10.如权利要求9所述的应用安全防御***,其特征在于,所述匹配模块,用于将所述消息报头参数和所述请求正文参数分别在预设黑名单中进行匹配具体为:
所述匹配模块,用于当所述处理结果为需要黑名单匹配时,将经过安全预处理后的消息报头参数和请求正文参数分别在预设黑名单中进行匹配。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811191644.8A CN109347820B (zh) | 2018-10-12 | 2018-10-12 | 一种应用安全防御方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811191644.8A CN109347820B (zh) | 2018-10-12 | 2018-10-12 | 一种应用安全防御方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109347820A true CN109347820A (zh) | 2019-02-15 |
CN109347820B CN109347820B (zh) | 2021-10-22 |
Family
ID=65309859
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811191644.8A Active CN109347820B (zh) | 2018-10-12 | 2018-10-12 | 一种应用安全防御方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109347820B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116861439A (zh) * | 2023-06-21 | 2023-10-10 | 三峡高科信息技术有限责任公司 | 一种组件化方式实现业务***防sql注入的方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105072109A (zh) * | 2015-08-06 | 2015-11-18 | 福建天晴数码有限公司 | 防止跨站脚本攻击的方法及*** |
US20170134407A1 (en) * | 2015-11-09 | 2017-05-11 | Salesforce.Com, Inc. | Identifying Attack Patterns in Requests Received by Web Applications |
CN107003976A (zh) * | 2014-12-16 | 2017-08-01 | 慧与发展有限责任合伙企业 | 基于可准许活动规则确定可准许活动 |
CN107046518A (zh) * | 2016-02-05 | 2017-08-15 | 阿里巴巴集团控股有限公司 | 网络攻击的检测方法及装置 |
CN107204982A (zh) * | 2017-06-13 | 2017-09-26 | 成都四方伟业软件股份有限公司 | 交互式数据***通用安全防护*** |
CN108259425A (zh) * | 2016-12-28 | 2018-07-06 | 阿里巴巴集团控股有限公司 | 攻击请求的确定方法、装置及服务器 |
-
2018
- 2018-10-12 CN CN201811191644.8A patent/CN109347820B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107003976A (zh) * | 2014-12-16 | 2017-08-01 | 慧与发展有限责任合伙企业 | 基于可准许活动规则确定可准许活动 |
CN105072109A (zh) * | 2015-08-06 | 2015-11-18 | 福建天晴数码有限公司 | 防止跨站脚本攻击的方法及*** |
US20170134407A1 (en) * | 2015-11-09 | 2017-05-11 | Salesforce.Com, Inc. | Identifying Attack Patterns in Requests Received by Web Applications |
CN107046518A (zh) * | 2016-02-05 | 2017-08-15 | 阿里巴巴集团控股有限公司 | 网络攻击的检测方法及装置 |
CN108259425A (zh) * | 2016-12-28 | 2018-07-06 | 阿里巴巴集团控股有限公司 | 攻击请求的确定方法、装置及服务器 |
CN107204982A (zh) * | 2017-06-13 | 2017-09-26 | 成都四方伟业软件股份有限公司 | 交互式数据***通用安全防护*** |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116861439A (zh) * | 2023-06-21 | 2023-10-10 | 三峡高科信息技术有限责任公司 | 一种组件化方式实现业务***防sql注入的方法 |
CN116861439B (zh) * | 2023-06-21 | 2024-04-12 | 三峡高科信息技术有限责任公司 | 一种组件化方式实现业务***防sql注入的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109347820B (zh) | 2021-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Schuster et al. | You autocomplete me: Poisoning vulnerabilities in neural code completion | |
CN107026821B (zh) | 报文的处理方法及装置 | |
Fielding et al. | Hypertext transfer protocol (HTTP/1.1): Semantics and content | |
US11140181B2 (en) | Web traffic logging system and method for detecting web hacking in real time | |
US10129285B2 (en) | End-to-end taint tracking for detection and mitigation of injection vulnerabilities in web applications | |
Fielding et al. | RFC 7231: Hypertext Transfer Protocol (HTTP/1.1): semantics and content | |
US8844033B2 (en) | Systems, methods, and media for detecting network anomalies using a trained probabilistic model | |
EP2144420B1 (en) | Web application security filtering | |
US11038851B2 (en) | Tokenizing network appliance and method | |
CN102045201B (zh) | 一种内网服务器集群自动升级方法及其*** | |
CN106790007A (zh) | 基于XSS和CSRF的Web攻击防御***及其方法 | |
CN113194058B (zh) | Web攻击检测方法、设备、网站应用层防火墙及介质 | |
CN104954345B (zh) | 基于对象分析的攻击识别方法及装置 | |
WO2011014355A1 (en) | Extensible protocol validation | |
CN107483409B (zh) | 一种面向工控操作***的操作指令实时监测回显的方法 | |
CN109040097A (zh) | 一种跨站脚本攻击的防御方法、装置、设备和存储介质 | |
CN106453352A (zh) | 一种单***多平台身份验证方法 | |
CN108810003A (zh) | 一种多业务方消息接入的安全验证方案 | |
CN109347820A (zh) | 一种应用安全防御方法及*** | |
Fielding et al. | RFC 9110: HTTP Semantics | |
CN108287874B (zh) | 一种db2数据库管理方法及装置 | |
CN108282443A (zh) | 一种爬虫行为识别方法和装置 | |
CN114760083B (zh) | 一种攻击检测文件的发布方法、装置及存储介质 | |
CN110427310A (zh) | 一种脚本日志处理方法、装置和计算机可读存储介质 | |
CN109726557A (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 |