优选为防火工回O
[0048]客户端用户在需要访问服务器时,发出访问请求,例如,为POST请求。防火墙拦截客户端发送的POST请求,并对客户端发出的POST请求进行安全检测。防火墙在接收到客户端发送的POST请求后,判断接收到的客户端发送的POST请求是否为攻击请求,在客户端发送的post请求为攻击请求时,向所述客户端反馈响应信息。
[0049]具体的,参考图2,所述判断客户端发送的POST请求为攻击请求的过程可以包括:
[0050]步骤SI I,判断客户端发送的POST请求的速率值是否大于预设速率阈值;若是,则执行步骤S12,若否,则执行步骤S13。
[0051]步骤S12,在客户端发送的POST请求的速率值大于预设速率阈值时,判断所述客户端发送的POST请求为攻击请求;
[0052]步骤S13,在客户端发送的POST请求的速率值不大于预设速率阈值时,判断所述客户端发送的POST请求为合法请求。
[0053]所述防火墙获取客户端发送POST请求的速率值,并将所获取的速率值与预设速率阈值比对。所述预设速率阈值可以是100MB或70MB等,为根据经验值设定。
[0054]在所获取的速率值大于预设速率阈值时,所述防火墙判定为攻击请求;在所获取的速率值不大于预设速率阈值时,判定为合法请求。在本发明其他实施例中,也还可以采取其他方式判断是否为攻击请求,例如,所述POST请求是否包括合法请求标识信息,在包括合法请求标识时,判断为合法请求,在未包括合法请求标识时,判断为攻击请求。
[0055]所述防火墙在客户端发送的POST请求为攻击请求时,进入防御模式,即开启防御模块,以对攻击请求进行防御,防止攻击请求占用服务器资源。向所述客户端反馈响应信息,所述响应信息包括一段JS代码。
[0056]具体的,参考图3,所述向客户端反馈响应信息的过程可以包括:
[0057]步骤S14,构建所述攻击请求的响应信息,所述响应信息为HTTP 503状态码,所述状态码的首部包含retry字段,且携带一段JS代码;
[0058]步骤S15,向所述客户端反馈响应信息。
[0059]在接收到的POST请求为攻击请求时,所述防火墙构建所述攻击请求的响应信息,所述响应信息构建为HTTP 503状态码,所述HTTP 503状态码的首部包含retry字段,同时实体携带一段JS代码,并关闭所述客户端与服务器的连接。将构建的响应信息发送至攻击请求对应的客户端。
[0060]所述客户端在接收到所述响应信息时,再次生成POST请求,所述POST请求根据接收到的响应信息构建。所述客户端获取所述响应信息中的JS代码,并执行所述JS代码,所述再次构建的POST请求对应的cookie的首部通过JS代码设置,且通过执行所述JS代码生成验证信息,所述客户端的应用在能执行所述JS代码时,生成验证信息,在所述客户端的应用不能执行所述JS代码时,不能生成所述验证信息,即无法在cookie中携带验证信息,若无法执行JS代码,则表示所述客户端的应用为攻击应用。例如,以所述应用以浏览器应用为例,若所述浏览器应用无法执行JS代码,则无法生成验证信息,若所述浏览器应用能执行JS代码,则能生成验证信息,并在cookie中携带验证信息。所述客户端在构建好再次发送的POST请求后,向所述服务器发送再次构建的POST请求。
[0061 ] 步骤S20,在再次接收到所述客户端的POST请求时,判断再次接收到的POST请求对应的cookie是否包括所述验证信息;
[0062]在判断接收到的POST请求为攻击请求后,所述防火墙接收所述客户端再次发送的POST请求,在接收到所述客户端再次发送的POST请求时,获取所述再次接收到的POST请求对应的cookie,判断再次接收到的POST请求对应的cookie是否包括验证信息,即判断所述客户端的应用是否为攻击应用。
[0063]若包括验证信息,则执行步骤S40,若不包括验证信息,则执行步骤S30。
[0064]步骤S30,在所述cookie未包括验证信息时,确定所述客户端未通过防火墙的验证,将所述客户端加入黑名单,阻止所述客户端访问服务器;
[0065]步骤S40,在所述cookie包括验证信息时,确定所述客户端通过防火墙的验证,将所述客户端加入白名单,允许所述客户端访问服务器。
[0066]在所述cookie包括验证信息时,所述防火墙判断所述客户端的应用不为攻击应用,将所述客户端加入白名单,允许所述客户端访问服务器,并将所述再次接收到的POST请求转发服务器;若所述cookie不包括验证信息,判断所述客户端的应用为攻击应用,将所述客户端加入黑名单,禁止所述客户端访问服务器。本实施例通过客户端分析和执行防火墙基于攻击POST请求反馈的响应信息中的JS代码产生验证信息,在能执行JS代码时,在cookie中加入验证信息,在不能执行JS代码时,不在cookie中加入验证信息,提高安全检测的效率,且将产生验证信息的计算过程在客户端实现,防火墙侧只需要简单的判断是否在cookie中包括验证信息,使得降低了防火墙侧的计算过程,节省了防火墙侧的计算资源,提尚防火墙的性能。
[0067]本实施例通过强制加入JS代码,在客户端无法执行JS代码时,无法在cookie中携带验证信息,有效避免无法识别攻击请求和合法请求,导致防火墙的安全检测性能偏低,安全检测准确度偏低,进而使得访问服务器的安全性偏低的问题。提高了防火墙的安全监测性能、安全监测准确度,进而提高了访问服务器的安全性。
[0068]对应的,本发明还进一步提供一种防火墙。
[0069]参照图4,图4为本发明防火墙的较佳实施例的功能模块示意图。
[0070]在一实施例中,所述防火墙包括:接发模块10、判断模块20及处理模块30。
[0071]所述接发模块10,用于在客户端发送的POST请求为攻击请求时,向所述客户端反馈响应信息,所述响应信息包括一段JS代码,以供所述客户端执行所述JS代码并根据所述JS代码设置cookie首部,cookie的内容为JS代码计算后的验证信息;
[0072]客户端用户在需要访问服务器时,发出访问请求,例如,为POST请求。防火墙拦截客户端发送的POST请求,并对客户端发出的POST请求进行安全检测。
[0073]所述判断模块20,用于在接收到客户端发送的POST请求后,判断接收到的客户端发送的POST请求是否为攻击请求,在客户端发送的POST请求为攻击请求时,向所述客户端反馈响应信息。
[0074]具体的,参考图5,所述判断模块20包括:判断单元21和判定单元22,
[0075]所述判断单元21,用于判断客户端发送的POST请求的速率值是否大于预设速率阈值;
[0076]所述判定单元22,用于在客户端发送的POST请求的速率值大于预设速率阈值时,判断所述客户端发送的POST请求为攻击请求;还用于在客户端发送的POST请求的速率值不大于预设速率阈值时,判断所述客户端发送的POST请求为合法请求。
[0077]所述防火墙获取客户端发送POST请求的速率值,并将所获取的速率值与预设速率阈值比对。所述预设速率阈值可以是100MB或70MB等,为根据经验值设定。
[0078]在所获取的速率值大于预设速率阈值时,所述防火墙判定为攻击请求;在所获取的速率值不大于预设速率阈值时,判定为合法请求。在本发明其他实施例中,也还可以采取其他方式判断是否为攻击请求,例如,所述POST请求是否包括合法请求标识信息,在包括合法请求标识时,判断为合法请求,在未包括合法请求标识时,判断为攻击请求。
[0079]所述防火墙在客户端发送的POST请求为攻击请求时,进入防御模式,即开启防御模块,以对攻击请求进行防御,防止攻击请求占用服务器资源。向所述客户端反馈响应信息,所述响应信息包括一段JS代码。
[0080]具体的,参考图6,所述接发模块10包括构建单元11和接发单元12,
[0081]所述构建单元11,用于构建所述攻击请求的响应信息,所述响应信息为HTTP 503状态码,所述状态码的首部包含retry字段,且携带一段JS代码;
[0082]所述接发单元12,用于向所述客户端反馈响应信息。
[0083]在接收到的POST请求为攻击请求时,所述防火墙构建所述攻击请求的响应信息,所述响应信息构建为HTTP 503状态码,所述HTTP 503状态码的首部包含retry字段,同时实体携带一段JS代码,并关闭所述客户端与服务器的连接。将构建的响应信息发送至攻击请求对应的客户端。<