一种网络请求的过滤方法、装置、终端和可读存储介质与流程

文档序号:29913746发布日期:2022-05-06 02:51阅读:77来源:国知局
一种网络请求的过滤方法、装置、终端和可读存储介质与流程

1.本技术属于网络安全技术领域,尤其涉及一种网络请求的过滤方法、装置、终端和可读存储介质。


背景技术:

2.随着互联网技术的发展,网络攻击形式也越来越多。目前常见的网络攻击主要是通过发送携带可执行脚本的网络请求的方式,进行失效的身份认证和会话管理、失效的访问控制、注入漏洞等攻击操作。这类网络攻击会出现一些非法操作,如获取用户数据、修改用户数据等。因此,通常情况下,我们需要对网络请求进行识别,避免存在可执行脚本的网络请求对服务器进行访问,出现网络安全问题。
3.目前,一般通过以下方式实现网络请求的识别:运维人员将可执行脚本中可能出现的变量名、方法名、标签名作为关键词设置到关键词库,当识别出网络请求与关键词库中的一个或多个关键词匹配时,则确认该网络请求为存在可执行脚本的网络请求。
4.然而,当网络请求中出现新的可执行脚本对应的关键词未被收录至关键词库中时,则有可能会出现无法识别出该网络请求为存在可执行脚本的网络请求的情况,并且,对于一些不存在可执行脚本的网络请求,若其与关键词库中的某些关键词匹配时,也可能会出现将该网络请求识别为存在可执行脚本的网络请求的情况。因此,目前的网络请求的识别方式存在准确率低的问题,容易给服务器留下安全隐患。


技术实现要素:

