防范http post泛洪攻击的方法及防火墙的制作方法
【技术领域】
[0001]本发明涉及安全检测技术领域,尤其涉及防范HTTP POST泛洪攻击的方法及防火工回O
【背景技术】
[0002]HTTP POST (超文本协议防御)洪泛攻击作为APP-DDOS (应用分布式攻击)攻击中的一种,通过向服务器提交合法的POST (防御)请求而达到访问服务器的目的,而在使用传统的网络层防火墙检测post请求时,从内容上看,攻击请求和合法请求是一致的,使攻击请求难以从合法请求中识别出来,增加了防御的难度,而且容易导致误判。例如:攻击请求经过精心构造的提交内容可以选择那些消耗磁盘10(输入输出)和需要进行数据库查询和存储的提交操作,而这些操作均是合法的行为,因此,最终导致服务器资源被大量的消耗了,故POST洪泛攻击也是一种危害较大的APP-DDOS攻击方法。因现有的防火墙无法识别出攻击请求和合法的请求,导致防火墙的安全检测性能偏低,安全检测准确度偏低,进而使得访问服务器的安全性偏低。
[0003]上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
【发明内容】
[0004]本发明的主要目的在于提供一种防范HTTP POST泛洪攻击的方法及防火墙,旨在解决现有的防火墙无法识别出攻击请求和合法的请求,导致防火墙的安全检测性能偏低,安全检测准确度偏低,进而使得访问服务器的安全性偏低的问题。
[0005]为实现上述目的,本发明提供的一种防范HTTP POST泛洪攻击的方法,包括以下步骤:
[0006]在客户端发送的POST请求为攻击请求时,向所述客户端反馈响应信息,所述响应信息包括一段JS代码,以供所述客户端执行所述JS代码并根据所述JS代码设置cookie首部,cookie的内容为JS代码计算后的验证信息;
[0007]在再次接收到所述客户端的POST请求时,判断再次接收到的POST请求对应的cookie是否包括所述验证信息;
[0008]在所述cookie未包括验证信息时,确定所述客户端未通过防火墙的验证,将所述客户端加入黑名单,阻止所述客户端访问服务器。
[0009]优选地,所述判断再次接收到的POST请求对应的cookie是否包括所述验证信息的步骤之后,还包括:
[0010]在所述cookie包括验证信息时,确定所述客户端通过防火墙的验证,将所述客户端加入白名单,允许所述客户端访问服务器。
[0011]优选地,所述向所述客户端反馈响应信息,所述响应信息包括一段JS代码的步骤之前,还包括:
[0012]判断客户端发送的POST请求是否为攻击请求。
[0013]优选地,所述判断客户端发送的POST请求是否为攻击请求的步骤包括:
[0014]判断客户端发送的POST请求的速率值是否大于预设速率阈值;
[0015]在客户端发送的POST请求的速率值大于预设速率阈值时,判定所述客户端发送的POST请求为攻击请求;
[0016]在客户端发送的POST请求的速率值不大于预设速率阈值时,判断所述客户端发送的POST请求为合法请求。
[0017]优选地,所述向所述客户端反馈响应信息,所述响应信息包括一段JS代码的步骤包括:
[0018]构建所述攻击请求的响应信息,所述响应信息为HTTP 503状态码,所述状态码的首部包含retry字段,且携带一段JS代码;
[0019]向所述客户端反馈响应信息。
[0020]此外,为实现上述目的,本发明还进一步提供一种防火墙,包括:
[0021]接发模块,用于在客户端发送的POST请求为攻击请求时,向所述客户端反馈响应信息,所述响应信息包括一段JS代码,以供所述客户端执行所述JS代码并根据所述JS代码设置cookie首部,cookie的内容为JS代码计算后的验证信息;
[0022]判断模块,用于在再次接收到所述客户端的POST请求时,判断再次接收到的POST请求对应的cookie是否包括所述验证信息;
[0023]处理模块,用于在所述cookie未包括验证信息时,判定所述客户端未通过防火墙的验证,将所述客户端加入黑名单,阻止所述客户端访问服务器。
[0024]优选地,所述处理模块,还用于在所述cookie包括验证信息时,确定所述客户端通过防火墙的验证,将所述客户端加入白名单,允许所述客户端访问服务器。
[0025]优选地,所述判断模块,还用于判断客户端发送的POST请求是否为攻击请求。
[0026]优选地,所述判断模块包括判断单元和判定单元,
[0027]所述判断单元,用于判断客户端发送的POST请求的速率值是否大于预设速率阈值;
[0028]所述判定单元,用于在客户端发送的POST请求的速率值大于预设速率阈值时,判断所述客户端发送的POST请求为攻击请求;还用于在客户端发送的POST请求的速率值不大于预设速率阈值时,判断所述客户端发送的POST请求为合法请求。
[0029]优选地,所述接发模块包括构建单元和接发单元,
[0030]所述构建单元,用于构建所述攻击请求的响应信息,所述响应信息为HTTP 503状态码,所述状态码的首部包含retry字段,且携带一段JS代码;
[0031]所述接发单元,用于向所述客户端反馈响应信息。
[0032]本发明通过强制加入JS代码,在客户端无法执行JS代码时,无法在cookie中携带验证信息,有效避免无法识别攻击请求和合法请求,导致防火墙的安全检测性能偏低,安全检测准确度偏低,进而使得访问服务器的安全性偏低的问题。提高了防火墙的安全监测性能、安全监测准确度,进而提高了访问服务器的安全性。
【附图说明】
[0033]图1为本发明防范HTTP POST泛洪攻击的方法的较佳实施例的流程示意图;
[0034]图2为本发明判断客户端发送的POST请求为攻击请求一实施例的流程示意图;
[0035]图3为图1中步骤SlO —实施例的细化流程示意图;
[0036]图4为本发明防火墙的较佳实施例的功能模块示意图;
[0037]图5为图4中接发模块的一实施例的细化功能模块示意图;
[0038]图6为图4中判断模块一实施例的细化功能模块示意图。
[0039]本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
【具体实施方式】
[0040]应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0041]本发明实施例的主要解决方案是:在客户端发送的POST请求为攻击请求时,向所述客户端反馈响应信息,所述响应信息包括一段JS代码,以供所述客户端执行所述JS (javascript脚本语言)代码并根据所述JS代码设置cookie (加密信息)首部,cookie的内容为JS代码计算后的验证信息;在再次接收到所述客户端的POST请求时,判断再次接收到的POST请求对应的cookie是否包括所述验证信息;在所述cookie未包括验证信息时,判定所述客户端未通过防火墙的验证,将所述客户端加入黑名单,阻止所述客户端访问服务器。通过强制加入JS代码,在客户端无法执行JS代码时,无法在cookie中携带验证信息,有效避免无法识别攻击请求和合法请求,导致防火墙的安全检测性能偏低,安全检测准确度偏低,进而使得访问服务器的安全性偏低的问题。提高了防火墙的安全监测性能、安全监测准确度,进而提高了访问服务器的安全性。
[0042]由于现有的防火墙在检测HTTP POST请求时,无法识别出攻击请求和合法的请求,导致防火墙的安全检测性能偏低,安全检测准确度偏低,进而使得访问服务器的安全性偏低。
[0043]基于上述问题,本发明提供一种防范HTTP POST泛洪攻击的方法。
[0044]参照图1,图1为本发明防范HTTP POST泛洪攻击的方法的第一实施例的流程示意图。
[0045]在一实施例中,所述防范HTTP POST泛洪攻击的方法包括:
[0046]步骤S10,在客户端发送的POST请求为攻击请求时,向所述客户端反馈响应信息,所述响应信息包括一段JS代码,以供所述客户端执行所述JS代码并根据所述JS代码设置cookie首部,cookie的内容为JS代码计算后的验证信息;
[0047]执行本发明防范HTTP POST泛洪攻击的方法的主体为防火墙,进一步地,为安装或加载与防火墙的防范HTTP POST泛洪攻击的应用程序。在本实施例中执行主体