关于 secure-code-review
Secure Code Review 是一项系统化的代码审查技能,检查数据流、访问控制、密钥和状态变更中的安全漏洞,并指导报告严重性、受影响路径、利用示例及修复建议。
主要功能
- 01梳理入口和信任边界
- 02追踪不可信数据到敏感操作
- 03审计授权和对象级访问
- 04检查密钥与密码学实践
- 05检查竞态和共享状态
适用场景
- 01审查代码变更中的安全风险
- 02追踪用户输入进入查询或命令的路径
- 03检查端点授权和租户隔离
- 04编写含修复建议的分级问题报告
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ securityskills/ skills --skill secure-code-review安装后在 Claude Code 中输入/secure-code-review确认已加载。
详细介绍
安全代码审查
系统地审查代码中的漏洞,而不是逐行审查。
1. 熟悉代码
- 这段代码的作用是什么?识别:入口点、信任边界、数据存储、特权操作
- 阅读测试——它们揭示了哪些不变量?
- 检查差异的影响范围:身份验证逻辑?解析?文件处理?加密?
2. 跟踪不可信数据
从入口点追踪每项输入,直到其最终落点:
| 落点类别 | 验证内容 |
|---|---|
| SQL/NoSQL | 使用参数化查询;不通过拼接字符串构建查询;标识符使用白名单 |
| 命令执行 | 不将用户数据放入 shell 字符串;使用 argv 数组 API;不设置 shell=True |
| HTML/渲染 | 根据上下文自动转义;原始/不安全 HTML 标志须有合理依据 |
| 文件路径 | 使用基名/白名单;规范化并检查前缀;不在 include 中使用用户路径 |
| 反序列化 | 优先使用 JSON 等类型化格式,而非对象序列化器;解析后进行验证 |
| 重定向 | 仅允许相对目标或白名单中的目标 |
| eval/动态代码 | 必须有合理依据且不包含用户输入,否则应拒绝 |
3. 审查身份验证和访问控制
- 每个端点都在服务端强制执行授权;在资源层面进行角色检查,而不只在控制器中检查
- 对象级检查(IDOR):查询是否按调用者的租户 ID/用户 ID 进行筛选?
- 会话管理:轮换、失效、安全 Cookie 标志
- 密码重置流程:令牌熵、过期时间、单次使用、防止账号枚举
4. 审查密钥和配置
- 不硬编码凭据/密钥/API 令牌;日志或错误消息中不包含密钥
- 加密:使用经批准的算法和库原语(不手工实现),采用正确的模式,并使用来自 CSPRNG 的随机数
5. 竞态和状态
- 文件检查中的 TOCTOU 问题;配额/额度的先检查后使用问题
- 可变共享状态的并发问题;多步写入缺少事务
沟通
报告发现的问题,注明严重程度、具体代码路径、攻击示例和建议的修复方案。区分“必须修复”和“之后再加固”。
评论
支持 Markdown