[发明专利]通过Hook关键函数和事件获取URL的方法在审
申请号: | 202110719389.5 | 申请日: | 2021-06-28 |
公开(公告)号: | CN113609412A | 公开(公告)日: | 2021-11-05 |
发明(设计)人: | 刘加勇;陈中原;白兴伟;吴璇 | 申请(专利权)人: | 北京华云安信息技术有限公司 |
主分类号: | G06F16/955 | 分类号: | G06F16/955;G06F17/15 |
代理公司: | 北京华专卓海知识产权代理事务所(普通合伙) 11664 | 代理人: | 王一 |
地址: | 100094 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 通过 hook 关键 函数 事件 获取 url 方法 | ||
本公开的实施例提供了通过Hook关键函数和事件获取URL的方法、装置、设备和计算机可读存储介质。所述方法包括通过Hook服务的方式,运行注入浏览器中的自定义js代码和劫持函数;通过所述自定义js代码和劫持函数,Hook所述浏览器进行页面加载时的关键函数和事件;基于所述关键函数和事件,获取与其对应的所有URL。以此方式,解决了经过Javascript计算生成、Ajax加载、采用前后端分离框架(如Vue、React)构建的系统无法抓取URL的问题。
技术领域
本公开的实施例一般涉及数据处理领域,并且更具体地,涉及一种通过Hook关键函数和事件获取URL的方法、装置、设备和计算机可读存储介质。
背景技术
现有页面URL抓取方法,基本是通过URLlib、requests、bs4、scrapy、pyspider等各种类库进行请求访问,然后对响应的结果进行解析,从而获取响应结果中的URL。
但是,随着Web 2.0的发展,页面中的AJAX也越来越多。由于传统抓取URL方式依靠静态分析,因此,不能准确的抓取到页面中的AJAX请求以及动态更新的内容的URL。
发明内容
根据本公开的实施例,提供了一种通过Hook关键函数和事件获取URL的方案。
在本公开的第一方面,提供了一种通过Hook关键函数和事件获取URL的方法。该方法包括:
通过Hook服务的方式,运行注入浏览器中的自定义js代码和劫持函数;
通过所述自定义js代码和劫持函数,Hook所述浏览器进行页面加载时的关键函数和事件;
基于所述关键函数和事件,获取与其对应的所有URL。
进一步地,在通过挂钩Hook服务的方式,运行已注入目标进程中的js代码和劫持函数之前包括:
按照预设规则设置浏览器选项,关闭预览器的XSS安全策略。
进一步地,所述通过所述自定义js代码和劫持函数,Hook所述浏览器进行页面加载时的关键函数和事件包括:
通过所述自定义js代码和劫持函数对页面路由进行监听,Hook所述浏览器进行页面加载时的关键函数和事件。
进一步地,所述通过所述自定义js代码和劫持函数对页面路由进行监听包括:
通过所述自定义js代码和劫持函数监听页面路由的hash变化;
通过所述hash变化监听页面路由变化。
进一步地,所述基于所述页面路由变化Hook所述浏览器进行页面加载时的关键函数和事件包括:
锁定当前页面的导航请求,基于所述页面路由变化Hook所述浏览器进行页面加载时的关键函数和事件。
进一步地,所述锁定当前页面的导航请求包括:
拦截与当前页面相同URL的导航请求外的所有导航请求。
进一步地,所述锁定当前页面的导航请求,基于所述页面路由变化Hook所述浏览器进行页面加载时的关键函数和事件包括:
锁定当前页面的导航请求,基于所述页面路由变化Hook DOM0级事件注册信息;
根据所述DOM0级事件注册信息,触发并收集当前页面内注册过的全部函数和事件。
在本公开的第二方面,提供了一种通过Hook关键函数和事件获取URL的装置。该装置包括:
运行模块,用于通过Hook服务的方式,运行注入浏览器中的自定义js代码和劫持函数;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京华云安信息技术有限公司,未经北京华云安信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110719389.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:输电线辅助装置
- 下一篇:一种基于Transformer的缺陷检测方法及系统