[发明专利]识别项目中引用Python开源组件的方法及系统、设备有效
申请号: | 202010667719.6 | 申请日: | 2020-07-13 |
公开(公告)号: | CN111538495B | 公开(公告)日: | 2020-10-23 |
发明(设计)人: | 汪杰;万振华;王颉;董燕;李华 | 申请(专利权)人: | 深圳开源互联网安全技术有限公司 |
主分类号: | G06F8/30 | 分类号: | G06F8/30;G06F8/41 |
代理公司: | 深圳市恒申知识产权事务所(普通合伙) 44312 | 代理人: | 任哲夫 |
地址: | 518100 广东省深圳市龙华区龙华*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 识别 项目 引用 python 组件 方法 系统 设备 | ||
本发明提供了一种识别项目中引用Python开源组件的方法及系统、设备及存储介质,包括:解析项目,得到第一疑似依赖组件结果集,将第一疑似依赖组件结果集与Python标准库对比,得到第二疑似依赖组件结果集;将第二疑似依赖组件结果集与Python映射库对比,得到第三疑似依赖组件结果集;扫描项目的配置文件及虚拟环境的组件信息;若均未扫描到,将第三疑似依赖组件结果集与Python版本库比对,得到第一依赖组件结果集,若扫描到,得到配置文件与虚拟环境的第四疑似依赖组件结果集,则将第三疑似依赖组件结果集与第四疑似依赖组件结果集对比,得到第一依赖组件结果集。在该方法中,只针对当前的项目进行组件检测,可找出所有的直接间接的依赖组件。
技术领域
本发明属于计算机技术领域,尤其涉及一种识别项目中引用的Python开源组件的方法及系统、设备及存储介质。
背景技术
由于Python项目的特性,现在一般分析项目中的Python组件主要用的pip自带的freeze命令,生成requirements.txt,或者其他的一些python插件生成类似如requirements.txt。requirements.txt文件有两个缺陷,第一个是里面的组件信息只是针对当前Python环境里面的组件,不是针对项目的,所以很容易出现非本项目中的组件信息,第二个requirements.txt里面记录的组件信息只是到第一层直接依赖的组件,没有显示出间接依赖的组件,这样就容易漏掉很多组件。
目前还没有一个成熟的静态扫描工具或者方法,大家通用的做法就是为当前的项目建立一个单独的Python虚拟环境,然后在这个虚拟环境里安装项目所需要的组件,然后利用诸如freeze这样的命令执行获得一个类似requirements.txt这样的文件,记录了当前环境里面所有的组件信息。这个方法不会误统计组件,但是可能会漏一些间接依赖组件,并且如果有多个项目,对环境的维护管理比较复杂,要保证每个环境的纯净,如果当前环境中引用的其他非本项目的组件,可能会导致检测的结果就会出现非本项目的组件。
发明内容
本发明所要解决的技术问题是:针对现有技术的问题,本发明提供了一种识别项目中引用Python开源组件的方法。
第一方面,本申请实施例提供了一种识别项目中引用Python开源组件的方法,所述方法包括:
解析项目,得到第一疑似依赖组件结果集,将所述第一疑似依赖组件结果集与Python标准库进行对比,得到第二疑似依赖组件结果集;
将所述第二疑似依赖组件结果集与Python映射库进行对比,得到第三疑似依赖组件结果集;
扫描所述项目的配置文件及虚拟环境的组件信息;
若两者均未扫描到,则将所述第三疑似依赖组件结果集与所述Python版本库比对,得到第一依赖组件结果集,若扫描到,得到配置文件与虚拟环境的第四疑似依赖组件结果集,则将所述第三疑似依赖组件结果集与所述第四疑似依赖组件结果集对比,得到第一依赖组件结果集。
第二方面,本申请实施例还提供了一种识别项目中引用Python开源组件的系统,所述系统包括:
第一对比模块:解析项目,得到第一疑似依赖组件结果集,将所述第一疑似依赖组件结果集与Python标准库进行对比,得到第二疑似依赖组件结果集;
第二对比模块:将所述第二疑似依赖组件结果集与Python映射库进行对比,得到第三疑似依赖组件结果集;
扫描模块:扫描所述项目的配置文件及虚拟环境的组件信息;
生成模块:若两者均未扫描到,则将所述第三疑似依赖组件结果集与所述Python版本库比对,得到第一依赖组件结果集,若扫描到,得到配置文件与虚拟环境的第四疑似依赖组件结果集,则将所述第三疑似依赖组件结果集与所述第四疑似依赖组件结果集对比,得到第一依赖组件结果集。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳开源互联网安全技术有限公司,未经深圳开源互联网安全技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010667719.6/2.html,转载请声明来源钻瓜专利网。