✨ feat(skills): add debugging and bulk refactor workflows
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
---
|
||||
name: defense-in-depth
|
||||
description: Defense in depth: add layered validation/guardrails across a data path (auth, validation, invariants, logging, tests). Triggers: defense in depth, harden, guardrails, validate, 安全加固, 分层校验, 防御, 兜底.
|
||||
---
|
||||
|
||||
# Defense in Depth(分层校验 / 多道防线)
|
||||
|
||||
## When to Use
|
||||
- 用户输入/外部数据进入关键路径(权限、资金、数据破坏、执行命令、生成 SQL)
|
||||
- 需要让 bug “结构性不可能发生”,而不是靠单点 if 修补
|
||||
|
||||
## Inputs(required)
|
||||
- Data path:输入从哪里来,最终影响什么(读写/执行/外部调用)
|
||||
- Trust boundary:哪些边界跨越了(用户/服务/网络/磁盘/数据库)
|
||||
- Threat model(简版):最担心的 1–3 类失败(越权/注入/数据损坏/DoS)
|
||||
- Constraints:性能/兼容性/日志合规/可观测性要求
|
||||
|
||||
## Procedure(layer by layer)
|
||||
1. **Map the Path**
|
||||
- 画出路径:入口 → 解析/校验 → 业务决策 → 持久化/外部调用 → 输出
|
||||
- 标注每层的“必须成立的不变量”(invariants)
|
||||
|
||||
2. **Add Guards at Multiple Layers**
|
||||
- **Input layer**:schema/type/length/range/encoding 校验,拒绝非法输入
|
||||
- **Auth layer**:身份认证、权限校验、租户隔离、最小权限
|
||||
- **Business layer**:状态机/幂等/一致性约束、边界条件保护
|
||||
- **Persistence layer**:事务、约束、唯一索引、外键/检查约束(可用时)
|
||||
- **Output layer**:错误信息最小化、敏感字段脱敏、避免回显注入
|
||||
|
||||
3. **Observability**
|
||||
- 在关键断点加日志/metrics/trace(但不记录 secrets)
|
||||
- 失败要“可定位”:错误码/上下文 key/相关 ID
|
||||
|
||||
4. **Tests**
|
||||
- 每层至少一个代表性测试:合法/非法/越权/边界条件
|
||||
- 高风险路径补集成测试或 e2e 验证
|
||||
|
||||
## Output Contract(stable)
|
||||
- Data path:关键路径与边界(简图/文字)
|
||||
- Risks:主要风险与触发条件
|
||||
- Layers:每层做了什么防线(列表化)
|
||||
- Tests:新增/更新的验证点
|
||||
- Residual risk:还剩哪些风险(以及为什么接受)
|
||||
|
||||
## Guardrails
|
||||
- 防线要“可证明有效”:不写空泛口号
|
||||
- 任何会影响行为/接口的防线都必须评估兼容性与回滚策略
|
||||
Reference in New Issue
Block a user