请求校验方法、装置及计算机可读存储介质与流程

文档序号:30061827发布日期:2022-05-17 23:48阅读:80来源:国知局
请求校验方法、装置及计算机可读存储介质与流程

1.本发明涉及但不限于信息处理领域,尤其涉及一种请求校验方法、装置及计算机可读存储介质。


背景技术:

2.互联网应用经常会遇到恶意爬虫、撞库等非正常请求,为了抵御这些非正常请求,可通过验证服务进行身份校验,验证服务是一种能够区分用户是计算机还是人的公共全自动程序,能够防止恶意请求。
3.相关技术中,应用服务与验证服务交互,来对请求进行拦截和验证,但是随着服务越来越庞大、接口越来越多、服务越来越多、应用服务与验证服务耦合度越来越高,若验证服务有改动,所有应用服务可能都需要改动适配,造成极大不便,同时,若应用服务与验证服务解耦,则无法在验证服务上区分各个应用服务之间的不同,进而无法合理地验证对应用服务的请求。


技术实现要素:

4.以下是对本文详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。
5.本发明实施例提供了一种请求校验方法、装置及计算机可读存储介质,降低了应用服务与验证服务之间的耦合度,从而在验证服务改动后,应用服务无需进行额外地改动也能够适配验证服务,同时在应用服务与验证服务解耦的基础上,进一步区分各个应用服务之间的不同,合理地验证对应用服务的请求。
6.第一方面,本发明实施例提供了一种请求校验方法,包括:
7.接收来自客户端的请求信息;
8.识别所述请求信息的信息类型;
9.通过风控中心对所述请求信息进行身份校验分析得到可疑校验结果;
10.根据所述请求信息中包括的重要等级重新校正所述可疑校验结果;
11.当所述可疑校验结果表明所述请求信息对应的请求为正常请求,将所述请求转发给所述请求信息所请求的应用服务;
12.当所述可疑校验结果表明所述请求为可疑请求,将所述请求转发给验证服务,将所述信息类型发送至所述客户端,使所述客户端根据所述信息类型进行验证跳转。
13.在一些实施例中,所述可疑校验结果包括可疑评分;
14.所述根据所述请求信息中包括的重要等级重新校正所述可疑校验结果,包括:
15.根据所述重要等级确定评估系数,根据所述评估系数重新调整所述可疑评分;
16.当所述可疑评分超过预设可疑分,确定所述可疑校验结果为可疑请求;
17.当所述可疑评分低于预设可疑分,确定所述可疑校验结果为正常请求。
18.在一些实施例中,所述通过风控中心对所述请求信息进行身份校验分析得到可疑
校验结果,包括:
19.使用消息中间件发送所述请求信息至风控中心进行身份校验分析;
20.接收所述风控中心返回的可疑校验结果。
21.在一些实施例中,所述通过风控中心对所述请求信息进行身份校验分析得到可疑校验结果,包括:
22.获取本地信息;
23.通过所述本地信息和风控中心对所述请求信息进行身份校验分析得到可疑校验结果。
24.在一些实施例中,所述本地信息包括可用资源信息和预存可疑请求信息,其中,所述可用资源信息用于表征所有可用的服务资源,所述预存可疑请求信息用于表征可疑请求的集合;
25.所述通过所述本地信息和风控中心对所述请求信息进行身份校验分析得到可疑校验结果,包括:
26.获取可用资源信息和预存可疑请求信息,以进行本地校验;
27.当检测到所述预存可疑请求信息中存在有所述请求信息对应的请求,确定所述请求信息的可疑校验结果为可疑请求;或者,
28.当检测到所述可用资源信息不包含所述请求信息对应的请求所要访问的服务资源,确定所述请求信息的可疑校验结果为可疑请求;或者,
29.当检测到所述预存可疑请求信息中不存在有所述请求信息对应的请求,且所述可用资源信息包含所述请求信息对应的请求所要访问的服务资源,将所述请求信息发送至风控中心以进行身份校验分析得到所述风控中心返回的所述请求信息的可疑校验结果。
30.在一些实施例中,在所述通过本地信息和风控中心对所述请求信息进行身份校验分析得到可疑校验结果之后,所述方法还包括:
31.根据所述可疑校验结果更新所述可用资源信息和/或所述预存可疑请求信息。
32.在一些实施例中,在所述将所述请求转发给验证服务之后,所述方法还包括:
33.当检测到所述请求被转发至所述验证服务,接收所述客户端返回的验证结果;
34.当所述验证结果表明所述请求为正常请求,将所述请求转发给所述请求信息所请求的应用服务;
35.当所述验证结果表明所述请求为可疑请求,将所述请求转发给所述验证服务,将所述信息类型发送至所述客户端,使所述客户端根据所述信息类型进行验证跳转。
36.在一些实施例中,在所述当检测到所述请求被转发至所述验证服务,接收所述客户端返回的验证结果之后,所述方法还包括:
37.获取可用资源信息和预存可疑请求信息,其中,所述可用资源信息用于表征所有可用的服务资源,所述预存可疑请求信息用于表征可疑请求的集合;
38.根据所述验证结果和所述请求信息更新所述可用资源信息和所述预存可疑请求信息。
39.第二方面,本发明实施例还提供了一种请求校验装置,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如第一方面所述请求校验方法。
40.第三方面,本发明实施例还提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行如第一方面所述请求校验方法。
41.本发明实施例包括:接收来自客户端的请求信息;识别请求信息的信息类型;分析请求信息得到请求信息的可疑校验结果;当可疑校验结果表明请求信息对应的请求为正常请求,将请求转发给请求信息所请求的应用服务;或者,当可疑校验结果表明请求为可疑请求,将请求转发给验证服务,并将信息类型发送至客户端,使客户端根据信息类型进行验证跳转。根据本发明实施例提供的方案,在接收到请求时,对请求进行校验分析,并根据分析结果来判断请求是否为可疑请求,如果是可疑请求,则将请求转发至验证服务,如果不是,才将请求转发至该请求所请求的应用服务,从而将原本相互紧密耦合的应用服务和验证服务分离开,这样在验证服务改动后,应用服务无需进行额外地改动也能够适配验证服务,同时在应用服务与验证服务解耦的基础上,进一步区分各个应用服务之间的不同,合理地验证对应用服务的请求。
42.本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
43.附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
44.图1是本发明一个实施例提供的请求校验方法的流程图;
45.图2是图1所示实施例中步骤s140的具体方法流程图;
46.图3是图1所示实施例中步骤s130的具体方法流程图;
47.图4是图1所示实施例中步骤s130的另一具体方法流程图;
48.图5是图1所示实施例中步骤s160中的在将所述请求转发给验证服务之后的具体方法流程图;
49.图6是图5所示实施例中的步骤s710之后的具体方法流程图;
50.图7是本发明另一个实施例提供的基于nginx的请求处理流程示意图;
51.图8是本发明另一个实施例提供的使用mysql和nginx进行请求处理的架构示意图;
52.图9是本发明另一个实施例提供的一种请求校验装置的结构图。
具体实施方式
53.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
54.需要说明的是,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。说明书、权利要求书或上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
55.本发明实施例提供了一种请求校验方法、装置及计算机可读存储介质,该方法包括:接收来自客户端的请求信息;识别请求信息的信息类型;分析请求信息得到请求信息的可疑校验结果;当可疑校验结果表明请求信息对应的请求为正常请求,将请求转发给请求信息所请求的应用服务;或者,当可疑校验结果表明请求为可疑请求,将请求转发给验证服务,并将信息类型发送至客户端,使客户端根据信息类型进行验证跳转。根据本发明实施例提供的方案,在接收到请求时,对请求进行校验分析,并根据分析结果来判断请求是否为可疑请求,如果是可疑请求,则将请求转发至验证服务,如果不是,才将请求转发至该请求所请求的应用服务,从而将原本相互紧密耦合的应用服务和验证服务分离开,这样在验证服务改动后,应用服务无需进行额外地改动也能够适配验证服务,同时在应用服务与验证服务解耦的基础上,进一步区分各个应用服务之间的不同,合理地验证对应用服务的请求。
56.本技术实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(artificial intelligence,ai)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。
57.人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。随着人工智能技术研究和进步,人工智能在多个领域展开研究和应用,例如常见的智能家居、智能客服、虚拟助理、智能音箱、智能营销、无人驾驶、自动驾驶、机器人、智能医疗等,相信随着技术的发展,人工智能将在更多的领域得到应用,并发挥越来越重要的价值。
58.机器学习(machine learning,ml)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。
59.机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习等技术。
60.需要说明的是,本发明实施例中的请求校验方法可适用于互联网请求身份校验的场景,例如,区分发送请求的是计算机还是人、根据请求的历史记录来识别是否是可疑请求等,本发明实施例的请求校验方法能够识别接收到的请求是否是可疑请求,并根据检验的结果进行不同服务的转发处理。
61.首先,对本发明中涉及的若干名词进行解析:
62.验证服务,可以是一种区分用户是计算机还是人的程序,可以防止:恶意破解密码、刷票、论坛灌水、恶意爬虫、撞库、对某一个特定注册用户用特定程序暴力破解方式进行不断的登录尝试等不正常行为或恶意请求,一般包括验证码验证、图像判断验证、点击验证、滑动验证等。
63.风控中心,一般包含网关、管理系统、规则引擎、大数据存储仓库、大数据计算引擎
等,可以依据uri的客户端单位时间请求数、黑白名单、历史记录等信息,风控系统可以按照一定规则对请求进行异步分析记录,甄别可疑请求。其中,网关能够来自同类系统的申请,帮助其识别请求的可靠性;管理系统负责维护请求相关信息,请求相关信息可以包括请求的uri、类型(接口、html页面)、源ip、user-agent、cookie、单位时间请求数等,每当开发人员新增加了接口时,管理系统可以自动添加接口信息到请求相关信息中;规则引擎负责分析请求是否是可疑请求;大数据存储仓库负责所需要校验的请求的存储,数据量大,作用是给规则引擎提供大量的可靠的数据,使得分析更加准确;大数据计算引擎能够筛选可用的请求数据,能够提高分析所依据请求的有效性。
64.下面结合附图,对本发明实施例作进一步阐述。
65.如图1所示,图1是本发明一个实施例提供的一种请求校验方法的流程图,在该方法中,包括但不限于有步骤s110、步骤s120、步骤s130、步骤s140、步骤s150和步骤s160:
66.步骤s110,接收来自客户端的请求信息;
67.可以理解的是,请求信息可以包括请求的uri、类型(接口、html页面)、源ip、user-agent、cookie等信息。
68.步骤s120,识别请求信息的信息类型;
69.需要说明的是,可以将接收到的请求信息与数据库上预先存储的请求相关信息进行比对,当匹配到对应的请求,从预先存储请求相关信息中就可以得到对应请求的信息类型。此外,还可以通过redis存储请求相关信息,当服务器使用nginx进行请求处理时,还可以使用ngx_lua的共享内存存储请求相关信息。
70.另外,在本发明实施例中,还可以同时使用数据库和redis存储请求相关信息,当服务器使用nginx进行请求处理时,也可以同时使用数据库和ngx_lua提供的共享内存存储请求相关信息。在使用了数据库的情况下,再使用redis或者ngx_lua提供的共享内存存储请求相关信息,这样能够在数据库长期稳定地维护请求相关信息,还能够缓解对数据库的高并发访问,提高请求的响应速度。
71.还需要说明的是,在使用了数据库的情况下,再使用redis或者ngx_lua提供的共享内存存储请求相关信息时,可以先在数据库下存储所有的请求相关信息,例如,每当应用服务有新增加的接口时,都将与新增接口相关的请求相关信息增添到数据库下,从而将所有的请求相关信息维护到数据库中,再将数据库中的请求相关信息定时转移到redis或者ngx_lua提供的共享内存中,之后在接收到客户端的请求时,将接收到的请求信息与redis或者ngx_lua提供的共享内存中预先存储的请求相关信息进行比对,当匹配到对应的请求,从预先存储请求相关信息中就可以得到对应请求的信息类型,从而缓解对数据库的高并发访问,提高请求的响应速度。此外,可以通过缩短定时时间间隔或采用下发的方式提高数据库中的请求相关信息转移的时效性。
72.还需要说明的是,预先存储的请求相关信息可以包括请求的uri、信息类型(接口、html页面)等信息;上述的redis或者ngx_lua提供的共享内存还可以采用其他的数据保存。
73.示例性地,在本发明实施例中,在使用nginx进行请求处理,且应用mysql和ngx_lua提供的共享内存存储请求相关信息的情况下,可以先将请求相关信息例如请求的uri、信息类型(接口、html页面)等信息维护到mysql的表中,并且每一次有新增接口时都将相关信息添加到表中,之后将mysql的表中存储的请求相关信息定时转移到ngx_lua提供的共享
内存中,当nginx接收到请求时,将请求信息与ngx_lua提供的共享内存中存储的请求相关信息进行对比,从中得到该请求的信息类型。
74.步骤s130,通过风控中心对请求信息进行身份校验分析得到可疑校验结果;
75.需要说明的是,接收到请求后,可以通过将请求信息发送至风控中心进行身份校验分析并得到分析后的可疑校验结果,也可以将请求信息与预先存储的可疑请求信息进行对比分析,从而得到分析后的可疑校验结果。此外,还可以通过风控中心和预先存储的可疑请求信息相结合来对请求信息进行分析,从而保证了分析的速度,也能确保可疑校验结果的准确性。
76.示例性地,当本发明实施例应用于风控中心和预先存储的可疑请求信息相结合来分析请求信息的情况,例如,接收到请求后,首先将请求信息和预先存储的可疑请求信息进行对比分析,当无法从预先存储的可疑请求信息找到该请求时,再将请求信息发送至风控中心进行身份校验分析并得到分析后的可疑校验结果,通过请求信息和预先存储的可疑请求信息的结合分析,即能保证分析的速度,也能确保可疑校验结果的准确性。
77.还需要说明的是,请求信息可以包括请求的单位时间请求数,当请求信息发送至风控中心后,风控中心会根据请求信息中的请求的单位时间请求数、预先存储的请求黑白名单、历史记录等信息来对请求信息进行身份校验分析。
78.另外,需要说明的是,当服务器接收到请求时,服务器会根据先前记录的该请求的单位时间请求数来重新统计该请求的单位时间请求数,并将重新统计后单位时间请求数更新到数据库和/或redis中,这样能够快速地更新请求的单位时间请求数。当服务器使用nginx来进行请求处理时,还可以将重新统计后的单位时间请求数更新到ngx_lua提供的共享内存中。
79.例如,在本发明实施例中,只利用数据库存储请求相关信息,单位时间请求数中的单位时间设定为1小时,当服务器接收到请求时,会检测请求信息中的单位时间请求数中的统计时间是否是1小时之内统计的,如果是1小时之内统计的,则在原有单位时间请求数上加1,代表在单位时间內又访问了一次,如果不是1小时之内统计的,则将单位时间请求数设为1,代表在新的单位时间之内访问次数从0增加1次,这样能够减少计算过程所消耗的时间,从而快速地更新请求的单位时间请求数。此外,更新redis或者ngx_lua提供的共享内存中的单位时间请求数也是同样的步骤,在这里不在赘述。更新完单位时间请求数之后,服务器将最新的请求信息发送至风控中心,风控中心会根据请求信息中的请求的新的单位时间请求数、预先存储的请求黑白名单、历史记录等信息进行身份校验分析。
80.此外,可以理解的是,服务器向风控中心发送请求信息进行身份校验分析后,风控中心会返回一个可疑校验结果给服务器。
81.步骤s140,根据请求信息中包括的重要等级重新校正可疑校验结果;
82.需要说明的是,根据业务类型的不同以及相关利益的侧重点不同,各种应用服务的重要性也不同,所以各种应用服务所对应的请求的重要性也不同,根据重要性的不同,对于请求通过的要求也不同,基于此,可以理解的是,请求信息中可以包含有对应应用服务的重要等级,通过重要等级可以根据重要程度的不同来阻止或放宽请求的通行,进一步区分各个应用服务之间的不同,合理地验证对应用服务的请求。
83.步骤s150,当可疑校验结果表明请求信息对应的请求为正常请求,将请求转发给
请求信息所请求的应用服务;
84.步骤s160,当可疑校验结果表明请求为可疑请求,将请求转发给验证服务,将信息类型发送至客户端,使客户端根据信息类型进行验证跳转。
85.需要说明的是,可疑校验结果可以包含有是否可疑标志,通过该标志能够判断请求是正常请求还是可疑请求。当可疑校验结果表明请求为可疑请求,将请求转发给验证服务后,由于请求有不同的类型(例如,可以是html页面或者接口等),所以客户端需要根据不同的类型进行不同的验证跳转(例如,若uri为html页面,则客户端通过重定向到验证页面进行校验,若uri为接口,服务器可以返回响应码通知客户端,表示该请求无法通过,需要校验),此时需要发送信息类型到客户端,使客户端能够配合验证服务来根据不同的请求类型进行不同的验证跳转。
86.例如,在本发明实施例中,服务器接收到请求之后,通过预先存储的请求信息识别出该请求是html页面类型,并且通过预先存储的可疑请求信息分析出该请求为可疑请求,此时服务器将该请求转发给验证服务,此时服务器发送请求的信息类型到客户端,客户端根据信息类型跳转至相应的html验证页面进行验证。
87.另外,参照图2,在一实施例中,可疑校验结果可包括但不限有可疑评分,在此基础上,图1所示实施例中的步骤s140,包括但不限于有步骤s210和步骤s220:
88.步骤s210,根据重要等级确定评估系数,根据评估系数重新调整可疑评分;
89.步骤s220,当可疑评分超过预设可疑分,确定可疑校验结果为可疑请求;
90.步骤s230,当可疑评分低于预设可疑分,确定可疑校验结果为正常请求。
91.可以理解的是,根据业务类型的不同以及相关利益的侧重点不同,各种应用服务的重要性也不同,所以各种应用服务所对应的请求的重要性也不同,根据重要性的不同,对于请求通过的要求也不同,基于此,以下提出根据重要等级来进行身份校验分析的各个实施例。
92.需要说明的是,当一个请求信息被发送至风控中心时,风控中心可以为其进行可疑程度评分来确定请求的可疑程度,当可疑评分超过预设值时则会判定该请求为可疑请求,但是有时候对于一些需要用户频繁请求的应用服务会被误判为可疑请求,导致了用户不必要的麻烦,在引入了重要等级后,就可以根据重要等级酌情对可疑评分进行修改,修改的方式可以是根据等级确定评估系数,在得到评估系数之后,可以在原有的可疑评分基础上加上或减去评估系数得到新的可疑评分。
93.示例性地,可疑评分可以是1至100,预设可疑分可以是50,当请求的可疑评分超过50时,服务器会将该请求判定为可疑请求;重要等级可以分为1至20,以重要等级等于评估系数为例(即当重要等级的数值等于评估系数的数值),重要等级为8或以下的时候,可以在原有的可疑评分基础上减去评估系数得到最终可疑评分,例如,在本发明一些实施例中,风控中心接收到一则请求信息,并分析该请求的可疑评分为55,但是,请求信息中的重要等级为7,由于重要等级的影响使得该请求的最终可疑评分可以为可疑评分与重要等级之差,即最终可疑评分为48,由于48并未超过50,接收到可疑校验结果后,最终服务器会重新确定该请求是正常请求的可疑校验结果,该结果充分考虑了请求的重要指标,减少了误判相对不重要请求为可疑请求的可能性。
94.示例性地,可疑评分可以是1至90,预设可疑分可以是60,当请求的可疑评分超过
60时,服务器会将该请求判定为可疑请求;重要等级可以分为1至15,以评估系数为重要等级的两倍为例(即当评估系数的数值等于2倍的重要等级的数值),重要等级为10或以上的时候,可以在原有的可疑评分基础上加上评估系数得到最终可疑评分,例如,在本发明一些实施例中,风控中心接收到一则请求信息,并分析该请求的可疑评分为55,但是,请求信息中的重要等级为3,此时可以确定评估系数重要等级的2倍,即为6,由于评估系数的影响使得该请求的最终可疑评分可以为可疑评分与评估系数之和,即最终可疑评分为61,由于61超过60,接收到可疑校验结果后,最终服务器会重新确定该请求是可疑请求的可疑校验结果,该结果充分考虑了请求的重要指标,加强了对重要的应用服务的保护。
95.需要说明的是,预设可疑分、重要等级和评估系数可以根据实际应用服务的重要性进行设置,在原有可疑评分的基础上加上或减去重要等级的计算方法也可以进行调整,例如,重要等级可以在0至1.5之间,以重要等级等于评估系数为例,可以将评估系数作为一个乘法系数与原来判定的可疑评分相乘来得到一个最终可疑评分,重要等级也可以作为可疑请求分析的权重依据,从而结合应用服务的重要性改变客户端单位时间请求数、历史记录等信息对可疑评分的影响。
96.根据以上各个本发明的实施例,可以理解的是,重要等级可以使得应用服务与验证服务解耦之后,验证服务依然能在某种程度上反映应用服务的重要性,进一步区分各个应用服务之间的不同,可以作出不同的验证策略来合理地验证对应用服务的请求。
97.另外,参照图3,在一实施例中,图1所示实施例中的步骤s130,包括但不限于有步骤s310和步骤s320:
98.步骤s310,使用消息中间件发送请求信息至风控中心进行身份校验分析;
99.步骤s320,接收风控中心返回的可疑校验结果。
100.需要说明的是,使用消息中间件来发送请求信息至风控中心,由于消息中间件的队列和异步机制,使得服务器能够在合适的时候将请求信息转发给风控中心,避免了任务无效的时间等待,提高了处理请求信息的效率。此外,消息中间件能够将请求处理服务器和风控中心独立开,从而将业务解耦,同时减少交互的成本和维护成本。
101.可以理解的是,消息中间件可以包括kafka、activemq、rabbitmq、rocketmq等。
102.另外,参照图4,在一实施例中,图1所示实施例中的步骤s130,包括但不限于有步骤s410和步骤s420:
103.步骤s410,获取本地信息;
104.步骤s420,通过本地信息和风控中心对请求信息进行身份校验分析得到可疑校验结果。
105.需要说明的是,可以在数据库上存储本地信息,还可以通过redis存储本地信息,当服务器使用nginx进行请求处理时,还可以使用ngx_lua的共享内存存储本地信息,此外,还可以同时使用数据库和redis存储本地信息,在此不再赘述。
106.另外,需要说明的是,本地信息可以是与请求相关的资源地址信息,如uri、url等信息,也可以是一些对识别出可疑请求有帮助的历史可疑请求等,在此不过多赘述。
107.另外,需要注意的是,在本发明实施例中,在利用本地信息的基础上,还可以结合风控中心进行进一步身份校验,以使校验结果更加准确,例如,通过本地信息识别出接收到的请求为正常请求,此时可以进一步地将请求对应的请求信息转发至风控中心加以鉴别,
以获得更加准确的校验结果。
108.另外,在一实施例中,本地信息可包括但不限于有可用资源信息和预存可疑请求信息,需要说明的是,可用资源信息用于表征所有可用的服务资源,预存可疑请求信息用于表征可疑请求的集合,在此基础上,上述实施例中的步骤s400,包括但不限于有步骤s510、判断c520。
109.步骤s510,获取可用资源信息和预存可疑请求信息,以进行本地校验;
110.需要说明的是,可以在数据库上存储可用资源信息,还可以通过redis存储可用资源信息,当服务器使用nginx进行请求处理时,还可以使用ngx_lua的共享内存存储可用资源信息。
111.另外,在本发明实施例中,还可以同时使用数据库和redis存储可用资源信息,当服务器使用nginx进行请求处理时,也可以同时使用数据库和ngx_lua提供的共享内存存储可用资源信息。在使用了数据库的情况下,再使用redis或者ngx_lua提供的共享内存作为数据中转站来存储可用资源信息,这样能够在数据库长期稳定地维护请求相关信息,还能够缓解对数据库的高并发访问,提高了请求的响应速度。
112.还需要说明的是,预存可疑请求信息可以包括请求的源ip、user-agent、cookie等客户端标识,可以在数据库上存储预存可疑请求信息,还可以通过redis存储预存可疑请求信息,当服务器使用nginx进行请求处理时,还可以使用ngx_lua的共享内存存储预存可疑请求信息。此外,还可以同时使用数据库和redis存储预存可疑请求信息,当服务器使用nginx进行请求处理时,也可以同时使用数据库和ngx_lua提供的共享内存存储预存可疑请求信息。在使用了数据库的情况下,再使用redis或者ngx_lua提供的共享内存作为数据中转站来存储预存可疑请求信息,这样能够在数据库长期稳定地维护预存可疑请求信息,还能够缓解对数据库的高并发访问,提高了请求的响应速度。
113.判断c520,当检测到预存可疑请求信息中存在有请求信息对应的请求,确定请求信息的可疑校验结果为可疑请求;或者,
114.当检测到可用资源信息不包含请求所访问的服务资源信息对应的请求所要访问的服务资源,确定请求信息的可疑校验结果为可疑请求;
115.需要说明的是,可疑校验结果可以包含有是否可疑标志,通过该标志能够判断请求是正常请求还是可疑请求。当检测到预存可疑请求信息中存在有请求信息对应的请求,可以在可疑校验结果中添加可疑标志来确定请求信息的可疑校验结果为可疑请求,同时将新确定的可疑请求添加入预存可疑请求信息,提高之后分析可疑请求的速度。
116.另外,需要说明的是,当可用资源信息不包含请求所访问的服务资源,即,该请求的所访问的目标应用可能不存在,此时可以在可疑校验结果中添加可疑标志来确定请求信息的可疑校验结果为可疑请求,并将请求信息添加入预存可疑请求信息,可以通过验证所需的时间来大大降低无效请求的访问次数,甚至屏蔽掉无效请求。
117.此外,可以理解的是,当可用资源信息不包含请求所访问的服务资源,可能是当前获取的可用资源信息没有被及时更新,例如,在使用数据库和redis存储可用资源信息,以redis作为数据中转站,redis中的可用资源信息不包含该请求所要访问的服务资源,但是不代表数据库中的可用资源信息不包含该请求所要访问的服务资源,此时可以根据数据库来更新redis中的可用资源信息,确保了可用资源信息的准确性。又或者,在只使用数据库
存储可用资源信息的情况下,可能可用资源信息的更新时间十分靠近于本次获取可用资源信息的时间,导致获取的信息与真实情况不符,此时可以再一次获取可用资源信息,确保了可用资源信息的准确性,还可以至只获取可用资源信息的额外新增部分,在确保了可用资源信息的准确性的同时,减少访问的数据量从而降低访问负担。
118.在判断c520中,还可加入判断:当检测到预存可疑请求信息中不存在有请求信息对应的请求,且可用资源信息包含请求信息对应的请求所要访问的服务资源,将请求信息发送至风控中心进行身份校验分析得到风控中心返回的请求信息的可疑校验结果。
119.可以理解的是,当预存可疑请求信息中不存在有请求,且可用资源信息包含请求信息对应的请求所要访问的服务资源,即本地所存储的信息不能确保该请求是正常请求,此时,可以将请求信息发送至风控中心以进行进一步的身份校验分析,提高分析可疑请求的准确率。
120.还可以理解的是,服务器向风控中心对请求信息进行身份校验分析之后,风控中心会返回一个可疑校验结果给服务器。
121.另外,在一实施例中,在图4所示实施例中的在获取到可疑校验结果之后,还包括但不限于有步骤s600:
122.步骤s600,根据可疑校验结果和请求信息更新可用资源信息和/或预存可疑请求信息。
123.需要说明的是,当可疑校验结果表明该请求是可疑请求,可以将该请求添加到预存可疑请求信息;当可疑校验结果表明该请求是正常请求,而且预存可疑请求信息存有该请求,则将该请求从预存可疑请求信息中剔除;当可疑校验结果表明该请求是正常请求,且可用资源信息中不存在该请求,可以将该请求信息所要访问的服务资源的地址等信息添加到可用资源信息中,确保可用资源信息准确性和实时性。
124.可以理解的是,当该请求信息所要访问的服务资源的地址等信息添加到可用资源信息时,如果该请求访问的目标依然不存在,可以将该请求视为可疑请求并将该请求转发至验证服务,并且将该请求所访问服务资源的相关信息从可用资源信息中剔除,再添加到预存可疑请求信息中,可以通过验证所需的时间来大大降低无效请求的访问次数,甚至屏蔽掉无效请求。
125.另外,需要说明的是,可疑校验结果可以包含有是否可疑标志,通过该标志能够判断请求是正常请求还是可疑请求。
126.另外,参照图5,在一实施例中,图1所示实施例中的步骤s160中的将请求转发给验证服务之后,还包括但不限于有步骤s710、步骤s720和步骤s730:
127.步骤s710,当检测到请求被转发至验证服务,接收客户端返回的验证结果;
128.可以理解的是,当请求被转发至验证服务,客户端需要进行身份验证,验证之后会返回一个验证结果。
129.步骤s720,当验证结果表明请求为正常请求,将请求转发给请求信息所请求的应用服务;
130.步骤s730,当验证结果表明请求为可疑请求,将请求转发给验证服务,将信息类型发送至客户端,使客户端根据信息类型进行验证跳转。
131.需要说明的是,验证结果可以通过是否包含通过验证标志来判断该请求有无通过
验证,若包含通过验证标志,则表明该请求是正常请求,否则则为可疑请求,若该请求是正常请求,则将请求转发给请求信息所请求的应用服务,若该请求是可疑请求,将请求转发给验证服务,并将信息类型发送至客户端,使客户端能够配合验证服务来根据不同的请求类型进行不同的验证跳转。此外,若该请求是可疑请求,可以一直停留在验证页面不进行额外的跳转,直到通过验证为止,减少服务器的访问负担。
132.另外,参照图6,在一实施例中,图5所示实施例中的步骤s710之后,包括但不限于有步骤s810和步骤s820:
133.步骤s810,获取可用资源信息和预存可疑请求信息,其中,可用资源信息用于表征所有可用的服务资源,预存可疑请求信息用于表征可疑请求的集合;
134.需要说明的是,可以在数据库上存储可用资源信息,还可以通过redis存储可用资源信息,当服务器使用nginx进行请求处理时,还可以使用ngx_lua的共享内存存储可用资源信息。
135.另外,在本发明实施例中,还可以同时使用数据库和redis存储可用资源信息,当服务器使用nginx进行请求处理时,也可以同时使用数据库和ngx_lua提供的共享内存存储可用资源信息。在使用了数据库的情况下,再使用redis或者ngx_lua提供的共享内存作为数据中转站来存储可用资源信息,这样能够在数据库长期稳定地维护请求相关信息,还能够缓解对数据库的高并发访问,提高了请求的响应速度。
136.需要说明的是,预存可疑请求信息可以包括请求的源ip、user-agent、cookie等客户端标识,可以在数据库上存储预存可疑请求信息,还可以通过redis存储预存可疑请求信息,当服务器使用nginx进行请求处理时,还可以使用ngx_lua的共享内存存储预存可疑请求信息。此外,还可以同时使用数据库和redis存储预存可疑请求信息,当服务器使用nginx进行请求处理时,也可以同时使用数据库和ngx_lua提供的共享内存存储预存可疑请求信息。在使用了数据库的情况下,再使用redis或者ngx_lua提供的共享内存作为数据中转站来存储预存可疑请求信息,这样能够在数据库长期稳定地维护预存可疑请求信息,还能够缓解对数据库的高并发访问,提高了请求的响应速度。
137.步骤s820,根据验证结果和请求信息更新可用资源信息和预存可疑请求信息。
138.需要说明的是,当验证结果表明该请求是可疑请求,可以将该请求添加到预存可疑请求信息;当验证结果表明该请求是正常请求,而且预存可疑请求信息存有该请求,则将该请求从预存可疑请求信息中剔除;当验证结果表明该请求是正常请求,且可用资源信息中不存在该请求,可以将该请求信息所要访问的服务资源的地址等信息添加到可用资源信息中,确保可用资源信息准确性。
139.可以理解的是,当该请求信息所要访问的服务资源的地址等信息添加到可用资源信息时,如果该请求访问的目标依然不存在,可以将该请求视为可疑请求并将该请求转发至验证服务,并且将该请求所访问服务资源的相关信息从可用资源信息中剔除,再添加到预存可疑请求信息中,可以通过验证所需的时间来大大降低无效请求的访问次数,甚至屏蔽掉无效请求。
140.另外,需要说明的是,可疑验证结果可以包含有是否通过验证标志,通过该标志能够判断请求是否通过验证,即能够判断该请求是正常请求还是可疑请求。
141.另外,参照图7,图7是本发明另一个实施例提供的基于nginx的请求处理流程示意
图。
142.如图7所示,在本发明实施例中,首先,nginx接收请求,可以从请求中得到请求的源ip、user-agent、cookie这些客户端标识;之后,将该请求和ngx_lua提供的共享内存中预先存储的所有请求信息进行比对,检测该请求是否存在于共享内存,如果该请求存在于共享内存,可以选择将该请求发送至风控中心进行进一步的分析,也可以选择直接将请求转发至具体应用服务;当该请求不存在于共享内存或者将该请求发送至风控中心进行进一步的分析后为可以请求,客户端则进入到验证页面,当用户通过验证,可以将共享内存中的请求相关信息清除,之后可以选择重新更新,以确保共享内存中的请求相关信息的准确性,若验证不通过,客户端可以选择一直处于验证页面;通过验证之后,将该请求的源ip、user-agent、cookie这些客户端标识发送至风控中心保存起来,作为分析时需要考量的数据;最后将通过验证的请求转发至具体的应用服务,通过该技术方案能够使得应用服务与验证服务分开,从而使应用服务与验证服务解耦。
143.另外,参照图8,图8是本发明另一个实施例提供的使用mysql和nginx进行请求处理的架构示意图,根据图9,在本发明实施例中,nginx接收到请求后,通过定时获取请求相关信息来识别请求类型,以使客户端进行根据不同请求类型进行验证,nginx还可以将请求转发至风控中心进行可疑请求分析,并将分析到的可疑请求保存在ngx_lua提供的共享内存中,以加快下一次校验分析的速度,当分析到该请求是正常请求,则将该请求转发至对应的应用服务,分析到该请求是可疑请求,则将该请求对接到验证服务,从而使应用服务与验证服务分开,完成应用服务与验证服务的解耦。
144.另外,参照图9,本发明另一个实施例还提供了一种请求校验装置,该装置1000包括:存储器1010、处理器1020及存储在存储器1010上并可在处理器1020上运行的计算机程序。
145.处理器1020和存储器1010可以通过总线或者其他方式连接。
146.实现上述实施例的请求校验方法所需的非暂态软件程序以及指令存储在存储器1010中,当被处理器1020执行时,执行上述实施例中的请求校验方法,例如,执行以上描述的图1中的方法步骤s110至步骤s160、图2中的方法步骤s210至步骤s230、图3中的方法步骤s310至步骤s320、步骤s400、图4中的方法步骤s510至步骤s540、步骤s600、图5中的方法步骤s710至步骤s730、图6中的方法步骤s810至步骤s820。以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
147.此外,本发明的一个实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个处理器或控制器执行,例如,被上述请求校验装置实施例中的一个处理器执行,可使得上述处理器执行上述实施例中的请求校验方法,例如,执行以上描述的图1中的方法步骤s110至步骤s160、图2中的方法步骤s210至步骤s230、图3中的方法步骤s310至步骤s320、步骤s400、图4中的方法步骤s510至步骤s540、步骤s600、图5中的方法步骤s710至步骤s730、图6中的方法步骤s810至步骤s820。本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理
器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
148.以上是对本发明的较佳实施进行了具体说明,但本发明并不局限于上述实施方式,熟悉本领域的技术人员在不违背本发明精神的前提下还可作出种种的等同变形或替换,这些等同的变形或替换均包含在本发明权利要求所限定的范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1