跳到主要内容
哒哒星球DADA PLANET

Skill · 已公开版本

differential-review · 检查一次代码变更新增的安全风险

结合差异、调用方、Git 历史和测试覆盖,形成有位置和证据的安全审查报告。

先看看示例

作者提供的示例,实际效果取决于你的输入和使用工具。

输入

旧查询:WHERE id=? AND tenant_id=?;新查询:WHERE id=?;接口接受用户传入的id。

输出

编辑示例 · 未运行
高风险待修复:对象查询丢失tenant_id约束。

触发:已登录用户请求其他租户对象ID。

影响:若调用方没有等效对象权限检查,可能返回跨租户数据。

建议:恢复权限过滤并增加“另一租户ID不可读取”的回归;继续核查调用方是否已有防线。

方法说明

结合差异、调用方、Git 历史和测试覆盖,形成有位置和证据的安全审查报告。

具体任务

审查变更新风险:聚焦认证、权限、资金和外部调用等敏感路径。

追踪影响范围:结合调用方、历史与测试,判断变更会破坏哪些边界。

必需材料

授权仓库与明确diff范围

相关需求和安全约束

可选材料

历史修复记录

现有测试

使用门槛

能读取变更前后代码及调用链,明确本次审查覆盖范围。

这个 Skill 额外提供的方法

把安全检查集中在此次改变的行为上,避免用通用清单淹没关键回归。

编辑示例(未运行)

查询条件删除了租户过滤

任务:为一段变更写安全审查意见

输入:
旧查询:WHERE id=? AND tenant_id=?;新查询:WHERE id=?;接口接受用户传入的id。

结果片段:
高风险待修复:对象查询丢失tenant_id约束。

触发:已登录用户请求其他租户对象ID。

影响:若调用方没有等效对象权限检查,可能返回跨租户数据。

建议:恢复权限过滤并增加“另一租户ID不可读取”的回归;继续核查调用方是否已有防线。

以下为官方编辑构造的示例,未运行上游 Skill。示例是虚构diff;明确前提,不把未追完的调用链写成已确认漏洞。

首次任务

任务:审查变更新风险。
任务重点:聚焦认证、权限、资金和外部调用等敏感路径。

必需材料:
- 授权仓库与明确diff范围:[填写或粘贴我的材料;未具备则说明]
- 相关需求和安全约束:[填写或粘贴我的材料;未具备则说明]

可选补充:
- 历史修复记录:[可填写,未提供不应假定存在]
- 现有测试:[可填写,未提供不应假定存在]

请交付有材料依据的分析报告,列出发现、证据、建议与未覆盖范围。仅依据这些材料处理;缺少决定结果的信息时先说明缺口,不补造事实。未执行的检查、修改或外部操作明确标为未执行。

使用前提:能读取变更前后代码及调用链,明确本次审查覆盖范围。
处理边界:静态审查不保证排除全部漏洞;只有证据支持的攻击路径才作为发现,未验证假设要标出

验收要求:
1. 发现对应具体修改和位置。
2. 说明触发前提与影响对象。
3. 报告注明未覆盖代码与验证限制。

验收方法

发现对应具体修改和位置

说明触发前提与影响对象

报告注明未覆盖代码与验证限制

依赖与准备

Git与代码读取工具、完整审查参考;仅处理获授权代码,不自动向外发送报告。

使用边界

静态审查不保证排除全部漏洞

只有证据支持的攻击路径才作为发现,未验证假设要标出

排错

只看diff无法判断:读取调用方、历史修复和相关测试。

发现疑似旧问题:区分本次引入、放大或原有基线问题。

固定来源

https://github.com/trailofbits/skills/blob/0cc1c73a5e96749ab32d7ea5e14892fafa6972ae/plugins/differential-review/skills/differential-review/SKILL.md