URL模糊匹配方法、装置和系统制造方法及图纸

技术编号:26650754 阅读:17 留言:0更新日期:2020-12-09 00:51
本发明专利技术涉及一种URL模糊匹配方法、装置和系统,根据模糊匹配规则,构建有向无环图;将URL字符串分为至少一段待匹配字符串;将每个待匹配字符串分别与有向无环图中对应的匹配规则段匹配,确定段匹配结果;将每个待匹配字符串对应的段匹配结果存储在对应的段匹配结果集合中;分段遍历模糊匹配规则,若模糊匹配规则中的分段规则都存在于对应的段匹配结果集合中,将模糊匹配规则作为目标匹配结果。这样,只需遍历一遍URL字符串,根据有向无环图确定URL字符串的段匹配结果集合,再遍历所有模糊匹配规则的所有分段规则即可确定目标匹配结果,字符串段数一般小于字符串字符数,模糊匹配规则较多时,能优化匹配路径速度,提高模糊匹配效率。

【技术实现步骤摘要】
URL模糊匹配方法、装置和系统
本专利技术涉及模糊匹配
,具体涉及一种URL模糊匹配方法、装置和系统。
技术介绍
URL的分类匹配主要用于网站开发的路由阶段、网站流量审计的包预处理阶段。网站开发通常需要建立一个路由表,将不同的URL输入到路由表中,给不同URL的请求分配相应的后台业务逻辑;网站流量审计中,由于不同URL对应的业务不同,有时需要先对流量包进行URL分类,针对不同类型的URL,使用不同的审计方法处理网站流量。URL的分类匹配主要分为精确匹配和模糊匹配。匹配URL的过程通常是预先在系统中由一组规则共同构成一个集合,在这个集合中找到所有当前URL符合的规则。精确匹配要求URL与规则完全一致,通常使用哈希表作为数据结构,哈希表可以快速搜索键值对来精确匹配某个值是否在当前哈希表中。通过建立好的一批规则哈希表,可以很快得出URL是否与这一批规则中的某一条规则完全一致。模糊匹配相关的规则包含一些通配符,可以通过人工设置不同的规则将结构类似的URL聚类到一起。现有技术中,模糊匹配通常使用正则表达式完成模糊匹配。但是通过正则表达式进行模糊匹配需要将每个正则表达式规则均遍历一遍URL字符串,每增加一条模糊匹配规则,则需要多匹配一次URL字符串,导致模糊匹配的效率较低。
技术实现思路
有鉴于此,本专利技术的目的在于提供一种URL模糊匹配方法、装置和系统,以解决现有技术中通过正则表达式进行模糊匹配需要将每个正则表达式规则均遍历一遍URL字符串,每增加一条模糊匹配规则,则需要多匹配一次URL字符串,导致模糊匹配的效率较低的问题。为实现以上目的,本专利技术采用如下技术方案:一种URL模糊匹配方法,包括:根据预先设置的模糊匹配规则,构建有向无环图;对URL字符串进行分段处理,得到至少一段携带分段标识的待匹配字符串;将每个所述待匹配字符串分别与所述有向无环图中所述分段标识对应的匹配规则段进行匹配,确定每个所述待匹配字符串对应的段匹配结果;将每个所述待匹配字符串对应的段匹配结果存储在所述待匹配字符串对应的段匹配结果集合中,得到每个所述待匹配字符串对应的段匹配结果集合;对所述模糊匹配规则进行分段遍历,判断所述模糊匹配规则中的每一段分段规则是否都存在于对应的所述段匹配结果集合中;若所述模糊匹配规则中的每一段分段规则都存在于对应的所述段匹配结果集合中,则将所述模糊匹配规则作为目标匹配结果;将所有所述目标匹配结果输出。进一步地,上述URL模糊匹配方法中,所述模糊匹配规则的数量至少为一条;所述根据预先设置的模糊匹配规则,构建有向无环图,包括:将每条所述模糊匹配规则进行分段处理,得到携带有所述分段标识的分段规则;将所有分段规则根据所述分段标识分别载入到预设的图模型中,构建出所述有向无环图。进一步地,上述URL模糊匹配方法中,所述将每个所述待匹配字符串分别与所述有向无环图中所述分段标识对应的匹配规则段进行匹配,确定每个所述待匹配字符串对应的段匹配结果,包括:确定所有所述待匹配字符串中当前待匹配字符串的所有携带字节标识的字符;将所有所述字符与所述有向无环图中所述当前待匹配字符串携带的所述分段标识对应的所述匹配规则段进行字符匹配,确定所述当前待匹配字符串对应的段匹配结果;判断所有所述待匹配字符串是否都完成字符串匹配;若是,则获取每个所述待匹配字符串对应的段匹配结果;若否,则将所述当前待匹配字符串的下一个待匹配字符串作为所述当前待匹配字符串,继续进行字符串匹配。进一步地,上述URL模糊匹配方法中,所述将所有所述字符与所述有向无环图中所述当前待匹配字符串携带的所述分段标识对应的所述匹配规则段进行字符匹配,确定所述当前待匹配字符串对应的段匹配结果,包括:确定所述当前待匹配字符串的携带字节标识的当前字符、已匹配字符和目标规则字符;确定所述有向无环图中所述当前待匹配字符串携带的分段标识对应的匹配规则段中,与所述当前字符携带的所述字节标识相对应且与所述目标规则字符相关联的所有规则字符;若所有所述规则字符中存在通配符,则将所述已匹配字符与所述通配符组合,作为所述段匹配结果;若所有所述规则字符中存在与所述当前字符相同的目标规则字符,将所述已匹配字符与所述目标规则字符的组合作为所述已匹配字符;判断所述当前字符是否为所述当前字符所在的所述当前待匹配字符串中的最后一个字符;若所述当前字符不是所述当前字符所在的所述当前待匹配字符串中的最后一个字符,将所述当前待匹配字符串中所述当前字符的下一个字符作为所述当前字符,从而继续进行字符匹配;若所述当前字符是所述当前字符所在的所述当前待匹配字符串中的最后一个字符,且所述目标规则字符为所述当前待匹配字符串对应的所述匹配规则段中的最后一个字符,则将所述已匹配字符作为所述段匹配结果。进一步地,上述URL模糊匹配方法中,所述确定所述有向无环图中所述当前待匹配字符串携带的分段标识对应的匹配规则段中,与所述当前字符携带的所述字节标识相对应且与所述目标规则字符相关联的所有规则字符之后,还包括:若所有所述规则字符中既不存在所述通配符,也不存在与所述当前字符相同的所述目标规则字符,则停止对所述当前字符所在的所述当前待匹配字符串进行字符匹配。进一步地,上述URL模糊匹配方法中,所述将所有所述目标匹配结果输出,包括:将所有所述目标匹配结果按照匹配范围的大小分别加入到预设的输出序列中,以使所有所述目标匹配结果按照匹配范围的大小输出。本专利技术还提供一种URL模糊匹配装置,包括:构建模块,用于根据预先设置的模糊匹配规则,构建有向无环图;字符串分段模块,用于对URL字符串进行分段处理,得到至少一段携带分段标识的待匹配字符串;匹配模块,用于将每个所述待匹配字符串分别与所述有向无环图中所述分段标识对应的匹配规则段进行匹配,确定每个所述待匹配字符串对应的段匹配结果;存储模块,用于将每个所述待匹配字符串对应的段匹配结果存储在所述待匹配字符串对应的段匹配结果集合中,得到每个所述待匹配字符串对应的段匹配结果集合;规则遍历模块,用于对所述模糊匹配规则进行分段遍历,判断所述模糊匹配规则中的每一段分段规则是否都存在于对应的所述段匹配结果集合中;确定模块,用于若所述模糊匹配规则中的每一段分段规则都存在于对应的所述段匹配结果集合中,则将所述模糊匹配规则作为目标匹配结果;输出模块,用于将所有所述目标匹配结果输出。进一步地,上述URL模糊匹配装置中,所述模糊匹配规则的数量至少为一条;所述构建模块,具体用于将每条所述模糊匹配规则进行分段处理,得到携带有所述分段标识的分段规则;将所有分段规则根据所述分段标识分别载入到预设的图模型中,构建出所述有向无环图。进一步地,上述URL模糊匹配装置中,所述匹配模块包括:字符确定单元、字符匹配单元、判断单元、获取单元和字符串确本文档来自技高网...

