一种基于规则的Java的web安全防御方法与流程

文档序号:14796355发布日期:2018-06-29 06:35阅读:来源:国知局
技术特征:

1.一种基于规则的Java的web安全防御方法,用于判断请求中的参数是否存在攻击行为,其特征在于,所述基于规则的Java的web安全防御方法具体包括下述步骤:

步骤一:获取当前请求地址,判断当前请求是否是静态文件;

如果当前请求地址是静态文件,则不对当前请求做后续的参数过滤处理,直接进入正常业务流程函数中;

如果当前请求不是静态文件,判断当前请求地址是否存在于请求地址白名单列表中:若当前请求地址在请求地址白名单列表中,即当前请求地址是不需要过滤的白名单,当前请求直接进入正常业务函数中,即不再继续后续步骤;如果当前请求地址不存在于请求地址白名单列表中,则进入步骤二;

步骤二:首先剥离请求中的参数及参数值,具体如下:

如果当前请求是Get请求,则直接配置获得url及问号后面的参数和参数值;

如果当前请求是Post请求,则分下述三种情况处理:1、请求体是key1=value1&key2=value2格式的请求,其中,key1表示第一个参数名,value1表示参数key1的参数值,key2表示第二个参数名,value2表示参数key2的参数值,则直接获取参数key1和key2的请求值;2、请求体整个是json格式的请求,则利用json解析把参数剥离出来;3、请求体是Post中multipart格式的请求,则剥离出请求体中各参数及参数值;

步骤三:步骤二中剥离出请求中的参数及参数值后,所有的参数分别进入过滤函数对参数值进行校验,即进行白名单策略的校验;首先取配置文件中的白名单策略,组成白名单策略列表,然后遍历白名单策略列表:

如果当前请求是非Post类型中的multipart格式的请求类型,把参数值分别与每一条白名单策略做正则匹配;如果参数值无法匹配白名单策略列表中的任意一条白名单策略,则判断参数值中存在恶意行为,把当前请求地址、存在恶意操作的文件参数名记录到日志中并且阻断当前操作,抛一个非法字符的异常,不再继续后续步骤;如果参数值能匹配白名单策略列表中的任意一条白名单策略,则该参数值进入后续步骤四的黑名单处理流程;

如果当前请求是Post类型中的multipart格式的请求类型,把参数值分别与每一条白名单策略做正则匹配;如果参数值无法匹配白名单策略列表中的任意一条白名单策略,则判断参数值中存在恶意行为,把当前请求地址、存在恶意操作的文件参数名记录到日志中并且阻断当前操作,抛一个非法字符的异常,不再继续后续步骤;如果参数值能匹配白名单策略列表中的任意一条白名单策略,且请求里面不存在上传文件参数,则该参数值进入后续步骤四的黑名单处理流程;如果参数值能匹配白名单策略列表中的任意一条白名单策略,且请求里面存在上传文件参数,则对文件后缀进行提取,并判断该文件后缀是否是jsp或者jspx类型的恶意文件后缀:如果判断是jsp或者jspx类型的恶意文件后缀,则把当前请求地址、存在恶意操作的文件参数名记录到日志中,并且阻断当前请求,抛一个非法字符的异常,不再继续后续步骤;否则文件结束过滤流程,进入程序正常业务函数流程;

步骤四:通过步骤三的过滤后,再对参数值进行一轮黑名单策略的测试:如果参数匹配到策略中的黑名单列表,则把当前请求地址、存在恶意操作的参数及恶意字符记录到日志中,并且阻断当前请求;如果参数未匹配到策略中的黑名单列表,则让参数继续进入业务函数中。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1