safety-db:Python 包漏洞情报库
safety-db:Python 包漏洞情报库
pyupio/safety-db 在 GitHub 上有 786 Star。这是一个收录 Python 包已知安全漏洞的数据库,由 pyup.io 维护,每月同步一次更新。
1、 这是什么
它是一个纯数据仓库,不直接执行扫描,而是为安全工具提供漏洞情报。数据主要通过对 CVE 和变更日志进行关键词过滤,再经人工复核后录入。覆盖范围是 Python 生态中已公开的包漏洞信息。

2、 为什么要用它
Python 项目依赖树动辄几十上百个包,手动跟踪每个包的漏洞公告不现实。当你在生产环境运行 pip install 时,可能已经引入了带有已知 CVE 的库。
这个数据库把漏洞情报集中管理,工具链可以直接查它。比如 Safety 命令行工具会拿本地 requirements 和它比对,发现风险版本就报出来。Django 项目也能装个插件,在管理后台看到当前版本是否有安全问题。
数据是开源的,不绑死商业服务。你可以直接 import 库里的 INSECURE 和 INSECURE_FULL 字典,在自己的流程里用。
3、 配套工具有哪些
围绕这个数据库,pyup.io 和社区搭了一套工具链:
- Safety:命令行工具,扫虚拟环境和 requirements 文件
- Safety CI:GitHub 集成,检查提交和 Pull Request
- Safety Django:Django 管理后台的安全状态提醒
- Safety Bar:macOS 菜单栏应用
- pre-commit hook:提交前自动检查依赖
- pipenv check:pipenv 内置的漏洞检测,底层依赖 safety-db

4、 怎么安装使用
安装:
pip install safety-db
在代码里直接用:
from safety_db import INSECURE, INSECURE_FULL
INSECURE 是简版,只有包名和不安全版本列表。INSECURE_FULL 额外带了 CVE 描述和链接,以及变更日志中的相关片段。
如果想直接读原始数据,仓库 data 目录下有两个 JSON 文件:
- insecure.json:包名和不安全版本列表
- insecure_full.json:包含 CVE 描述、URL 和变更日志节选
5、 授权方式
数据库采用 CC BY-NC-SA 4.0 许可证。非商业项目可以自由使用,只要注明来源。商业用途需要联系 pyup.io 获取授权。
对于需要给 Python 项目做依赖安全检查的开发者,这个库是一个可以直接接入的数据源。
.io 获取授权。
对于需要给 Python 项目做依赖安全检查的开发者,这个库是一个可以直接接入的数据源。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)