CN110472165A - Url提取方法、装置、设备及计算机可读存储介质 - Google Patents
Url提取方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN110472165A CN110472165A CN201910776693.6A CN201910776693A CN110472165A CN 110472165 A CN110472165 A CN 110472165A CN 201910776693 A CN201910776693 A CN 201910776693A CN 110472165 A CN110472165 A CN 110472165A
- Authority
- CN
- China
- Prior art keywords
- url
- cgi
- server
- uri
- matching
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 76
- 238000012360 testing method Methods 0.000 claims abstract description 23
- 238000000605 extraction Methods 0.000 claims description 28
- 238000001514 detection method Methods 0.000 claims description 13
- 238000005516 engineering process Methods 0.000 abstract description 10
- 238000010586 diagram Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000006399 behavior Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000009193 crawling Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 238000009958 sewing Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
- G06F16/9566—URL specific, e.g. using aliases, detecting broken or misspelled links
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
- G06F16/972—Access to data in other repository systems, e.g. legacy data or dynamic Web page generation
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及金融科技技术领域,公开了一种URL提取方法、装置、设备及计算机可读存储介质。该URL提取方法包括:获取预设数组中预设模块的上下文指针对象ctx;遍历所述ctx中的各服务server块,并定位至所述server块中的位置location块,从所述location块中匹配得到根root目录和通用网关接口CGI路径;检测所述root目录与所述CGI路径的前缀字符串是否相匹配,得到检测结果,并根据所述检测结果和预设规则生成对应的统一资源定位符URL。本发明能够解决现有技术中URL遗漏较多、完整性较差的问题。
Description
技术领域
本发明涉及金融科技(Fintech)技术领域,尤其涉及一种URL提取方法、装置、设备及计算机可读存储介质。
背景技术
随着计算机技术的发展,越来越多的技术(大数据、分布式、区块链Blockchain、人工智能等)应用在金融领域,传统金融业正在逐步向金融科技(Fintech)转变,但由于金融行业的安全性、实时性要求,也对技术提出了更高的要求。
随着计算机网络技术的快速发展,Web及其相关技术得到广泛的应用,网站设计的需求越来越大,但同时其安全问题也日益突出,如何保障Web应用的安全性已成为一个重点关注的问题。目前,通常是采用Web漏洞扫描器对Web应用或网站中存在的漏洞进行扫描检测。通过Web漏洞扫描器进行Web漏洞扫描的前提是需要知道URL(Uniform ResourceLocator,统一资源定位符),Web漏洞扫描器扫描效果的好坏与也与URL的完整性有关。
目前URL的获取方式主要有以下两种:1)用户主动提交URL;2)通过爬虫技术爬取出URL。然而,在通过第1)种方式获取URL时,由于在Web站点不断的更新和迭代及人员的更新过程中,很多URL会被遗漏,会导致y用户提供的URL的完整性较差;在通过第2)种方式中的爬虫技术爬取URL时,由于存在很多需要鉴权或者特殊权限的页面无法进行获取,从而也会导致提取得到的URL完整性较差。因此,亟需提供一种能够提高URL提取完整性的方法,以便于Web漏洞扫描器扫描出更多的漏洞、保障Web应用的安全性。
发明内容
本发明的主要目的在于提供一种URL提取方法、装置、设备及计算机可读存储介质,旨在解决现有技术中URL遗漏较多、完整性较差的问题。
为实现上述目的,本发明提供一种URL提取方法,所述URL提取方法包括:
获取预设数组中预设模块的上下文指针对象ctx;
遍历所述ctx中的各服务server块,并定位至所述server块中的位置location块,从所述location块中匹配得到根root目录和通用网关接口CGI路径;
检测所述root目录与所述CGI路径的前缀字符串是否相匹配,得到检测结果,并根据所述检测结果和预设规则生成对应的统一资源定位符URL。
可选地,所述根据所述检测结果和预设规则生成对应的统一资源定位符URL的步骤包括:
若检测到所述root目录与所述CGI路径的前缀字符串相匹配,则根据所述root目录和所述CGI路径得到第一统一资源标识符URI,并获取与所述location块对应的server块的名称server_name信息和端口port信息;
将所述第一URI、所述server_name信息和所述port信息按第一拼接方式进行拼接,生成对应的URL。
可选地,所述根据所述检测结果和预设规则生成对应的统一资源定位符URL的步骤包括:
若检测到所述root目录与所述CGI路径的前缀字符串不匹配,则根据所述root目录和所述CGI路径获取nginx.conf文件中的index.php入口文件,并检测所述index.php入口文件是否符合预设条件,以检测所述CGI路径对应的Web框架是否为MVC框架;
若是,则获取所述Web框架的路由配置文件,并根据所述路由配置文件得到URI,记为第二URI;
获取所述location块的location_value值,并获取与所述location块对应的server块的server_name信息和port信息,将所述location_value值、所述server_name信息、所述port信息和所述第二URI按第二拼接方式进行拼接,生成对应的URL。
可选地,所述获取所述Web框架的路由配置文件,并根据所述路由配置文件得到URI,记为第二URI的步骤包括:
通过预设超文本预处理器php扩展插件的php执行文件调用执行所述index.php入口文件,得到所述index.php入口文件执行的语法树;
根据所述Web框架的类型从所述语法树中获取所述Web框架的路由配置文件;
解析所述路由配置文件得到所述Web框架的路由规则,并根据所述路由规则得到URI,记为第二URI。
可选地,所述从所述location块中匹配得到根root目录和通用网关接口CGI路径的步骤包括:
基于预设匹配规则从所述location块中匹配得到root目录和CGI路径,其中,所述预设匹配规则包括精确匹配、前缀匹配、正则匹配、正常匹配和全匹配中的一种或多种。
此外,为实现上述目的,本发明还提供一种URL提取装置,所述URL提取装置包括:
获取模块,用于获取预设数组中预设模块的上下文指针对象ctx;
匹配模块,用于遍历所述ctx中的各服务server块,并定位至所述server块中的位置location块,从所述location块中匹配得到根root目录和通用网关接口CGI路径;
生成模块,用于检测所述root目录与所述CGI路径的前缀字符串是否相匹配,得到检测结果,并根据所述检测结果和预设规则生成对应的统一资源定位符URL。
可选地,所述生成模块包括:
第一获取单元,用于若检测到所述root目录与所述CGI路径的前缀字符串相匹配,则根据所述root目录和所述CGI路径得到第一统一资源标识符URI,并获取与所述location块对应的server块的名称server_name信息和端口port信息;
第一生成单元,用于将所述第一URI、所述server_name信息和所述port信息按第一拼接方式进行拼接,生成对应的URL。
可选地,所述生成模块还包括:
检测单元,用于若检测到所述root目录与所述CGI路径的前缀字符串不匹配,则根据所述root目录和所述CGI路径获取nginx.conf文件中的index.php入口文件,并检测所述index.php入口文件是否符合预设条件,以检测所述CGI路径对应的Web框架是否为MVC框架;
第二获取单元,用于若是,则获取所述Web框架的路由配置文件,并根据所述路由配置文件得到URI,记为第二URI;
第二生成单元,用于获取所述location块的location_value值,并获取与所述location块对应的server块的server_name信息和port信息,将所述location_value值、所述server_name信息、所述port信息和所述第二URI按第二拼接方式进行拼接,生成对应的URL。
此外,为实现上述目的,本发明还提供一种URL提取设备,所述URL提取设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的URL提取程序,所述URL提取程序被所述处理器执行时实现如上所述的URL提取方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有URL提取程序,所述URL提取程序被处理器执行时实现如上所述的URL提取方法的步骤。
本发明提供一种URL提取方法、装置、设备及计算机可读存储介质,先获取预设数组中预设模块的上下文指针对象ctx;遍历ctx中的各server块,并定位至server块中的location块,然后从location块中匹配得到root目录和CGI路径;最后检测root目录与CGI路径的前缀字符串是否相匹配,即检测root目录是否为CGI路径的前缀字符串,得到检测结果,进而根据检测结果和预设规则生成对应的URL。由于nginx解析配置的结果是存储在特定数据结构中,因此本发明中通过服务器主机上的nginx.conf配置文件,结合CGI路径反向解析出URL,其提取结果是很精确的,不存在URL遗漏的情况,相比于现有技术中的URL获取方式,本发明可提高URL提取的完整性。
附图说明
图1为本发明实施例方案涉及的硬件运行环境的设备结构示意图;
图2为本发明URL提取方法第一实施例的流程示意图;
图3为本发明URL提取装置第一实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的设备结构示意图。
本发明实施例URL提取设备可以是智能手机,也可以是PC(Personal Computer,个人计算机)、平板电脑、便携计算机等终端设备。
如图1所示,该URL提取设备可以包括:处理器1001,例如CPU,通信总线1002,用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如Wi-Fi接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的URL提取设备结构并不构成对URL提取设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及URL提取程序。
在图1所示的终端中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端,与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的URL提取程序,并执行以下操作:
获取预设数组中预设模块的上下文指针对象ctx;
遍历所述ctx中的各服务server块,并定位至所述server块中的位置location块,从所述location块中匹配得到根root目录和通用网关接口CGI路径;
检测所述root目录与所述CGI路径的前缀字符串是否相匹配,得到检测结果,并根据所述检测结果和预设规则生成对应的统一资源定位符URL。
进一步地,处理器1001可以调用存储器1005中存储的URL提取程序,还执行以下操作:
若检测到所述root目录与所述CGI路径的前缀字符串相匹配,则根据所述root目录和所述CGI路径得到第一统一资源标识符URI,并获取与所述location块对应的server块的名称server_name信息和端口port信息;
将所述第一URI、所述server_name信息和所述port信息按第一拼接方式进行拼接,生成对应的URL。
进一步地,处理器1001可以调用存储器1005中存储的URL提取程序,还执行以下操作:
若检测到所述root目录与所述CGI路径的前缀字符串不匹配,则根据所述root目录和所述CGI路径获取nginx.conf文件中的index.php入口文件,并检测所述index.php入口文件是否符合预设条件,以检测所述CGI路径对应的Web框架是否为MVC框架;
若是,则获取所述Web框架的路由配置文件,并根据所述路由配置文件得到URI,记为第二URI;
获取所述location块的location_value值,并获取与所述location块对应的server块的server_name信息和port信息,将所述location_value值、所述server_name信息、所述port信息和所述第二URI按第二拼接方式进行拼接,生成对应的URL。
进一步地,处理器1001可以调用存储器1005中存储的URL提取程序,还执行以下操作:
通过预设超文本预处理器php扩展插件的php执行文件调用执行所述index.php入口文件,得到所述index.php入口文件执行的语法树;
根据所述Web框架的类型从所述语法树中获取所述Web框架的路由配置文件;
解析所述路由配置文件得到所述Web框架的路由规则,并根据所述路由规则得到URI,记为第二URI。
进一步地,处理器1001可以调用存储器1005中存储的URL提取程序,还执行以下操作:
基于预设匹配规则从所述location块中匹配得到root目录和CGI路径,其中,所述预设匹配规则包括精确匹配、前缀匹配、正则匹配、正常匹配和全匹配中的一种或多种。
基于上述硬件结构,提出本发明URL提取方法的各实施例。
本发明提供一种URL提取方法。
参照图2,图2为本发明URL提取方法第一实施例的流程示意图。
在本实施例中,该URL提取方法包括:
步骤S10,获取预设数组中预设模块的上下文指针对象ctx;
本实施例的URL提取方法是由URL提取设备实现的,该设备以服务器为例进行说明。其中,该服务器上部署有Web服务和nginx服务,同时,还部署有改造后的nginx可执行文件,启动改造后的nginx,可反向解析nginx.conf配置文件,执行下述URL提取方法。其中,改造后的nginx是基于现有的nginx进行改造,主要是通过添加代码的形式,在现有的nginx上实现按server name:port/uri或者server name:port/trv file value/index.php组成的URL写到服务器主机上存储的功能,以得到改造后的nginx。通过了解nginx正向解析URI流程,即如何从URI映射到主机的CGI文件,发现nginx解析配置的结果是存储在特定数据结构中,理论上我们遍历该数据结构是可以得到完整的配置,并且是非常精确的,然后根据CGI路径在配置结果中反向查找location,映射到URI,进而生成对应的URL。也就是说,通过服务器主机上的nginx.conf配置文件,结合主机上的CGI路径反向解析出URL,其提取结果是很精确的,不存在URL遗漏的情况,相比于现有技术中的URL获取方式,本发明可提高URL提取的完整性。
具体的,先获取预设数组中预设模块的上下文指针对象ctx。其中,预设数组可以为cycle->conf_ctx,cycle->conf_ctx是一个数组,数组的每一个元素对应于一个模块的配置上下文,这里的模块是指nginx.conf配置文件的server块和http块;预设模块可以为ngx_http_core_module模块,nginx中http协议的实现,http框架的大部分核心指令,http请求整个生命周期的处理流程(也可以说是http请求的处理框架)都在该模块中实现;ctx指向模块上下文结构体,且不同类型的模块通常指向不同类型的结构体,该结构体中通常会包含若干函数指针。
步骤S20,遍历所述ctx中的各服务server块,并定位至所述server块中的位置location块,从所述location块中匹配得到根root目录和通用网关接口CGI路径;
然后,遍历ctx中的各server(服务)块,并定位至server块中的location(位置)块,然后从location块中匹配得到root(根)目录和CGI(Common Gateway Interface,通用网关接口)路径。
其中,步骤“从所述location块中匹配得到根root目录和通用网关接口CGI路径”包括:基于预设匹配规则从所述location块中匹配得到root目录和CGI路径,其中,所述预设匹配规则包括精确匹配、前缀匹配、正则匹配、正常匹配和全匹配中的一种或多种。
对于root目录和CGI路径匹配,可通过精确匹配、前缀匹配、正则匹配、正常匹配和全匹配中的其中任一种进行匹配。其中,精确匹配,匹配条件是在搜索关键词与推广关键词二者字面完全一致时才触发的限定条件,用于精确严格的匹配限制,可以采用=指令进行精确匹配,不能使用正则,区分大小写;前缀匹配,采用^~指令进行前缀匹配,和=精确匹配一样,也是用于字符确定的匹配,不能使用正则且区分大小写。正则匹配,所使用的指令是~和~*,前者表示使用正则,区分大小写,后者表示使用正则,不区分大小写。正常匹配,指令为空,即没有指定匹配指令的即为正常匹配。全匹配与正常匹配一样,没有匹配指令。具体的匹配方式与现有技术一样,此处不作具体赘述。需要说明的是,若采用多种匹配方式进行匹配时,可遵循一个大原则和两个小细节。大原则是关于匹配模式的优先级:精确匹配>前缀匹配>正则匹配>正常匹配>全匹配。小细节则是同一优先级中:细节一,正则匹配成功之后停止匹配,非正则匹配成功还会接着匹配;细节二,在所有匹配成功的root目录和CGI路径中,选取匹配度最大的。
步骤S30,检测所述root目录与所述CGI路径的前缀字符串是否相匹配,得到检测结果,并根据所述检测结果和预设规则生成对应的统一资源定位符URL。
然后,检测root目录与CGI路径的前缀字符串是否相匹配,即检测root目录是否为CGI路径的前缀字符串,得到检测结果,进而根据检测结果和预设规则生成对应的统一资源定位符URL。具体的,若root目录与CGI路径的前缀字符串相匹配,则根据root目录和CGI路径得到第一URI(Uniform Resource Identifier,统一资源标识符),并获取与location块对应的server块的server_name(名称)信息和port(端口)信息,然后将第一URI、server_name信息和port信息按第一拼接方式进行拼接,生成对应的URL(Uniform ResourceLocator,统一资源定位符)。若检测到root目录与CGI路径的前缀字符串不匹配,则根据root目录和CGI路径获取nginx.conf文件中的index.php入口文件,并检测index.php入口文件是否符合预设条件,以检测CGI路径对应的Web框架是否为MVC框架;若index.php入口文件符合预设条件,则说明CGI路径对应的Web框架为MVC框架,此时,获取Web框架的路由配置文件,并根据路由配置文件得到URI,记为第二URI,进而获取location块的location_value值,并获取与location块对应的server块的server_name信息和port信息,将location_value值、server_name信息、port信息和第二URI按第二拼接方式进行拼接,生成对应的URL。具体的执行过程可参照下述实施例,此处不作赘述。
本发明实施例提供一种URL提取方法,先获取预设数组中预设模块的上下文指针对象ctx;遍历ctx中的各server块,并定位至server块中的location块,然后从location块中匹配得到root目录和CGI路径;最后检测root目录与CGI路径的前缀字符串是否相匹配,即检测root目录是否为CGI路径的前缀字符串,得到检测结果,进而根据检测结果和预设规则生成对应的URL。由于nginx解析配置的结果是存储在特定数据结构中,因此本实施例中通过服务器主机上的nginx.conf配置文件,结合CGI路径反向解析出URL,其提取结果是很精确的,不存在URL遗漏的情况,相比于现有技术中的URL获取方式,本发明实施例可提高URL提取的完整性。
作为URL的其中一种生成方式,步骤S30可以包括:
步骤a1,若检测到所述root目录与所述CGI路径的前缀字符串相匹配,则根据所述root目录和所述CGI路径得到第一统一资源标识符URI,并获取与所述location块对应的server块的名称server_name信息和端口port信息;
若检测到root目录与CGI路径的前缀字符串相匹配,即root目录为CGI路径的前缀字符串时,则说明该CGI路径对应该location块的URI,此时,则根据root目录和CGI路径得到第一URI(Uniform Resource Identifier,统一资源标识符),具体的,CGI路径去掉前缀字符串(即root目录)即可得到第一URI,然后获取与该location块对应的server块的server_name(名称)信息和port(端口)信息,以根据server_name信息和port信息形成域名。
步骤a2,将所述第一URI、所述server_name信息和所述port信息按第一拼接方式进行拼接,生成对应的URL。
然后,将第一URI、server_name信息和port信息按第一拼接方式进行拼接,生成对应的URL。具体的第一拼接方式为:http://server_name:port/第一URI。
需要说明的是,上述第一种URL的生成方式适用于反向提取并生成非MVC(ModelView Controller,模型-视图-控制器)框架的URL,即root目录与CGI路径的前缀字符串相匹配的情景。
作为URL的另一种生成方式,步骤S30还可以包括:
步骤a3,若检测到所述root目录与所述CGI路径的前缀字符串不匹配,则根据所述root目录和所述CGI路径获取nginx.conf文件中的index.php入口文件,并检测所述index.php入口文件是否符合预设条件,以检测所述CGI路径对应的Web框架是否为MVC框架;
若检测到root目录与CGI路径的前缀字符串不匹配,即root目录不为CGI路径的前缀字符串时,则需采用下述方式提取生成URL。具体的,先根据root目录和CGI路径获取nginx.conf文件中的index.php入口文件,即根据root目录和CGI路径确定index.php入口文件在服务器上的位置,进而获取到该index.php入口文件。在获取到index.php入口文件之后,检测index.php入口文件是否符合预设条件,以检测CGI路径对应的Web框架是否为MVC框架。
其中,该预设条件可以根据各MVC框架的特征进行设定,由于MVC框架包括多种,该预设条件对应可包括一个或多个,检测到index.php入口文件是否符合预设条件中的任一个,都可以判定CGI路径对应的Web框架为MVC框架。例如,对于CodeIgniter框架(一个简单快速的PHP MVC框架),可设定一预设条件为index.php入口文件中存在core/CodeIgniter.php,若通过正向匹配检测到index.php入口文件中存在core/CodeIgniter.php,则说明该CGI路径对应的Web框架为MVC框架。
步骤a4,若是,则获取所述Web框架的路由配置文件,并根据所述路由配置文件得到URI,记为第二URI;
若检测到CGI路径对应的Web框架为MVC框架,则获取Web框架的路由配置文件,并根据路由配置文件得到URI,记为第二URI。具体的,步骤a4包括:
步骤a41,通过预设超文本预处理器php扩展插件的php执行文件调用执行所述index.php入口文件,得到所述index.php入口文件执行的语法树;
若判定Web框架为MVC框架,可先通过预设php(PHP:Hypertext Preprocessor,超文本预处理器)扩展插件的php执行文件调用执行该index.php入口文件,得到index.php入口文件执行的语法树。其中,预设php扩展插件是在现有的php语法解析树扩展插件源码的基础上进行改造得到的,通过该预设php扩展插件可将php代码解析为抽象语法树(Abstract Syntax Tree,AST),其中,该抽象语法树中定义了代码的结构,通过操纵这颗语法树,我们可以精准的定位到声明语句、赋值语句、运算语句等等,实现对代码的分析、优化、变更等操作。
步骤a42,根据所述Web框架的类型从所述语法树中获取所述Web框架的路由配置文件;
然后,根据Web框架的类型从语法树中获取Web框架的路由配置文件。其中,Web框架的类型可以根据index.php入口文件所符合的预设条件确定得到,例如,上述例中,若检测到index.php入口文件中存在core/CodeIgniter.php,则可确定Web框架的类型为CodeIgniter框架。此外,由于每种框架的路由配置文件,都有固定的特征和路径,例如CodeIgniter框架,可通过正则匹配对应的特征config/routes.php,进而可以从语法树中定位获取到Web框架的路由配置文件的信息,如:“/data/htdocs/a_ci_application_4De/config/routes.php”,即可得到routes.php文件所在的路径,进而获取到Web框架的路由配置文件。
步骤a43,解析所述路由配置文件得到所述Web框架的路由规则,并根据所述路由规则得到URI,记为第二URI。
然后,解析路由配置文件得到Web框架的路由规则,并根据所述路由规则得到URI,记为第二URI。例如,上述例中,若读取到routes.php文件内容如下:
$route[‘default_controller’]=“welcome”;
$route[‘404_override’]=‘’;
$route[‘admin/detail_(:num)’]=‘admin/detail?user_id=$1’;
$route[‘admin/(:num)’]=‘admin/detail/$1’;
可解析得到URI为welcome、detail?.htm?user_id=1、admin/detail/1。
步骤a5,获取所述location块的location_value值,并获取与所述location块对应的server块的server_name信息和port信息,将所述location_value值、所述server_name信息、所述port信息和所述第二URI按第二拼接方式进行拼接,生成对应的URL。
在获取到第二URI之后,获取location块的location_value值,并获取与该location块对应的server块的server_name信息和port信息,将location_value值、server_name信息、port信息和第二URI按第二拼接方式进行拼接,生成对应的URL。具体的第二拼接方式为:http://server_name:port/location_value/index.php/第二URI。
本发明还提供一种URL提取装置。
参照图3,图3为本发明URL提取装置第一实施例的功能模块示意图。
如图3所示,所述URL提取装置包括:
获取模块10,用于获取预设数组中预设模块的上下文指针对象ctx;
匹配模块20,用于遍历所述ctx中的各服务server块,并定位至所述server块中的位置location块,从所述location块中匹配得到根root目录和通用网关接口CGI路径;
生成模块30,用于检测所述root目录与所述CGI路径的前缀字符串是否相匹配,得到检测结果,并根据所述检测结果和预设规则生成对应的统一资源定位符URL。
进一步地,所述生成模块30包括:
第一获取单元,用于若检测到所述root目录与所述CGI路径的前缀字符串相匹配,则根据所述root目录和所述CGI路径得到第一统一资源标识符URI,并获取与所述location块对应的server块的名称server_name信息和端口port信息;
第一生成单元,用于将所述第一URI、所述server_name信息和所述port信息按第一拼接方式进行拼接,生成对应的URL。
进一步地,所述生成模块30还包括:
检测单元,用于若检测到所述root目录与所述CGI路径的前缀字符串不匹配,则根据所述root目录和所述CGI路径获取nginx.conf文件中的index.php入口文件,并检测所述index.php入口文件是否符合预设条件,以检测所述CGI路径对应的Web框架是否为MVC框架;
第二获取单元,用于若是,则获取所述Web框架的路由配置文件,并根据所述路由配置文件得到URI,记为第二URI;
第二生成单元,用于获取所述location块的location_value值,并获取与所述location块对应的server块的server_name信息和port信息,将所述location_value值、所述server_name信息、所述port信息和所述第二URI按第二拼接方式进行拼接,生成对应的URL。
进一步地,所述第二获取单元包括:
执行子单元,用于通过预设超文本预处理器php扩展插件的php执行文件调用执行所述index.php入口文件,得到所述index.php入口文件执行的语法树;
获取子单元,用于根据所述Web框架的类型从所述语法树中获取所述Web框架的路由配置文件;
解析子单元,用于解析所述路由配置文件得到所述Web框架的路由规则,并根据所述路由规则得到URI,记为第二URI。
进一步的,所述匹配模块20具体用于:基于预设匹配规则从所述location块中匹配得到root目录和CGI路径,其中,所述预设匹配规则包括精确匹配、前缀匹配、正则匹配、正常匹配和全匹配中的一种或多种。
其中,上述URL提取装置中各个模块的功能实现与上述URL提取方法实施例中各步骤相对应,其功能和实现过程在此处不再一一赘述。
本发明还提供一种计算机可读存储介质,该计算机可读存储介质上存储有URL提取程序,所述URL提取程序被处理器执行时实现如以上任一项实施例所述的URL提取方法的步骤。
本发明计算机可读存储介质的具体实施例与上述URL提取方法各实施例基本相同,在此不作赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种URL提取方法,其特征在于,所述URL提取方法包括:
获取预设数组中预设模块的上下文指针对象ctx;
遍历所述ctx中的各服务server块,并定位至所述server块中的位置location块,从所述location块中匹配得到根root目录和通用网关接口CGI路径;
检测所述root目录与所述CGI路径的前缀字符串是否相匹配,得到检测结果,并根据所述检测结果和预设规则生成对应的统一资源定位符URL。
2.如权利要求1所述的URL提取方法,其特征在于,所述根据所述检测结果和预设规则生成对应的统一资源定位符URL的步骤包括:
若检测到所述root目录与所述CGI路径的前缀字符串相匹配,则根据所述root目录和所述CGI路径得到第一统一资源标识符URI,并获取与所述location块对应的server块的名称server_name信息和端口port信息;
将所述第一URI、所述server_name信息和所述port信息按第一拼接方式进行拼接,生成对应的URL。
3.如权利要求1所述的URL提取方法,其特征在于,所述根据所述检测结果和预设规则生成对应的统一资源定位符URL的步骤包括:
若检测到所述root目录与所述CGI路径的前缀字符串不匹配,则根据所述root目录和所述CGI路径获取nginx.conf文件中的index.php入口文件,并检测所述index.php入口文件是否符合预设条件,以检测所述CGI路径对应的Web框架是否为MVC框架;
若是,则获取所述Web框架的路由配置文件,并根据所述路由配置文件得到URI,记为第二URI;
获取所述location块的location_value值,并获取与所述location块对应的server块的server_name信息和port信息,将所述location_value值、所述server_name信息、所述port信息和所述第二URI按第二拼接方式进行拼接,生成对应的URL。
4.如权利要求3所述的URL提取方法,其特征在于,所述获取所述Web框架的路由配置文件,并根据所述路由配置文件得到URI,记为第二URI的步骤包括:
通过预设超文本预处理器php扩展插件的php执行文件调用执行所述index.php入口文件,得到所述index.php入口文件执行的语法树;
根据所述Web框架的类型从所述语法树中获取所述Web框架的路由配置文件;
解析所述路由配置文件得到所述Web框架的路由规则,并根据所述路由规则得到URI,记为第二URI。
5.如权利要求1至4中任一项所述的URL提取方法,其特征在于,所述从所述location块中匹配得到根root目录和通用网关接口CGI路径的步骤包括:
基于预设匹配规则从所述location块中匹配得到root目录和CGI路径,其中,所述预设匹配规则包括精确匹配、前缀匹配、正则匹配、正常匹配和全匹配中的一种或多种。
6.一种URL提取装置,其特征在于,所述URL提取装置包括:
获取模块,用于获取预设数组中预设模块的上下文指针对象ctx;
匹配模块,用于遍历所述ctx中的各服务server块,并定位至所述server块中的位置location块,从所述location块中匹配得到根root目录和通用网关接口CGI路径;
生成模块,用于检测所述root目录与所述CGI路径的前缀字符串是否相匹配,得到检测结果,并根据所述检测结果和预设规则生成对应的统一资源定位符URL。
7.如权利要求6所述的URL提取装置,其特征在于,所述生成模块包括:
第一获取单元,用于若检测到所述root目录与所述CGI路径的前缀字符串相匹配,则根据所述root目录和所述CGI路径得到第一统一资源标识符URI,并获取与所述location块对应的server块的名称server_name信息和端口port信息;
第一生成单元,用于将所述第一URI、所述server_name信息和所述port信息按第一拼接方式进行拼接,生成对应的URL。
8.如权利要求6所述的URL提取装置,其特征在于,所述生成模块还包括:
检测单元,用于若检测到所述root目录与所述CGI路径的前缀字符串不匹配,则根据所述root目录和所述CGI路径获取nginx.conf文件中的index.php入口文件,并检测所述index.php入口文件是否符合预设条件,以检测所述CGI路径对应的Web框架是否为MVC框架;
第二获取单元,用于若是,则获取所述Web框架的路由配置文件,并根据所述路由配置文件得到URI,记为第二URI;
第二生成单元,用于获取所述location块的location_value值,并获取与所述location块对应的server块的server_name信息和port信息,将所述location_value值、所述server_name信息、所述port信息和所述第二URI按第二拼接方式进行拼接,生成对应的URL。
9.一种URL提取设备,其特征在于,所述URL提取设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的URL提取程序,所述URL提取程序被所述处理器执行时实现如权利要求1至5中任一项所述的URL提取方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有URL提取程序,所述URL提取程序被处理器执行时实现如权利要求1至5中任一项所述的URL提取方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910776693.6A CN110472165B (zh) | 2019-08-20 | 2019-08-20 | Url提取方法、装置、设备及计算机可读存储介质 |
PCT/CN2020/108187 WO2021031902A1 (zh) | 2019-08-20 | 2020-08-10 | Url提取方法、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910776693.6A CN110472165B (zh) | 2019-08-20 | 2019-08-20 | Url提取方法、装置、设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110472165A true CN110472165A (zh) | 2019-11-19 |
CN110472165B CN110472165B (zh) | 2024-01-16 |
Family
ID=68512733
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910776693.6A Active CN110472165B (zh) | 2019-08-20 | 2019-08-20 | Url提取方法、装置、设备及计算机可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110472165B (zh) |
WO (1) | WO2021031902A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111078140A (zh) * | 2019-11-20 | 2020-04-28 | 岭澳核电有限公司 | 核电站文件上传管理方法、装置、终端设备及介质 |
WO2021031902A1 (zh) * | 2019-08-20 | 2021-02-25 | 深圳前海微众银行股份有限公司 | Url提取方法、装置、设备及计算机可读存储介质 |
CN112632423A (zh) * | 2021-03-10 | 2021-04-09 | 北京邮电大学 | Url提取方法及装置 |
CN115499274A (zh) * | 2022-09-30 | 2022-12-20 | 中国银行股份有限公司 | 一种拼接参数网关路由方法和系统、电子设备、存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6411952B1 (en) * | 1998-06-24 | 2002-06-25 | Compaq Information Technologies Group, Lp | Method for learning character patterns to interactively control the scope of a web crawler |
US6519626B1 (en) * | 1999-07-26 | 2003-02-11 | Microsoft Corporation | System and method for converting a file system path into a uniform resource locator |
US20030208472A1 (en) * | 2000-04-11 | 2003-11-06 | Pham Peter Manh | Method and apparatus for transparent keyword-based hyperlink |
KR20170049169A (ko) * | 2015-10-28 | 2017-05-10 | 주식회사 엘지유플러스 | 인터넷을 통한 정보의 접속 제어 장치 및 그 방법 |
CN106815248A (zh) * | 2015-11-30 | 2017-06-09 | 北京国双科技有限公司 | 网站分析方法及装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7512665B1 (en) * | 2000-08-17 | 2009-03-31 | International Business Machines Corporation | Chained uniform resource locators |
CN107040504B (zh) * | 2016-02-04 | 2020-05-01 | 北京京东尚科信息技术有限公司 | 测试方法和装置 |
CN108809890B (zh) * | 2017-04-26 | 2021-05-25 | 腾讯科技(深圳)有限公司 | 漏洞检测方法、测试服务器及客户端 |
CN109710861B (zh) * | 2018-12-26 | 2023-04-11 | 贵阳朗玛信息技术股份有限公司 | 一种生成url的系统及方法 |
CN110472165B (zh) * | 2019-08-20 | 2024-01-16 | 深圳前海微众银行股份有限公司 | Url提取方法、装置、设备及计算机可读存储介质 |
-
2019
- 2019-08-20 CN CN201910776693.6A patent/CN110472165B/zh active Active
-
2020
- 2020-08-10 WO PCT/CN2020/108187 patent/WO2021031902A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6411952B1 (en) * | 1998-06-24 | 2002-06-25 | Compaq Information Technologies Group, Lp | Method for learning character patterns to interactively control the scope of a web crawler |
US6519626B1 (en) * | 1999-07-26 | 2003-02-11 | Microsoft Corporation | System and method for converting a file system path into a uniform resource locator |
US20030208472A1 (en) * | 2000-04-11 | 2003-11-06 | Pham Peter Manh | Method and apparatus for transparent keyword-based hyperlink |
KR20170049169A (ko) * | 2015-10-28 | 2017-05-10 | 주식회사 엘지유플러스 | 인터넷을 통한 정보의 접속 제어 장치 및 그 방법 |
CN106815248A (zh) * | 2015-11-30 | 2017-06-09 | 北京国双科技有限公司 | 网站分析方法及装置 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021031902A1 (zh) * | 2019-08-20 | 2021-02-25 | 深圳前海微众银行股份有限公司 | Url提取方法、装置、设备及计算机可读存储介质 |
CN111078140A (zh) * | 2019-11-20 | 2020-04-28 | 岭澳核电有限公司 | 核电站文件上传管理方法、装置、终端设备及介质 |
CN111078140B (zh) * | 2019-11-20 | 2023-05-23 | 岭澳核电有限公司 | 核电站文件上传管理方法、装置、终端设备及介质 |
CN112632423A (zh) * | 2021-03-10 | 2021-04-09 | 北京邮电大学 | Url提取方法及装置 |
CN115499274A (zh) * | 2022-09-30 | 2022-12-20 | 中国银行股份有限公司 | 一种拼接参数网关路由方法和系统、电子设备、存储介质 |
CN115499274B (zh) * | 2022-09-30 | 2024-03-22 | 中国银行股份有限公司 | 一种拼接参数网关路由方法和系统、电子设备、存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110472165B (zh) | 2024-01-16 |
WO2021031902A1 (zh) | 2021-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110472165A (zh) | Url提取方法、装置、设备及计算机可读存储介质 | |
Xiao et al. | Iconintent: automatic identification of sensitive ui widgets based on icon classification for android apps | |
CN106227774B (zh) | 信息搜索方法及装置 | |
US8874542B2 (en) | Displaying browse sequence with search results | |
WO2021017735A1 (zh) | 一种智能合约的形式化验证方法、电子装置及存储介质 | |
US20150278080A1 (en) | Processing automation scripts of software | |
US9027837B2 (en) | Method of recognizing QR code in image data and apparatus and method for converting QR code in content data into touchable object | |
CN108647355A (zh) | 测试用例的展示方法、装置、设备及存储介质 | |
US20140258990A1 (en) | Method and system for providing a core dump-level stack trace | |
CN104537305B (zh) | 网站漏洞检测方法和系统 | |
CN107016282A (zh) | 一种信息处理方法及装置 | |
US20040230898A1 (en) | Identifying topics in structured documents for machine translation | |
CN111602129B (zh) | 针对注释和墨迹的智能搜索 | |
Wang et al. | Do as you say: Consistency detection of data practice in program code and privacy policy in mini-app | |
CN106919593B (zh) | 一种搜索的方法和装置 | |
CN107016043A (zh) | 一种信息处理方法及装置 | |
US20130230248A1 (en) | Ensuring validity of the bookmark reference in a collaborative bookmarking system | |
WO2020073493A1 (zh) | Sql注入漏洞检测方法、装置、设备及可读存储介质 | |
Meng et al. | WeMinT: Tainting Sensitive Data Leaks in WeChat Mini-Programs | |
CN113987496A (zh) | 恶意攻击检测的方法、装置、电子设备及可读存储介质 | |
US11163876B2 (en) | Guided security analysis | |
CN111859387A (zh) | Android平台软件漏洞模式的自动化构建方法 | |
CN114679321B (zh) | 一种ssti漏洞的检测方法、装置及介质 | |
US11573889B2 (en) | Using graphical image analysis for identifying image objects | |
KR102622018B1 (ko) | 보안데이터 처리장치, 보안데이터 처리방법 및 보안데이터를 처리하는 컴퓨터로 실행 가능한 프로그램을 저장하는 저장매체 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |