必须使用pip-audit扫描Python依赖漏洞:安装后运行pip-audit -r requirements.txt,可递归解析所有直接与间接依赖,比对PyPI和GitHub安全数据库,输出含包名、版本、CVE编号及严重级别的结构化报告。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您在使用WorkBuddy进行项目协作或自动化构建时,需评估第三方依赖的安全风险,则必须对npm和pip所管理的包执行针对性漏洞扫描。以下是针对两种生态开展安全分析的具体操作路径:
一、使用npm audit检测Node.js依赖漏洞
npm audit是Node.js官方集成的安全审计工具,通过比对本地package-lock.json中记录的依赖版本与npm安全数据库(NSP)中的已知漏洞记录,识别潜在风险。
1、确保项目根目录下存在package-lock.json文件,若缺失则先执行npm install生成。
2、在终端中运行命令:npm audit,查看当前项目所有直接与传递性依赖中存在的漏洞列表,含CVSS评分、影响范围及修复建议。
3、执行自动修复:npm audit fix,该命令将尝试升级至兼容的最小安全版本;若需强制升级至最新主版本,使用npm audit fix --force。
4、如需导出结构化报告,运行:npm audit --json > audit-report.json,便于后续集成CI/CD流水线或SIEM系统。
二、使用pip-audit扫描Python依赖漏洞
pip-audit由PyPA官方维护,专用于检查已安装Python包是否包含CVE编号的已知漏洞,其数据源覆盖PyPI Advisory Database与GitHub Security Advisory。
1、安装工具:pip install pip-audit。
2、扫描当前Python环境全部已安装包:pip-audit,输出含包名、版本、漏洞ID(如PYSEC-2023-123)及描述。
3、若项目使用requirements.txt,指定文件扫描:pip-audit -r requirements.txt,避免误报未实际使用的开发依赖。
4、以JSON格式输出结果供程序解析:pip-audit --json --strict,启用--strict后,任意漏洞将使命令返回非零退出码,适用于门禁检查。
三、结合safety工具补充Python依赖校验
safety侧重于检查PyPI Safety DB中收录的高危漏洞,尤其对已被标记为“end-of-life”或存在远程代码执行类缺陷的包响应更及时,可作为pip-audit的交叉验证手段。
1、安装safety:pip install safety。
WorkBuddy 桌宠工厂 —— 给一张角色图、一个 codex.pet 链接、一条 codex-pets.net 下载 URL、或一份现成的精灵表,就能自动创建一只可联动 WorkBuddy 状态的桌面宠物。当用户说"创建桌宠"、"做一只桌宠"、"用这张图做桌宠"、"从 codex.pet 安装桌宠"、"导入 codex 桌宠 XX"、"装一下 codex-pets.net 上的 XX&quo
2、基于本地已安装包扫描:safety check。
3、使用requirements.txt扫描并忽略低风险项:safety check -r requirements.txt --ignore=39872,40111,其中数字为漏洞ID。
4、生成详细HTML报告:safety report -r requirements.txt --output report.html,报告中明确标出需立即升级的critical级别漏洞。
四、利用Bandit识别Python源码级安全隐患
Bandit不检查包版本,而是静态分析Python源代码中的硬编码凭证、不安全函数调用(如os.system()、eval())、反序列化点等,可发现投毒包中隐藏的恶意逻辑。
1、安装Bandit:pip install bandit。
2、对整个项目目录执行深度扫描:bandit -r . -x tests/,排除tests子目录以减少噪声。
3、按严重等级过滤输出:bandit -r . --severity high --confidence high,仅显示高置信度的高危问题。
4、生成SARIF格式报告以便与GitHub Code Scanning集成:bandit -r . --format sarif --output bandit-results.sarif,该文件可直接上传至GitHub Security tab触发告警。
五、通过pipdeptree定位传递性依赖风险节点
传递性依赖常成为漏洞潜藏区域,pipdeptree能可视化展示依赖树结构,帮助识别被多个上游包共同引用的脆弱底层组件(如urllib3、jinja2),从而判断修复优先级。
1、安装工具:pip install pipdeptree。
2、生成完整依赖树:pipdeptree,观察是否存在重复引入不同版本的同一包。
3、筛选出存在已知漏洞的包及其所有父依赖:pipdeptree --reverse --packages requests,确认哪些上层模块导致了该风险包被拉入。
4、检查冲突依赖:pipdeptree --warn fail,该命令会在检测到版本冲突时立即终止并报错,提示需手动干预解决依赖不一致问题。

















