[发明专利]一种实现流式和多模式快速查找网页中URL链接的方法有效
申请号: | 201710123247.6 | 申请日: | 2017-03-03 |
公开(公告)号: | CN107122389B | 公开(公告)日: | 2018-05-04 |
发明(设计)人: | 叶梅北宁;郑秋华;刘成科;张佳皓;范宝文;竹致远;朱焕杰;姜明 | 申请(专利权)人: | 杭州电子科技大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 杭州君度专利代理事务所(特殊普通合伙)33240 | 代理人: | 杜军 |
地址: | 310018 浙*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 实现 模式 快速 查找 网页 url 链接 方法 | ||
技术领域
本发明属于计算机技术领域,涉及一种实现流式和多模式快速查找网页中URL链接的方法。
背景技术
URL,统一资源定位符,用于唯一的标识万维网上的某个资源。通常,网页中URL确定后是不变的,如“http://xxx.xxx.xxx/xxx/xxx.html”、“/xxx/xxx/xxx/”、“./xxx/xxx”、“../../xxx/xxx.css”等。网页中URL的不变性使得黑客对Web应用攻击可以构造相关攻击载荷,进行各种攻击。如能通过代理对服务器解析用户请求后返回响应中网页所包含的URL链接进行动态随机变化,可以有效防御针对Web应用的攻击。通常,网页中的URL置于“href”、“imgsrc”、“form”、“backgorund”、“embed src”等标签中或是关键词后。很明显,快速找到响应中网页所包含的链接并将其替换,能有效减少URL动态变化防御方法对系统性能的影响。
目前,常用的网页链接查找方法有:(1)基于全文利用正则表达式方法或利用快速字符串匹配方法,如KMP算法;(2)基于流式的字符串匹配方法,如用于处理xml文件的sax处理方法。
其中基于全文的方法需要缓存网页数据,对代理服务器的空间复杂度要求较高。一般的字符串匹配方法缺少对流式数据和多模式字符串匹配的考虑,并不能直接应用。sax处理方法则对各种标签考虑过多,导致其性能不是太好。
发明内容
本发明的目的是为了解决目前URL动态变化防御方法中对网页中链接的快速、流式和多模式查找的要求,提出了一种实现流式和多模式快速查找网页中URL链接的方法。
本发明解决其技术问题所采用的技术方案包括如下步骤:
步骤1:初始化系统:创建链接标签匹配关键词字典,在字典中加入要处理的链接标签匹配关键词记录。
每一条链接标签匹配关键词记录包含一个左端边界、一个右端边界、一个左端边界需匹配位置、一个右端边界需匹配位置以及该链接标签匹配关键词的处理函数。
设当前正在匹配的链接标签匹配关键词为空,同时设标签跨数据块标记为假。
步骤2:读取Web服务器返回的一个响应数据包,将响应数据包的第一个字节地址设为数据处理起始点。
步骤2.1:读取响应数据包中的当前字节,判断是否为响应数据包结束标记。如果该字节不是响应数据包的结束标记,跳转到步骤2.2;否则跳转到步骤3。
步骤2.2:检查当前正在匹配的链接标签匹配关键词是否为空,如果不为空跳转到步骤2.6。否则,跳转到步骤2.3。
步骤2.3:将读取的当前字节与链接标签关键词字典中所有标签关键词的左端边界进行匹配。
将读取的当前字节与链接标签关键词字典中的一个标签关键词的左端边界进行匹配的流程为:
如果读取的当前字节与该标签关键词的左端边界需匹配位置对应的字节相等,则将该标签关键词的左端边界需匹配位置后移一个位置。否则,将该标签关键词的左端边界需匹配位置重置到初始位置,并再次检查该标签关键词的左端边界需匹配位置对应的字节是否与读取的字节相同,如相同则将该标签关键词的左端边界需匹配位置后移一个位置。
如果某一标签关键词的左端边界已经被完全匹配,则设置该标签关键词为当前正在匹配的标签关键词,跳转到步骤2.4。否则将读取的字节与标签关键词字典中的一个标签关键词的左端边界进行匹配的流程重复进行,直至所有标签关键词都和该读取的字节进行过匹配,然后跳转到步骤2.5。
步骤2.4:提取数据处理起始点与当前读取的数据之间的数据,并将提取的数据放入非标签数据缓冲区中。
步骤2.5:将数据包的当前处理字节位置向后移动一个位置,跳到步骤2.1。
步骤2.6:将读取的字节与当前正在匹配的标签关键词的右端边界进行匹配。如果当前读取的字节与当前正在匹配的标签关键词的右端边界需匹配位置对应的字节相等,将当前正在匹配的标签关键词的右端边界需匹配位置后移一个位置。否则,将该标签关键词的右端边界需匹配位置移到起始位置,并检查该标签关键词的右端边界需匹配位置对应的字节是否与当前读取的字节相同,如相同则将该标签关键词的右端边界需匹配位置后移一个位置。如果该标签关键词的右端边界已经被完全匹配,跳转到步骤2.7。否则,跳转到步骤3。
步骤2.7:如果标签跨数据包标记为假,则将标签左端边界与右端边界之间的数据添加到待处理链接缓冲区中;否则,将数据处理起始点与当前处理关键词右端边界之间的数据添加到待处理链接数据缓冲区之中。跳转到步骤2.8。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州电子科技大学,未经杭州电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710123247.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种学员与驾培车辆的对应方法和装置
- 下一篇:基于用户群组的推荐系统构建方法