
关于
基于本地证据的生产就绪审计,适用于已上线应用、上线前审查、合并后检查和发布验证。
name: production-audit description: 基于本地证据的生产就绪审计,适用于已发布应用、预发布审查、合并后检查以及"生产环境会出什么问题?"等场景,无需将仓库数据发送到外部审计服务。 origin: community
生产环境审计
当用户询问应用是否准备好发布、生产环境中可能出现什么问题、或发布前必须修复什么时,使用此技能。这是对过时的社区 production-audit 方案的维护者安全重写:保留了有用的生产就绪视角,移除了未固定的外部执行和第三方数据共享。
何时使用
- 用户询问"这个可以上线吗"、"生产环境会出什么问题"、"我们遗漏了什么"、"审计这个仓库"或"准备好发布了吗?"
- 功能已合并,需要预部署或合并后的风险评估。
- 公开发布、演示、客户推广或投资者展示即将到来。
- CI 通过但用户想了解生产风险,而不仅仅是测试状态。
- 有已部署的 URL、发布分支、PR 或当前检出可用于证据收集。
何时不使用
- 在活跃开发阶段,正确的视角是行级安全编码时;请先使用
security-review。 - 对于纯库、模板、纯文档仓库或脚手架,除非用户想要打包/发布就绪性而非应用就绪性。
- 当用户要求正式的合规审计时。此技能是工程分类,不是法律、财务、医疗或监管认证。
- 当唯一可用的证据是没有仓库、部署、CI 或运行时表面的产品想法时。
工作原理
基于本地和用户授权的证据构建审计。不要运行未固定的远程代码、将仓库内容上传到第三方服务或调用外部扫描器,除非用户明确批准该特定工具和数据流。
按以下顺序执行:
- 确定发布范围。
- 阅读最近的变更和当前分支状态。
- 检查仓库中实际存在的运行时、认证、数据、支付、后台任务、AI 和部署边界。
- 检查 CI、测试、迁移、环境文档和回滚路径。
- 生成简短的发布/阻止建议及具体修复方案。
证据清单
从低成本的本地信号开始:
git status --short --branch
git log --oneline --decorate -20
git diff --stat origin/main...HEAD
然后检查项目特定的表面:
- 包脚本、CI 工作流、发布脚本、Docker 文件和部署清单。
- API 路由、Webhook、认证中间件、后台工作者、定时任务和数据库迁移。
- 环境变量文档和启动检查。
- 可观测性钩子、错误报告、日志、健康检查和仪表板。
- 回滚、种子数据、迁移和回填说明。
- 最重要用户路径的端到端覆盖。
如果已部署的 URL 在范围内,仅对该 URL 使用浏览器或 HTTP 检查,避免凭证操作,除非用户提供安全的测试账户。
风险视角
安全与认证
- 公共路由、API 路由和管理路由是否明确分离?
- 认证和授权是否在服务端强制执行?
- 密钥是否远离客户端包、日志、示例输出和已提交的文件?
- 速率限制、CSRF 保护、CORS 策略和上传验证是否在应用需要的地方存在?
- AI 或代理表面是否防御了提示注入、工具滥用和不受信任的内容跨越到特权操作?
数据完整性
- 迁移是否能顺利向前运行并有回滚或恢复计划?
- 破坏性迁移、回填和数据导入是否安全地分阶段进行?
- 数据库策略、授权和服务角色边界是否与应用的租户模型匹配?
- 写入、任务和 Webhook 处理程序的重试是否幂等?
支付与 Webhook
- 是否在解析受信任的有效载荷字段之前验证了 Webhook 签名?
- 每个支付、订阅或履行 Webhook 是否幂等?
- 是否处理了重放、重复投递和乱序投递?
- 测试模式和生产模式的凭证是否分离?
运维
- 应用能否从干净的检出使用文档化的命令启动?
- 必需的环境变量是否已命名、验证并快速失败?
- 是否有健康检查证明依赖项可达?
- 部署、回滚和事件负责人路径是否已文档化?
- 日志是否有用且不泄露密钥或个人数据?
用户体验
- 发布关键路径是否在桌面和移动端都已覆盖?
- 表单在移动端是否可用,没有输入缩放、布局重叠或提交状态阻塞?
- 加载、空状态、错误和权限拒绝状态是否告知用户发生了什么?
- 关键操作失败时是否有支持或恢复路径?
评分
使用评分来强制优先级排序,而非暗示数学确定性。
| 等级 | 分数 | 含义 | | --- | --- | --- | | 阻止 | 0-49 | 不要发布 |
兼容工具
Claude CodeCursor
标签
运维部署

