一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种API参数的识别方法、装置、电子设备及存储介质与流程

2023-03-09 13:22:20 来源:中国专利 TAG:

一种api参数的识别方法、装置、电子设备及存储介质
技术领域
1.本技术涉及网络信息安全技术领域,尤其涉及一种api参数的识别方法、装置、电子设备及存储介质。


背景技术:

2.在全球广域网(world wide web,web)的项目开发过程中,网络前端和网络后端之间的信息交互,依赖于应用程序编程接口(application programming interface,api)。
3.然而,由于api参数(如,api的路径)并不会对外公布,通常只能通过浏览器的调试模式或者抓包工具,才能获得api参数,会极大地影响对web站点进行渗透测试的效率。
4.例如,在对web站点进行渗透测试时,常规的web站点扫描工具并不会对web站点的整体架构进行探测,即无法对api参数进行识别,但是部分的漏洞可能存在于api之中,故而,只有采取手动测试的方法,才能实现对api参数的识别。
5.可见,采用上述的api参数的识别方法,采取手动测试的方式,去找出对应的api参数,需要花费大量的时间,会极大地影响渗透测试的效率。
6.因此,采用上述方式,api参数的识别效率较低。


技术实现要素:

7.本技术实施例提供了一种api参数的识别方法、装置、电子设备及存储介质,用以提高api参数的识别效率。
8.第一方面,本技术实施例提供了一种api参数的识别方法,所述方法包括:
9.接收目标终端发送的api参数获取请求,并从api参数获取请求中,获取目标web站点的站点标识;
10.通过预设的网页访问拦截方式,获得与站点标识相关联的网页访问请求方式集合;其中,网页访问请求方式集合包括:目标web站点中各个网页各自的访问请求方式;
11.确定网页访问请求方式集合包含的各个网页访问请求方式,各自关联的数据调用参数集;其中,每个数据调用参数集用于:获取相应网页所承载的数据信息;
12.从获得的各个数据调用参数集中,识别出目标web站点中各个网页各自对应的api参数。
13.第二方面,本技术实施例还提供了一种api参数的识别装置,所述装置包括:
14.接收模块,用于接收目标终端发送的api参数获取请求,并从api参数获取请求中,获取目标web站点的站点标识;
15.拦截模块,用于通过预设的网页访问拦截方式,获得与站点标识相关联的网页访问请求方式集合;其中,网页访问请求方式集合包括:目标web站点中各个网页各自的访问请求方式;
16.确定模块,用于确定网页访问请求方式集合包含的各个网页访问请求方式,各自关联的数据调用参数集;其中,每个数据调用参数集用于:获取相应网页所承载的数据信
息;
17.识别模块,用于从获得的各个数据调用参数集中,识别出目标web站点中各个网页各自对应的api参数。
18.在一种可选的实施例中,在接收目标终端发送的api参数获取请求之前,所述拦截模块还用于:
19.基于目标终端发送的web访问请求,访问目标web站点,并获得目标web站点的网站目录;其中,网站目录包含:目标web站点中各个网页的目录结构;
20.对网站目录包含的各个网页进行解析,分别确定相应网页的网页访问请求方式;
21.将获得的各个网页访问请求方式保存至网页访问请求方式集合中,并将网页访问请求方式集合与对应目标web站点设置的站点标识进行关联。
22.在一种可选的实施例中,在分别确定相应网页的网页访问请求方式之后,所述拦截模块还用于:
23.针对各个网页访问请求方式,分别执行以下操作:
24.基于一个网页访问请求方式的请求类型,确定与请求类型相匹配的数据调用参数集;
25.将一个网页访问请求方式与数据调用参数集进行关联。
26.在一种可选的实施例中,在从获得的各个数据调用参数集中,识别出目标web站点中各个网页各自对应的api参数之后,所述装置还包括存储模块,所述存储模块具体用于:
27.对获得的各个api参数进行去重处理,获得去重后的所述各个api参数;
28.基于去重后的各个api参数,各自归属的类型区间,对去重后的各个api参数进行排序,获得相应的存储排序结果;
29.按照存储排序结果,将去重后的各个api参数保存至预设的api数据库中。
30.在一种可选的实施例中,在对获得的各个api参数进行去重处理,获得去重后的各个api参数的过程中,所述存储模块还用于:
31.针对各个api参数,分别执行以下操作:
32.若历史api数据库中,存在与一个api参数满足预设的参数相似度条件的历史api参数,则将历史api参数添加到去重后的各个api参数中。
33.在一种可选的实施例中,在对获得的各个api参数进行去重处理,获得去重后的各个api参数之后,所述识别模块还用于:
34.访问去重后的各个api参数各自对应的api,获得去重后的各个api各自的接口信息;
35.基于获得的各个接口信息,确定去重后的各个api各自的工作状态。
36.在一种可选的实施例中,在按照存储排序结果,将去重后的各个api参数保存至预设的api数据库中之后,所述装置还包括展示模块,所述展示模块具体用于:
37.基于去重后的各个api各自的工作状态和类型区间,获得去重后的各个api各自对应的api参数的展示排列顺序;
38.按照获得的各个展示排列顺序,展示去重后的各个api各自对应的api参数。
39.第三方面,本技术实施例还提出了一种电子设备,其包括处理器和存储器,其中,所述存储器存储有程序代码,当所述程序代码被所述处理器执行时,使得所述处理器执行
上述第一方面所述的api参数的识别方法的步骤。
40.第四方面,本技术实施例还提出了一种计算机可读存储介质,其包括程序代码,当所述程序代码在电子设备上运行时,所述程序代码用于使所述电子设备执行上述第一方面所述的api参数的识别方法的步骤。
41.第五方面,本技术实施例还提供了一种计算机程序产品,所述计算机程序产品在被计算机调用时,使得所述计算机执行如第一方面所述的api参数的识别方法步骤。
42.本技术有益效果如下:
43.在本技术所提供的api参数的识别方法中,从目标终端发送的api参数获取请求中,获取目标web站点的站点标识;接着,通过预设的网页访问拦截方式,获得与站点标识相关联的网页访问请求方式集合;其中,网页访问请求方式集合包括:目标web站点中各个网页各自的访问请求方式;进一步地,确定网页访问请求方式集合包含的各个网页访问请求方式,各自关联的数据调用参数集;其中,每个数据调用参数集用于:获取相应网页所承载的数据信息;最终,从获得的各个数据调用参数集中,识别出目标web站点中各个网页各自对应的api参数。
44.采用这种方式,通过预设的网页访问拦截方式,获得与站点标识相关联的网页访问请求方式集合,再根据网页访问请求方式与数据调用参数集之间的对应关系,确定网页访问请求方式集合包含的各个网页访问请求方式,各自关联的数据调用参数集,从而识别出目标web站点中各个网页各自对应的api参数,避免了相关技术中,采取手动测试的方式,去找出对应的api参数,需要花费大量的时间的技术弊端,故而,提高了api参数的识别效率。
45.此外,本技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者,通过实施本技术而了解。本技术的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
46.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。在附图中:
47.图1示例性示出了本技术实施例适用的一种可选的系统结构示意图;
48.图2示例性示出了本技术实施例提供的一种网页访问请求方式集合与站点标识的关联方法的实施流程示意图;
49.图3示例性示出了本技术实施例提供的一种基于图2的应用场景示意图;
50.图4示例性示出了本技术实施例提供的api参数的识别方法的实施流程示意图;
51.图5示例性示出了本技术实施例提供的一种基于图4的逻辑示意图;
52.图6示例性示出了本技术实施例提供的一种存储api参数的应用场景示意图;
53.图7示例性示出了本技术实施例提供的一种api参数的识别装置的结构示意图;
54.图8示例性示出了本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
55.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术技术方案的一部分实施例,而不是全部的实施例。基于本技术文件中记载的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术技术方案保护的范围。
56.需要说明的是,在本技术的描述中“多个”理解为“至少两个”。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。a与b连接,可以表示:a与b直接连接和a与b通过c连接这两种情况。另外,在本技术的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
57.在介绍本技术实施例所提供的api参数的识别方法之前,为了便于理解,下面首先对本技术实施例中涉及的技术术语进行说明:
58.(1)api:是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
59.(2)渗透测试:是一项在计算机系统上进行的授权模拟攻击,旨在对其安全性进行评估,是为了证明网络防御可以按照预期计划正常运行而提供的一种机制。
60.(3)抓包(packet capture):是将网络传输发送与接收的数据包进行截获、重发、编辑、转存等操作,也用来检查网络安全。
61.(4)hook函数:就是处理拦截在软件组件之间传递的函数调用或事件或消息的代码,本质上就是用以处理系统消息的程序,通过系统调用,把它挂入系统中。
62.紧接着,下面首先对本技术实施例的设计思想进行简要介绍:
63.在对web站点进行渗透测试的过程中,常规的web站点扫描工具并不会对web站点的整体架构进行探测,也不会对web站点包含的各个网页进行全面的探测,比如,无法对api参数(如,api的路径)进行识别。
64.然而,由于部分的漏洞可能存在于api之中,通常只有采取手动测试的方法,才能实现对api参数的识别,但是采取手动测试的方式,去找出对应的api参数,需要花费大量的时间,会极大地影响渗透测试的效率。
65.可见,如何实现对web站点的整体架构的探测,识别出相应的api参数,为渗透测试提供更多关于web站点的相关信息,降低人工调试和抓包的时间成本,从而提高渗透测试的效率和效果,是目前亟需解决的问题。
66.有鉴于此,本技术实施例中,为了提高api参数的识别效率,提出了一种api参数的识别方法,具体包括:接收目标终端发送的api参数获取请求,并从api参数获取请求中,获取目标web站点的站点标识;紧接着,通过预设的网页访问拦截方式,获得与站点标识相关联的网页访问请求方式集合,其中,网页访问请求方式集合包括:目标web站点中各个网页各自的访问请求方式;进一步地,确定网页访问请求方式集合包含的各个网页访问请求方式,各自关联的数据调用参数集,其中,每个数据调用参数集用于:获取相应网页所承载的数据信息;最终,从获得的各个数据调用参数集中,识别出目标web站点中各个网页各自对应的api参数。
67.特别地,以下结合说明书附图对本技术的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本技术,并不用于限定本技术,并且在不冲突的情况下,本技术实施例及实施例中的特征可以相互组合。
68.参阅图1所示,其为本技术实施例提供的一种系统架构示意图,该系统架构包括:目标终端101、服务器102以及目标web站点103。目标终端101和服务器102之间可通过通信网络进行信息交互,其中,通信网络采用的通信方式可包括:无线通信方式和有线通信方式。
69.示例性的,目标终端101可通过蜂窝移动通信技术接入网络,与服务器102进行通信,其中,所述蜂窝移动通信技术,比如,包括第五代移动通信(5th generation mobile networks,5g)技术。
70.可选的,目标终端101可通过短距离无线通信方式接入网络,与服务器102进行通信,其中,所述短距离无线通信方式,比如,包括无线保真(wireless fidelity,wi-fi)技术。
71.本技术实施例对上述系统架构中涉及的通信设备的数量不做任何限制,例如,可以更多目标终端,或者没有目标终端,或者还可以包括其他网络设备,如图1所示,仅以目标终端101和服务器102为例进行描述,下面对上述各设备及其各自的功能进行简要介绍:
72.目标终端101,是一种可以向用户提供语音和/或数据连通性的设备,可以是支持有线和/或无线连接方式的设备。
73.示例性的,目标终端101包括但不限于:手机、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(mobile internet device,mid)、可穿戴设备,虚拟现实设备、增强现实(augmented reality,ar)设备、工业控制中的无线终端设备、无人驾驶中的无线终端设备、智能电网中的无线终端设备、运输安全中的无线终端设备、智慧城市中的无线终端设备,或智慧家庭中的无线终端设备等。
74.此外,目标终端101上可以安装有相关的客户端,该客户端可以是软件,例如,应用程序(application,app)、浏览器、短视频软件等,也可以是网页、小程序等。
75.还需说明的是,在本技术实施例中,目标终端101可用于向服务器102发送携带目标web站点103的站点标识的api参数获取请求,以及用于获取目标web站点103的网站目录的web访问请求。
76.服务器102可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(content delivery network,cdn)、以及大数据和人工智能平台等基础云计算服务的云服务器。
77.值得提出的是,在本技术实施例中,服务器102用于接收目标终端101发送的api参数获取请求,并从api参数获取请求中,获取目标web站点103的站点标识,再通过预设的网页访问拦截方式,获得与站点标识相关联的网页访问请求方式集合,从而确定网页访问请求方式集合包含的各个网页访问请求方式,各自关联的数据调用参数集,进而从获得的各个数据调用参数集中,识别出目标web站点103中各个网页各自对应的api参数。
78.还需说明的是,目标web站点103,存储了大量的数据、资源以及信息,为满足相关业务需求,也可完成各种资源的分配和调用,示例性的,目标web站点103可以为xxx网站。
79.下面结合上述的系统架构,以及参考附图来描述本技术示例性实施方式提供的api参数的识别方法,需要注意的是,上述系统架构仅是为了便于理解本技术的精神和原理而示出,本技术的实施方式在此方面不受任何限制。
80.需要说明的是,执行主体以服务器为例,在服务器接收目标终端发送的api参数获取请求之前,服务器需预先建立目标web站点的站点标识,与目标web站点中各个网页各自的访问请求方式(即网页访问请求方式集合)的关联关系,以及建立网页访问请求方式集合包含的各个网页访问请求方式及其各自对应的数据调用参数集的关联关系,可选的,参阅图2所示,其为本技术实施例提供的一种网页访问请求方式集合与站点标识的关联方法的实施流程图,该方法的具体实施流程如下:
81.s201:基于目标终端发送的web访问请求,访问目标web站点,并获得目标web站点的网站目录。
82.其中,上述的web访问请求可以为:一个或多个用于获取目标web站点的网站目录的网络访问请求,并且,上述的网站目录包含目标web站点中各个网页的目录结构。
83.示例性的,在执行步骤s201时,服务器在接收到目标终端发送的web访问请求之后,便可以经由预设的站点目录识别模块,向目标web站点发送上述web访问请求,以访问上述目标web站点,从而获得目标web站点的网站目录,即将目标web站点的网站目录识别出来。
84.需要说明的是,上述的站点目录识别模块可以通过解析目标web站点的主页中所包含的所有网页链接(即同站链接),遍历这些网页链接,并把涉及到的所有ico,js等文件都以对应的目录结构保存在本地。
85.s202:对网站目录包含的各个网页进行解析,分别确定相应网页的网页访问请求方式。
86.示例性的,在执行步骤s202时,服务器在获得目标web站点的网站目录之后,便可以通过预设的网页解析模块,将网站目录包含的各个网页的动态请求方法都识别出来,即确定网站目录中所有网页的网页访问请求方式。
87.在一种可选的实现方式中,服务器在确定网站目录中所有网页的网页访问请求方式之后,针对各个网页访问请求方式,可分别执行以下操作:基于网页访问请求方式的请求类型,确定与请求类型相匹配的数据调用参数集,再将网页访问请求方式与数据调用参数集进行关联,以便后续可直接根据网页访问请求方式,确定与之对应的数据调用参数集,从而识别出相应的api参数。
88.需要说明的是,上述数据调用参数集可以为与网页访问请求方式对应的调用方法的javascript代码,其中,javascript代码中包含相应的api参数。
89.可见,基于上述方法步骤,服务器网页不仅通过网页解析模块,遍历了目标web站点的网站目录中所有网页(如,静态网页),并对其进行分析,将其中的所有调用javascript代码的方法进行记录,从而将网站目录中所有网页的网页访问请求方式,与其各自对应的调用方法的javascript代码(即数据调用参数集)进行关联。
90.s203:将获得的各个网页访问请求方式保存至网页访问请求方式集合中,并将网页访问请求方式集合与对应目标web站点设置的站点标识进行关联。
91.具体的,在执行步骤s203时,服务器在分别确定网站目录中相应网页的网页访问
请求方式之后,便可将获得的各个网页访问请求方式保存至网页访问请求方式集合中,以及将网页访问请求方式集合与对应目标web站点设置的站点标识进行关联,以便后续再对目标web站点进行渗透测试等相关操作时,可以直接根据目标web站点的站点标识,以及站点标识与网页访问请求方式集合之间的对应关系,获得目标web站点的网页访问请求方式集合。
92.基于上述s201~s203的方法步骤,参阅图3所示,服务器在接收到目标终端发送的web访问请求后,便可基于目标终端发送的web访问请求,访问目标web站点,获得目标web站点的网站目录,并对获得的目标web站点的网站目录包含的各个网页进行解析,分别确定相应网页的网页访问请求方式,从而将获得的各个网页访问请求方式保存至网页访问请求方式集合中,进而将网页访问请求方式集合与对应目标web站点设置的站点标识进行关联。
93.显而易见,基于上述方法步骤,服务器在获得站点标识与网页访问请求方式集合的关联关系,以及网页访问请求方式与数据调用参数集的关联关系之后,便可以基于上述的两个关联关系,提高后续的api参数的识别效率,参阅图4所示,其为本技术实施例提供的一种api参数的识别方法的实施流程图,该方法的具体实施流程如下:
94.s401:接收目标终端发送的api参数获取请求,并从api参数获取请求中,获取目标web站点的站点标识。
95.具体的,在执行步骤s401时,服务器在接收到标终端发送的api参数获取请求之后,便可对获得的api参数获取请求进行解析,故而,从api参数获取请求中,获取目标web站点的站点标识。
96.需要说明的是,api参数获取请求也可以为其他设备发出的,在本技术实施例中,并不对发出api参数获取请求的设备做任何限定。
97.s402:通过预设的网页访问拦截方式,获得与站点标识相关联的网页访问请求方式集合。
98.其中,网页访问请求方式集合包括:目标web站点中各个网页各自的访问请求方式。
99.特别地,鉴于目前大多数web站点已经采取前后端分离的方式,将数据的传输方式标准化,大部分的web站点会使用java script来对api发出请求,少部分web站点通过form表单对api发出请求,并且,由于随着技术的不断发展,部分网站的java script代码经过混淆之后已经没有可读性,故而,可以通过hook技术,将到最后发出网络请求的关键函数进行hook,一旦网络请求发生,hook函数就会将数据相关的原始数据保存下来,然后通过数据去重和整合,最后,通过语义识别将找到的api分成不同类别,因此,上述预设的网页访问拦截方式可包含:网页访问请求方式集合中各网页访问请求方式各自对应的网络请求hook函数。
100.具体的,在执行步骤s402时,服务器在获取到目标web站点的站点标识之后,便可直接根据站点标识与网页访问请求方式集合之间的关联关系,确定与目标web站点的站点标识相关联的网页访问请求方式集合。
101.s403:确定网页访问请求方式集合包含的各个网页访问请求方式,各自关联的数据调用参数集。
102.其中,每个数据调用参数集用于获取相应网页所承载的数据信息,且包括相应的
api参数。
103.具体的,在执行步骤s403时,服务器在获得与站点标识相关联的网页访问请求方式集合之后,便可根据网页访问请求方式与数据调用参数集之间的关联关系,确定网页访问请求方式集合所包含的各个网页访问请求方式,各自关联的数据调用参数集。
104.示例性的,服务器可在预设的api信息获取模块初始化完成后,便加载所有的hook函数(包含各网页访问请求方式各自对应的hook函数),从而遍历网页访问请求方式集合所包含的各个网页访问请求方式,并调用与之关联的数据调用参数集(如,javascript代码),即网页访问请求方式及其对应的数据调用参数集进行hook,其中,hook函数可记录但不限于:协议类型、ip地址、端口号、路径、请求方法、参数个数、参数名称等相关信息。
105.s404:从获得的各个数据调用参数集中,识别出目标web站点中各个网页各自对应的api参数。
106.具体的,在执行步骤s404时,服务器在获得各个网页访问请求方式各自对应的数据调用参数集之后,便可从获得的各个数据调用参数集中,识别出目标web站点中各个网页各自对应的api参数。
107.基于上述s401~s404的api参数的识别方法,参阅图5所示,服务器从目标终端发送的api参数获取请求para.acqu.request中,获取目标web站点的站点标识site.id;紧接着,通过预设的网页访问拦截方式web.block.method,获得与站点标识site.id相关联的网页访问请求方式集合web.acc.req.set;进一步地,确定网页访问请求方式集合web.acc.req.set包含的各个网页访问请求方式(比如,request.method1、request.method2和request.method3),各自关联的数据调用参数集(比如,data.set1、data.set2和data.set3);最终,从获得的各个数据调用参数集中,识别出目标web站点中各个网页(比如,web.page1、web.page2和web.page3)各自对应的api参数(依次为:api.data1、api.data2和api.data3)。
108.在一种可选的实现方式中,参阅图6所示,服务器在识别出目标web站点中各个网页各自对应的api参数之后,还可对获得的各个api参数进行去重处理,获得去重后的各个api参数,再基于去重后的各个api参数,各自归属的类型区间,对去重后的各个api参数进行排序,获得相应的存储排序结果,从而按照存储排序结果,将去重后的各个api参数保存至预设的api数据库中。
109.其中,上述类型区间可以由一个或者多个特征维度确定的,比如,api的路径名称,示例性的,服务器可通过预设的api数据处理模块,将api信息获取模块中记录的数据进行去重,并按照通过路径名称将所有的路径按照类型进行排序,并存储到上述预设的api数据库中。
110.可选的,服务器还可通过上述预设的api数据处理模块中的相关算法,对api信息获取模块记录的数据(即各个api参数),进行多个维度的去重以及合并,从而将剩余的信息(即去重后的各个api参数)存储到上述预设的api数据库中。
111.在一种可选的实现方式中,服务器在对获得的各个api参数进行去重处理,获得去重后的各个api参数的过程中,还可以针对上述各个api参数中的任一api参数,执行以下操作:若历史api数据库中,存在与一个api参数满足预设的参数相似度条件的历史api参数,则将历史api参数添加到去重后的各个api参数中,从而获得部分没识别出的api参数。
112.示例性的,基于上述的方式,服务器可以通过预设的api数据扩展模块,将已经识别出来的各个api参数进行语义识别以及分成不同的api参数类别之后,根据历史api数据库,即已有的api数据库,扩展补充可能存在的api及其对应的api参数,从而在将其进行存储排序之后,保存至上述预设的api数据库中。
113.在一种可选的实现方式中,服务器在对获得的各个api参数进行去重处理,获得去重后的各个api参数之后,服务器访问去重后的各个api参数各自对应的api,获得去重后的各个api各自的接口信息,从而基于获得的各个接口信息,确定去重后的各个api各自的工作状态。
114.其中,每个接口信息会携带相应api的状态码,比如,200,状态码表征:api的工作状态。
115.示例性的,服务器可通过预设的api存活探测模块,对去重后的各个api参数各自对应的api进行访问,从而获得各个api各自的返回结果(即接口信息),从而判断上述各个api各自的存活状态(即工作状态)。
116.在一种可选的实现方式中,服务器在按照获得的存储排序结果,将去重后的各个api参数保存至上述预设的api数据库中之后,还可基于去重后的各个api各自的工作状态和类型区间,获得去重后的各个api各自对应的api参数的展示排列顺序,再按照获得的各个展示排列顺序,展示去重后的各个api各自对应的api参数。
117.示例性的,服务器可通过预设的api数据汇总展示模块,整理所有的结果并根据各个api的存活状态(即工作状态)和类型区间(如,根据路径名称划分的类型区间),经过危害度(如get方法,set方法,有无权限验证等维度)判断后,进行上述各个api参数的展示排列顺序,最后进行输出展示。
118.其中,危害度也可称之为敏感程度,且危害度可以表征是否被授权及其权限的大小,即若危害度越大,则表明权限范围小;反之,亦然;还需说明的是,还可以根据其他方法和纬度进行数据展示排序。
119.综上所述,在本技术实施例所提供的api参数的识别方法中,从目标终端发送的api参数获取请求中,获取目标web站点的站点标识;接着,通过预设的网页访问拦截方式,获得与站点标识相关联的网页访问请求方式集合;其中,网页访问请求方式集合包括:目标web站点中各个网页各自的访问请求方式;进一步地,确定网页访问请求方式集合包含的各个网页访问请求方式,各自关联的数据调用参数集;其中,每个数据调用参数集用于:获取相应网页所承载的数据信息;最终,从获得的各个数据调用参数集中,识别出目标web站点中各个网页各自对应的api参数。
120.采用这种方式,通过预设的网页访问拦截方式,获得与站点标识相关联的网页访问请求方式集合,再根据网页访问请求方式与数据调用参数集之间的对应关系,确定网页访问请求方式集合包含的各个网页访问请求方式,各自关联的数据调用参数集,从而识别出目标web站点中各个网页各自对应的api参数,避免了相关技术中,采取手动测试的方式,去找出对应的api参数,需要花费大量的时间的技术弊端,故而,提高了api参数的识别效率;此外,通过对目标web站点的站点目录的获取,也扩大了对目标web站点暴露面的认识。
121.进一步地,基于相同的技术构思,本技术实施例还提供了一种api参数的识别装置,该api参数的识别装置用以实现本技术实施例的上述的api参数的识别方法流程。参阅
图7所示,该api参数的识别装置包括:接收模块701、拦截模块702、确定模块703以及识别模块704,其中:
122.接收模块701,用于接收目标终端发送的api参数获取请求,并从api参数获取请求中,获取目标web站点的站点标识;
123.拦截模块702,用于通过预设的网页访问拦截方式,获得与站点标识相关联的网页访问请求方式集合;其中,网页访问请求方式集合包括:所述目标web站点中各个网页各自的访问请求方式;
124.确定模块703,用于确定网页访问请求方式集合包含的各个网页访问请求方式,各自关联的数据调用参数集;其中,每个数据调用参数集用于:获取相应网页所承载的数据信息;
125.识别模块704,用于从获得的各个数据调用参数集中,识别出目标web站点中各个网页各自对应的api参数。
126.在一种可选的实施例中,在接收目标终端发送的api参数获取请求之前,所述拦截模块702还用于:
127.基于目标终端发送的web访问请求,访问目标web站点,并获得目标web站点的网站目录;其中,网站目录包含:目标web站点中各个网页的目录结构;
128.对网站目录包含的各个网页进行解析,分别确定相应网页的网页访问请求方式;
129.将获得的各个网页访问请求方式保存至网页访问请求方式集合中,并将网页访问请求方式集合与对应目标web站点设置的站点标识进行关联。
130.在一种可选的实施例中,在分别确定相应网页的网页访问请求方式之后,所述拦截模块702还用于:
131.针对各个网页访问请求方式,分别执行以下操作:
132.基于一个网页访问请求方式的请求类型,确定与请求类型相匹配的数据调用参数集;
133.将一个网页访问请求方式与数据调用参数集进行关联。
134.在一种可选的实施例中,在从获得的各个数据调用参数集中,识别出目标web站点中各个网页各自对应的api参数之后,所述装置还包括存储模块705,所述存储模块705具体用于:
135.对获得的各个api参数进行去重处理,获得去重后的所述各个api参数;
136.基于去重后的各个api参数,各自归属的类型区间,对去重后的各个api参数进行排序,获得相应的存储排序结果;
137.按照存储排序结果,将去重后的各个api参数保存至预设的api数据库中。
138.在一种可选的实施例中,在对获得的各个api参数进行去重处理,获得去重后的各个api参数的过程中,所述存储模块705还用于:
139.针对各个api参数,分别执行以下操作:
140.若历史api数据库中,存在与一个api参数满足预设的参数相似度条件的历史api参数,则将历史api参数添加到去重后的各个api参数中。
141.在一种可选的实施例中,在对获得的各个api参数进行去重处理,获得去重后的各个api参数之后,所述识别模块704还用于:
142.访问去重后的各个api参数各自对应的api,获得去重后的各个api各自的接口信息;
143.基于获得的各个接口信息,确定去重后的各个api各自的工作状态。
144.在一种可选的实施例中,在按照存储排序结果,将去重后的各个api参数保存至预设的api数据库中之后,所述装置还包括展示模块706,所述展示模块706具体用于:
145.基于去重后的各个api各自的工作状态和类型区间,获得去重后的各个api各自对应的api参数的展示排列顺序;
146.按照获得的各个展示排列顺序,展示去重后的各个api各自对应的api参数。
147.基于相同的技术构思,本技术实施例还提供了一种电子设备,该电子设备可实现本技术上述实施例提供的api参数的识别方法流程。在一种实施例中,该电子设备可以是服务器,也可以是终端设备或其他电子设备。如图8所示,该电子设备可包括:
148.至少一个处理器801,以及与至少一个处理器801连接的存储器802,本技术实施例中不限定处理器801与存储器802之间的具体连接介质,图8中是以处理器801和存储器802之间通过总线800连接为例。总线800在图8中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线800可以分为地址总线、数据总线、控制总线等,为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。或者,处理器801也可以称为控制器,对于名称不做限制。
149.在本技术实施例中,存储器802存储有可被至少一个处理器801执行的指令,至少一个处理器801通过执行存储器802存储的指令,可以执行前文论述的一种api参数的识别方法。处理器801可以实现图7所示的装置中各个模块的功能。
150.其中,处理器801是该装置的控制中心,可以利用各种接口和线路连接整个该控制设备的各个部分,通过运行或执行存储在存储器802内的指令以及调用存储在存储器802内的数据,该装置的各种功能和处理数据,从而对该装置进行整体监控。
151.在一种可能的设计中,处理器801可包括一个或多个处理单元,处理器801可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器801中。在一些实施例中,处理器801和存储器802可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
152.处理器801可以是通用处理器,例如cpu、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本技术实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本技术实施例所公开的一种api参数的识别方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
153.存储器802作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器802可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(random access memory,ram)、静态随机访问存储器(static random access memory,sram)、可编程只读存储器(programmable read only memory,prom)、只读存储器(read only memory,rom)、带电可擦除可编程只读存储器(electrically erasable programmable read-only memory,
eeprom)、磁性存储器、磁盘、光盘等等。存储器802是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本技术实施例中的存储器802还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
154.通过对处理器801进行设计编程,可以将前述实施例中介绍的一种api参数的识别方法所对应的代码固化到芯片内,从而使芯片在运行时能够执行图4所示的实施例的一种api参数的识别方法的步骤。如何对处理器801进行设计编程为本领域技术人员所公知的技术,这里不再赘述。
155.基于同一发明构思,本技术实施例还提供一种存储介质,该存储介质存储有计算机指令,当该计算机指令在计算机上运行时,使得计算机执行前文论述的一种api参数的识别方法。
156.在一些可能的实施方式中,本技术提供一种api参数的识别方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在装置上运行时,程序代码用于使该控制设备执行本说明书上述描述的根据本技术各种示例性实施方式的一种api参数的识别方法中的步骤。
157.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
158.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
159.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
160.显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献