用途:针对 OWASP A08:2025「软件或数据完整性失效」对 Python Web 应用(FastAPI、Flask)做安全审计与测试。该类别关注运行时完整性——你实际反序列化、引入或自动更新的内容是否可信,与 A03 上游供应链完整性相区分。OWASP 排名第 8(2025),覆盖 14 个 CWE,平均发生率 2.75%。
主要能力:
- 不安全反序列化(Python 首要风险):标记 pickle.loads/load、cPickle、dill、jsonpickle.decode、shelve.open、yaml.load(非 safe_load)、numpy.load(allow_pickle=True)、torch.load(未设 weights_only=True)等危险调用,并给出 JSON+Pydantic、yaml.safe_load 等安全替代;若必须用 pickle,提供 HMAC-SHA256 前置校验方案。
- 批量赋值(CWE-915):检测 Flask 中 request.json/form 直接流入 ORM .update() 或 dict.update() 的模式,建议显式字段白名单;FastAPI 借助 Pydantic 模型默认防护。
- 子资源完整性(SRI):扫描 Jinja2/HTML 模板中缺少 integrity 属性的外部 script/link 标签,并说明用 openssl 生成 SRI 哈希的方法。
- 未校验自动更新(CWE-494):标记下载后直接执行或加载远程配置的代码,建议用 cryptography 做签名验证。
使用方式:按提供的审计清单逐项检查反序列化、批量赋值、外部完整性与 CI/CD 完整性;可用 Bandit(bandit -r . -t B301,B302,B506)、Semgrep(semgrep --config=p/python)、pip-audit 及手工 grep 扫描。
适用场景:FastAPI/Flask 应用的安全评审、代码审计与 CI 检查。限制:资料聚焦 Python 与上述框架,其他语言或框架未涉及;具体工具版本、收费与部署方式暂未提供。