用途:用于审计、评审或测试 Python Web 应用(FastAPI、Flask)是否符合 OWASP A09:2025「安全日志与告警失败」。该类别在 OWASP 排名第 9,2025 年新增「告警」,因为只记录日志而不告警安全价值有限。涉及 5 个 CWE、723 个 CVE,平均发生率 3.91%。
覆盖范围:日志不足(登录、访问控制失败、校验错误未记录);日志注入(用户输入未转义进入日志,可伪造日志);日志中的敏感数据(密码、令牌、PII、卡号);安全相关信息缺失(错误/警告缺少 IP、用户、时间戳、动作等上下文);无告警(有日志但无阈值、规则或平台路由到事件响应)。
主要能力:提供 FastAPI 与 Flask 的审计清单,逐项标记 PASS、FAIL 或 NOT APPLICABLE。检查日志注入(避免 f-string 或字符串拼接原始请求数据,剥离换行与 ANSI 转义,推荐结构化 JSON 日志);检查敏感数据(不记录 password、token、api_key、卡号、SSN,不整体记录 request.json/form,生产代码无敏感 print,Bandit B506 通过);检查必要日志事件(认证失败/成功、403、输入校验失败、高价值交易、账户变更、管理员操作,含时间戳、IP、用户标识等最小字段);检查结构化日志与 SIEM 兼容(JSON 格式、生产非 DEBUG、集中式平台、保留策略);检查告警集成(Sentry 初始化、限流违规告警、重复认证失败告警、告警手册、蜜标)。
使用方式:按清单逐节审计,参考 FastAPI 的 structlog 配置与 Flask 的 python-json-logger 配置,使用 Sentry 集成示例,并运行自动化扫描命令,如 bandit -r . -t B106,B107,B110 --severity-level medium,以及 grep 搜索日志调用中的原始请求数据和敏感字段。
适用场景:Python Web 应用的安全代码评审、CI/CD 静态扫描、合规审计与日志告警体系检查。
限制:资料仅覆盖 FastAPI 与 Flask,未提供其他语言或框架的适配;未说明具体收费、平台或效果;告警阈值仅为建议值,需结合实际调整;详细修复与平台集成需查阅 references 目录下的 remediation-patterns.md 与 alerting-platforms.md。