【技术保护点】
1.一种URL模糊匹配方法,其特征在于,包括:/n根据预先设置的模糊匹配规则,构建有向无环图;/n对URL字符串进行分段处理,得到至少一段携带分段标识的待匹配字符串;/n将每个所述待匹配字符串分别与所述有向无环图中所述分段标识对应的匹配规则段进行匹配,确定每个所述待匹配字符串对应的段匹配结果;/n将每个所述待匹配字符串对应的段匹配结果存储在所述待匹配字符串对应的段匹配结果集合中,得到每个所述待匹配字符串对应的段匹配结果集合;/n对所述模糊匹配规则进行分段遍历,判断所述模糊匹配规则中的每一段分段规则是否都存在于对应的所述段匹配结果集合中;/n若所述模糊匹配规则中的每一段分段规则都存在于对应的所述段匹配结果集合中,则将所述模糊匹配规则作为目标匹配结果;/n将所有所述目标匹配结果输出。/n

【技术特征摘要】
1.一种URL模糊匹配方法,其特征在于,包括:
根据预先设置的模糊匹配规则,构建有向无环图;
对URL字符串进行分段处理,得到至少一段携带分段标识的待匹配字符串;
将每个所述待匹配字符串分别与所述有向无环图中所述分段标识对应的匹配规则段进行匹配,确定每个所述待匹配字符串对应的段匹配结果;
将每个所述待匹配字符串对应的段匹配结果存储在所述待匹配字符串对应的段匹配结果集合中,得到每个所述待匹配字符串对应的段匹配结果集合;
对所述模糊匹配规则进行分段遍历,判断所述模糊匹配规则中的每一段分段规则是否都存在于对应的所述段匹配结果集合中;
若所述模糊匹配规则中的每一段分段规则都存在于对应的所述段匹配结果集合中,则将所述模糊匹配规则作为目标匹配结果;
将所有所述目标匹配结果输出。