5.本技术提供一种网络请求的过滤方法、装置、终端和可读存储介质,可以提高网络请求的识别准确率,提高网络的安全性。
6.本技术实施例第一方面提供一种网络请求的过滤方法,所述过滤方法包括:
7.拦截当前网络请求,并提取所述当前网络请求的请求参数;
8.对所述请求参数进行拆分,得到一段或多段可疑脚本;
9.调用脚本服务节点分别执行每段所述可疑脚本,并将执行成功的所述可疑脚本确定为可执行脚本;
10.对所述可执行脚本进行过滤处理,并基于处理结果得到不存在可执行脚本的更新后的网络请求。
11.本技术实施例第二方面还提供一种网络请求的过滤装置,包括:
12.提取单元,用于拦截当前网络请求,并提取所述当前网络请求的请求参数;
13.拆分单元,用于对所述请求参数进行拆分,得到一段或多段可疑脚本;
14.执行单元,用于调用脚本服务节点分别执行每段所述可疑脚本,并将执行成功的所述可疑脚本确定为可执行脚本;
15.过滤单元,用于对所述可执行脚本进行过滤处理,并基于处理结果得到不存在可执行脚本的更新后的网络请求。
16.本技术实施例第三方面提供一种终端,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述的网络请求的过滤方法的步骤。
17.本技术实施例第四方面提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述的网络请求的过滤方法的步骤。
18.本技术实施例中,通过拦截当前网络请求,并提取当前网络请求的请求参数,接着,对当前网络请求的请求参数进行拆分,筛选出当前网络请求中所有的可疑脚本,再接着,通过调用脚本服务节点分别执行每段可疑脚本,将执行成功的可疑脚本确定为可执行脚本,使得当前网络请求中存在的可执行脚本均可以全部被筛选出来,因而可以提高网络请求的识别准确率,另外,本技术还通过对请求参数中的可执行脚本进行过滤处理,得到不存在可执行脚本的更新后的网络请求,使得经过过滤处理得到的网络请求为不存在可执行脚本的网络请求,即,经过过滤处理得到的网络请求为合法的不存在安全威胁的网络请求,因此,可以提高网络的安全性。
附图说明
19.图1为本技术实施例提供的网络请求的过滤方法的实现流程示意图。
20.图2为本技术实施例提供的网络请求的过滤方法步骤104的第一流程示意图。
21.图3为本技术实施例提供的网络请求的过滤方法步骤104的第二流程示意图。
22.图4为本技术实施例提供的网络请求的过滤方法的另一实现流程示意图。
23.图5为本技术的实施例提供的网络请求的过滤装置的结构示意图。
24.图6为本技术的实施例提供的终端的示意图。
具体实施方式
25.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
26.随着互联网技术的发展,网络攻击形式也越来越多。目前常见的网络攻击主要是通过发送携带可执行脚本的网络请求的方式,进行失效的身份认证和会话管理、失效的访问控制、注入漏洞等攻击操作。这类网络攻击会出现一些非法操作,如获取用户数据、修改用户数据等。因此,通常情况下,我们需要对网络请求进行识别,避免存在可执行脚本的网络请求对服务器进行访问,出现网络安全问题。
27.目前,一般通过以下方式实现网络请求的识别:运维人员将可执行脚本中可能出现的变量名、方法名、标签名作为关键词设置到关键词库,当识别出网络请求与关键词库中的一个或多个关键词匹配时,则确认该网络请求为存在可执行脚本的网络请求。
28.然而,当网络请求中出现新的可执行脚本对应的关键词未被收录至关键词库中时,则有可能会出现无法识别出该网络请求为存在可执行脚本的网络请求的情况,并且,对于一些不存在可执行脚本的网络请求,若其与关键词库中的某些关键词匹配时,也可能会出现将该网络请求识别为存在可执行脚本的网络请求的情况。因此,目前的网络请求的识
别方式存在准确率低的问题,容易给服务器留下安全隐患。并且,需要耗费运维人员更多的精力进行关键词库的维护。
29.基于此,本技术实施例提供了一种网络请求的过滤方法、装置、终端和可读存储介质,通过拦截当前网络请求,并提取当前网络请求的请求参数,接着,对当前网络请求的请求参数进行拆分,筛选出当前网络请求中所有的可疑脚本,再接着,通过调用脚本服务节点分别执行每段可疑脚本,将执行成功的可疑脚本确定为可执行脚本,使得当前网络请求中存在的可执行脚本均可以全部被筛选出来,因而可以提高网络请求的识别准确率,另外,本技术还通过对请求参数中的可执行脚本进行过滤处理,得到不存在可执行脚本的更新后的网络请求,使得经过过滤处理得到的网络请求为不存在可执行脚本的网络请求,即,经过过滤处理得到的网络请求为合法的不存在安全威胁的网络请求,因此,可以提高网络的安全性。同时,无需运维人员构建和维护关键词库。
30.为了更好的说明本技术的技术方案,下面通过实施例的方式进行举例说明。
31.如图1所示,为本技术实施例提供的一种网络请求的过滤方法的实现流程示意图,该过滤方法可以由终端上配置的网络请求的过滤装置执行。
32.具体的,本技术实施例提供的网络请求的过滤方法可以采用下述步骤101至步骤104实现:
33.步骤101,拦截当前网络请求,并提取当前网络请求的请求参数。
34.本技术实施例中,上述当前网络请求是指实时拦截得到的网络请求,即,当前时刻拦截得到的网络请求,并且,该当前网络请求可以为访问上述终端的网络请求。其中,上述终端可以为服务器或者其他终端设备。
35.在上述提取当前网络请求的请求参数的过程中,可以是指根据当前网络请求的报文格式,将当前网络请求对应的请求参数部分提取出来。
36.其中,上述当前网络请求可以为http报文格式的网络请求或者其他格式的网络请求,本技术对上述当前网络请求的报文格式不做限制。
37.步骤102,对请求参数进行拆分,得到一段或多段可疑脚本。
38.在实际应用中,由于请求参数可以包含一段纯数字字符、纯字母字符或者其他类型的不符合代码逻辑的内容,因此,需要对请求参数进行拆分,将请求参数中不符合代码逻辑的内容剔除,剩下一段或多段有可能是可执行代码的部分,即,一段或多段可疑脚本,再通过步骤103和步骤104的方式使上述请求参数中存在的可执行代码无效化,以避免出现网络安全问题。
39.也就是说,上述对请求参数进行拆分,得到一段或多段可疑脚本可以是指,删除请求参数中包含的纯数字字符段、纯字母字符段或者其他类型的不符合代码逻辑的字符段,得到剩余的一段或多段可疑脚本。
40.可选的,在本技术的一些实施方式中,上述步骤102中,对请求参数进行拆分,得到一段或多段可疑脚本,可以具体通过预先构建的正则表达式,对请求参数进行拆分,得到一段或多段可疑脚本。
41.其中,上述预先构建的正则表达式可以为用于判断一段数据是否符合代码逻辑的正则表达式,其具体可以根据实践经验得到。
42.步骤103,调用脚本服务节点分别执行每段可疑脚本,并将执行成功的可疑脚本确
定为可执行脚本。
43.本技术实施例中,在得到一段或多段可疑脚本之后,需要通过调用脚本服务节点进行验证,分别确认每段可疑脚本是否为可执行脚本,即,通过调用脚本服务节点分别执行每段可疑脚本,将上述一段或多段可疑脚本中执行成功的可疑脚本确定为可执行脚本,将执行不成功的可疑脚本则可以确认其为非可执行脚本。
44.可选的,在本技术的一些实施方式中,上述脚本服务节点可以为jdk(java development kit)的内置脚本引擎。其中,jdk为java语言的软件开发工具包。
45.本技术实施例通过采用jdk内置脚本引擎直接运行测试的方式,代替相关技术中关键词匹配检索的方式,实现网络请求中是否存在可执行脚本的判断,可以使得使用java语言开发的网络服务系统可以拥有非法网络请求更准确的检出率,并且,拥有更稳定的性能,可以有效避免网络安全事件的发生。
46.可选的,在本技术的一些实施方式中,在调用脚本服务节点分别执行每段可疑脚本的过程中,可以通过分别检测脚本服务节点是否生成了执行结果,或者,是否调用了其他功能模块执行相关操作,并在检测到脚本服务节点生成了执行结果,或者,在检测到脚本服务节点调用了其他功能模块执行相关操作,则确认相关的可疑脚本为可执行脚本。
47.步骤104,对可执行脚本进行过滤处理,并基于处理结果得到不存在可执行脚本的更新后的网络请求。
48.由于当前网络请求存在可执行脚本时,有可能对上述终端,或者与上述终端关联的其他终端产生威胁,因此,需要对上述可执行脚本进行过滤处理,并基于处理结果得到不存在可执行脚本的更新后的网络请求,以避免出现网络安全问题。
49.可选的,在本技术的一些实施方式中,如图2所示,上述步骤104可以采用下述步骤201至步骤203的方式实现。
50.步骤201,对可执行脚本进行重构,得到重构后的脚本。
51.可选的,在本技术的一些实施例中,上述对可执行脚本进行重构可以通过向可执行脚本中插入预设字符的方式实现。
52.例如,通过向可执行脚本中插入“空格”、“分号”、“逗号”、“顿号”“左斜杠”、“右斜杠”等等一种或多种类型的预设字符,破坏上述可执行脚本的代码逻辑,使得重构后的脚本为非可执行脚本,即,不可以被执行成功的脚本。
53.步骤202,基于重构后的脚本进行请求参数重组,得到重组后的第一请求参数。
54.本技术实施例中,由于上述步骤102中,对请求参数进行了拆分,因此,在得到重构后的脚本之后,需要利用该重构后的脚本替代其对应的可执行脚本,并基于上述步骤102拆分得到的不符合代码逻辑的内容,以及被确认为非可执行脚本,重新组合得到重组后的第一请求参数,并且,该重组后的第一请求参数为不存在可执行脚本的第一请求参数。
55.步骤203,利用重组后的第一请求参数替换当前网络请求中的请求参数,得到不存在可执行脚本的更新后的网络请求。
56.本技术实施例中,由于重组后的第一请求参数为不存在可执行脚本的第一请求参数,因此,利用该重组后的第一请求参数替换上述当前网络请求中的请求参数,得到的更新后的网络请求也为不存在可执行脚本的网络请求。
57.除了上述图2所示的实施方式以外,如图3所示,可选的,在本技术的一些实施方式
中,上述步骤104还可以采用下述步骤301至步骤302的方式实现。
58.步骤301,从请求参数中删除可执行脚本,得到重组后的第二请求参数;
59.步骤302,利用重组后的第二请求参数替换当前网络请求中的请求参数,得到不存在可执行脚本的更新后的网络请求。
60.即,通过删除当前网络请求的请求参数中的可执行脚本的方式,得到不存在可执行脚本的第二请求参数,并得到不存在可执行脚本的更新后的网络请求。
61.本技术实施例中,通过拦截当前网络请求,并提取当前网络请求的请求参数,接着,对当前网络请求的请求参数进行拆分,筛选出当前网络请求中所有的可疑脚本,再接着,通过调用脚本服务节点分别执行每段可疑脚本,将执行成功的可疑脚本确定为可执行脚本,使得当前网络请求中存在的可执行脚本均可以全部被筛选出来,因而可以提高网络请求的识别准确率,另外,本技术还通过对请求参数中的可执行脚本进行过滤处理,得到不存在可执行脚本的更新后的网络请求,使得经过过滤处理得到的网络请求为不存在可执行脚本的网络请求,即,经过过滤处理得到的网络请求为合法的不存在安全威胁的网络请求,因此,可以提高网络的安全性。
62.可选的,在本技术的一些实施方式中,为了保障上述终端本地环境的运行不受影响,提高本地服务的安全性,并且,提高可疑脚本的执行效率,可选的,在本技术的一些实施方式中,如图4所示,可以预先部署位于隔离环境中的包含多个脚本服务节点的脚本服务集群,上述步骤103中,调用脚本服务节点分别执行每段可疑脚本可以包括,调用在隔离环境中当前处于等待状态的一个或多个脚本服务节点分别执行每段可疑脚本,并得到各段可疑脚本是否为可执行脚本的处理结果。
63.另外,为了避免影响终端对网络请求的响应,以及终端后台程序的参数记录,可选的,在本技术的一些实施方式中,在上述步骤104基于重组后的请求参数得到更新后的网络请求之后,还可以将上述更新后的网络请求发送给处理节点,由该处理节点执行与更新后的网络请求对应的处理操作。
64.可以理解的是,在上述步骤102中,对请求参数进行拆分,若未得到任何可疑脚本,则可以确认上述当前网络请求为不存在可执行脚本的网络请求。另外,在上述步骤103中,调用脚本服务节点分别执行每段可疑脚本之后,若未发现执行成功的可疑脚本,则可以确定当前网络请求为不存在可执行脚本的网络请求。
65.并且,在上述这两种情况下,可以直接将当前网络请求发给上述处理节点,由该处理节点执行与该当前网络请求对应的处理操作。或者,基于上述步骤102中拆分后的数据重组后得到上述当前网络请求,并将该当前网络请求发给上述处理节点,由该处理节点执行与该当前网络请求对应的处理操作。
66.可选的,如图4所示,在一个实际应用中,本技术上述网络请求的过滤方法可以基于以下方式实现:终端上的拦截程序拦截上述当前网络请求,并将当前网络请求发送给处理主控程序,由处理主控程序发送给正则匹配抽取程序,并由该正则匹配抽取程序返回当前网络请求包含的一段或多段可疑脚本,再由处理主控程序将可疑脚本发送给脚本服务接口程序选定的处于等待中的脚本服务节点,并由该脚本服务节点执行该可疑脚本,得到其是否可执行成功的处理结果,并由处理主控程序将可执行成功的可疑脚本确认为可执行脚本,接着,处理主控程序通过数据重构程序,对可执行脚本进行过滤处理,并基于处理结果
得到不存在可执行脚本的更新后的网络请求,最后由处理主控程序将更新后的网络请求返回给拦截程序,并由拦截程序发送给处理程序,由处理程序进行与该更新后的网络请求对应的处理操作,提高了网络请求的识别准确率和网络的安全性。
67.如图5所示,为本技术实施例提供的网络请求的过滤装置500的结构示意图,该网络请求的过滤装置可以包括:提取单元501、拆分单元502、执行单元503和过滤单元504。
68.提取单元501,用于拦截当前网络请求,并提取当前网络请求的请求参数;
69.拆分单元502,用于对请求参数进行拆分,得到一段或多段可疑脚本;
70.执行单元503,用于调用脚本服务节点分别执行每段可疑脚本,并将执行成功的可疑脚本确定为可执行脚本;
71.过滤单元504,用于对可执行脚本进行过滤处理,并基于处理结果得到不存在可执行脚本的更新后的网络请求。
72.可选的,在本技术的一些实施例中,上述过滤单元504,还用于:
73.对可执行脚本进行重构,得到重构后的脚本;
74.基于重构后的脚本进行请求参数重组,得到重组后的第一请求参数;
75.利用重组后的第一请求参数替换当前网络请求中的请求参数,得到不存在可执行脚本的更新后的网络请求。
76.可选的,在本技术的一些实施例中,上述过滤单元504,还用于:
77.向可执行脚本中插入预设字符,得到重构后的脚本。
78.可选的,在本技术的一些实施例中,上述过滤单元504,还用于:
79.从请求参数中删除可执行脚本,得到重组后的第二请求参数;
80.利用重组后的第二请求参数替换当前网络请求中的请求参数,得到不存在可执行脚本的更新后的网络请求。
81.可选的,在本技术的一些实施例中,上述拆分单元502,还用于:
82.基于预先构建的正则表达式,对请求参数进行拆分,得到一段或多段可疑脚本。
83.可选的,在本技术的一些实施例中,上述执行单元503,还用于:
84.调用在隔离环境中当前处于等待状态的一个或多个脚本服务节点分别执行每段可疑脚本。
85.可选的,在本技术的一些实施例中,上述过滤装置还包括发送单元,用于将更新后的网络请求发送给处理节点,由处理节点执行与更新后的网络请求对应的处理操作。
86.需要说明的是,为描述的方便和简洁,上述描述的网络请求的过滤装置500的具体工作过程,可以参考上述各个实施例中网络请求的过滤方法的描述,在此不再赘述。并且,还需要说明的是,上述各个实施方式可以进行相互组合,得到多种不同的实施方式,均属于本技术的保护范围。
87.如图6所示,本技术实施例还提供一种终端。该终端可以配置有上述各个实施方式所示的网络请求的过滤装置。
88.如图6所示,终端6可以包括:处理器60、存储器61以及存储在存储器61中并可在处理器60上运行的计算机程序62。处理器60执行计算机程序62时实现上述各个网络请求的过滤方法实施例中的步骤,例如,图1所示的步骤101至步骤104。
89.所称处理器60可以是中央处理单元(central processing unit,cpu),还可以是
其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器,也可以是任何常规的处理器等。
90.存储器61可以是终端6的内部存储单元,例如,硬盘或内存。存储器61也可以是用于终端6的外部存储设备,例如,终端6上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。进一步地,存储器61还可以既包括终端6的内部存储单元也包括外部存储设备。存储器61用于存储上述计算机程序以及终端所需的其他程序和数据。
91.上述计算机程序可以被分割成一个或多个模块/单元,上述一个或者多个模块/单元被存储在上述存储器61中,并由上述处理器60执行,以完成本技术。上述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述上述计算机程序在上述进行网络请求的过滤的终端中的执行过程。例如,上述计算机程序可以被分割成:提取单元、拆分单元、执行单元和过滤单元,具体功能如下:
92.提取单元,用于拦截当前网络请求,并提取当前网络请求的请求参数;
93.拆分单元,用于对请求参数进行拆分,得到一段或多段可疑脚本;
94.执行单元,用于调用脚本服务节点分别执行每段可疑脚本,并将执行成功的可疑脚本确定为可执行脚本;
95.过滤单元,用于对可执行脚本进行过滤处理,并基于处理结果得到不存在可执行脚本的更新后的网络请求。
96.所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本技术的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
97.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
98.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
99.在本技术所提供的实施例中,应该理解到,所揭露的终端和方法,可以通过其它的方式实现。例如,以上所描述的终端实施例仅仅是示意性的。例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相
互之间的耦合或直接耦合或通讯连接可以是通过一些接口、装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
100.作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
101.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
102.集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、电载波信号、电信信号以及软件分发介质等。需要说明的是,计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
103.以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1