2.根据权利要求1所述的URL模糊匹配方法,其特征在于,所述模糊匹配规则的数量至少为一条;
所述根据预先设置的模糊匹配规则,构建有向无环图,包括:
将每条所述模糊匹配规则进行分段处理,得到携带有所述分段标识的分段规则;
将所有分段规则根据所述分段标识分别载入到预设的图模型中,构建出所述有向无环图。


3.根据权利要求1所述的URL模糊匹配方法,其特征在于,所述将每个所述待匹配字符串分别与所述有向无环图中所述分段标识对应的匹配规则段进行匹配,确定每个所述待匹配字符串对应的段匹配结果,包括:
确定所有所述待匹配字符串中当前待匹配字符串的所有携带字节标识的字符;
将所有所述字符与所述有向无环图中所述当前待匹配字符串携带的所述分段标识对应的所述匹配规则段进行字符匹配,确定所述当前待匹配字符串对应的段匹配结果;
判断所有所述待匹配字符串是否都完成字符串匹配;
若是,则获取每个所述待匹配字符串对应的段匹配结果;
若否,则将所述当前待匹配字符串的下一个待匹配字符串作为所述当前待匹配字符串,继续进行字符串匹配。


4.根据权利要求3所述的URL模糊匹配方法,其特征在于,所述将所有所述字符与所述有向无环图中所述当前待匹配字符串携带的所述分段标识对应的所述匹配规则段进行字符匹配,确定所述当前待匹配字符串对应的段匹配结果,包括:
确定所述当前待匹配字符串的携带字节标识的当前字符、已匹配字符和目标规则字符;
确定所述有向无环图中所述当前待匹配字符串携带的分段标识对应的匹配规则段中,与所述当前字符携带的所述字节标识相对应且与所述目标规则字符相关联的所有规则字符;
若所有所述规则字符中存在通配符,则将所述已匹配字符与所述通配符组合,作为所述段匹配结果;
若所有所述规则字符中存在与所述当前字符相同的目标规则字符,将所述已匹配字符与所述目标规则字符的组合作为所述已匹配字符;
判断所述当前字符是否为所述当前字符所在的所述当前待匹配字符串中的最后一个字符;
若所述当前字符不是所述当前字符所在的所述当前待匹配字符串中的最后一个字符,将所述当前待匹配字符串中所述当前字符的下一个字符作为所述当前字符,从而继续进行字符匹配;
若所述当前字符是所述当前字符所在的所述当前待匹配字符串中的最后一个字符,且所述目标规则字符为所述当前待匹配字符串对应的所述匹配规则段中的最...

【专利技术属性】
技术研发人员:毛志霆尚侠张雪松陈宁罗清篮
申请(专利权)人:上海谋乐网络科技有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1