帮助你在数据流经各层时建立分层校验,提前阻断缺陷与安全风险。
该技能材料显示其为纯提示/方法论文档型内容,无需密钥、无远程端点,也未声明可执行或数据外发能力,整体风险较低。需注意其 GitHub 仓库无许可证声明、社区采用与维护状态偏弱,供应链可信度有限但未见明确红旗。
材料明确标注无需密钥或环境变量;README 也未要求登录、token 或凭证传入,未见凭证收集、存储或滥用路径。
已声明无远程端点,且内容为验证方法与代码片段说明,未描述任何联网调用、API 请求或向第三方发送用户数据的行为。
该技能被客观标记为 prompt-only;README 中虽然出现如 git init、文件检查等示例代码,但属于说明性示例,不构成该技能自身会在本机执行进程或代码的证据。
未声明需要读取或写入本地文件、目录、数据库或其他资源;文档仅讨论分层校验理念,未见实际数据访问权限申请或过度授权迹象。
来源为 GitHub 且开源,可一定程度审计,属正面因素;但仓库未声明许可证、0 star、维护状态未知,社区与持续维护信号较弱,因此建议对来源可信度保持留意。
复制安装指令,让 AI 自动完成配置 · 推荐新手
请帮我安装 askskill 上的 "Defense-in-Depth Validation" 技能: 1. 下载 https://raw.githubusercontent.com/obra/clank/main/skills/debugging/defense-in-depth/SKILL.md 2. 保存为 ~/.claude/skills/defense-in-depth/SKILL.md 3. 装好后重载技能,告诉我可以用了
请为一个用户注册接口设计 defense-in-depth validation 方案,覆盖前端表单、API 网关、后端服务、数据库四层。请列出每层要校验的字段、规则、错误处理方式,以及如何避免重复与遗漏。
一份分层校验设计清单,明确各层职责、校验规则与异常处理建议。
我们现在只有后端做参数校验。请帮我审查一个订单创建流程在前端、接口层、服务层、数据库层可能遗漏的校验点,并按风险高低排序,给出补强建议。
一份按风险排序的校验缺口报告,并附带可执行的补强方案。
基于 defense-in-depth validation 思路,为支付请求生成测试用例,覆盖合法输入、边界值、恶意输入、类型错误、重复请求和数据库约束冲突,并说明每层应如何响应。
一套覆盖多层校验场景的测试用例列表,包含预期响应与失败处理方式。
When you fix a bug caused by invalid data, adding validation at one place feels sufficient. But that single check can be bypassed by different code paths, refactoring, or mocks.
Core principle: Validate at EVERY layer data passes through. Make the bug structurally impossible.
Single validation: "We fixed the bug" Multiple layers: "We made the bug impossible"
Different layers catch different cases:
Purpose: Reject obviously invalid input at API boundary
function createProject(name: string, workingDirectory: string) {
if (!workingDirectory || workingDirectory.trim() === '') {
throw new Error('workingDirectory cannot be empty');
}
if (!existsSync(workingDirectory)) {
throw new Error(`workingDirectory does not exist: ${workingDirectory}`);
}
if (!statSync(workingDirectory).isDirectory()) {
throw new Error(`workingDirectory is not a directory: ${workingDirectory}`);
}
// ... proceed
}
Purpose: Ensure data makes sense for this operation
function initializeWorkspace(projectDir: string, sessionId: string) {
if (!projectDir) {
throw new Error('projectDir required for workspace initialization');
}
// ... proceed
}
Purpose: Prevent dangerous operations in specific contexts
async function gitInit(directory: string) {
// In tests, refuse git init outside temp directories
if (process.env.NODE_ENV === 'test') {
const normalized = normalize(resolve(directory));
const tmpDir = normalize(resolve(tmpdir()));
if (!normalized.startsWith(tmpDir)) {
throw new Error(
`Refusing git init outside temp dir during tests: ${directory}`
);
}
}
// ... proceed
}
Purpose: Capture context for forensics
async function gitInit(directory: string) {
const stack = new Error().stack;
logger.debug('About to git init', {
directory,
cwd: process.cwd(),
stack,
});
// ... proceed
}
When you find a bug:
Bug: Empty projectDir caused git init in source code
Data flow:
Project.create(name, '')WorkspaceManager.createWorkspace('')git init runs in process.cwd()Four layers added:
Project.create() validates not empty/exists/writableWorkspaceManager validates projectDir not emptyWorktreeManager refuses git init outside tmpdir in testsResult: All 1847 tests passed, bug impossible to reproduce
All four layers were necessary. During testing, each layer caught bugs the others missed:
Don't stop at one validation point. Add checks at every layer.
帮助你撰写不过时的代码注释,聚焦做什么与为什么而非时序背景。
系统性沿调用链逆向排查缺陷,快速定位问题的最初触发点
帮助开发者为代码补充设计意图注释,聚焦原因与关键取舍而非表面功能。
并行分派多个智能体,同时调查并修复彼此独立的问题
帮助开发者规范完成开发分支收尾,支持合并、提 PR 或清理流程。
通过为每个任务分派独立子代理并穿插代码审查,稳步推进实现计划。
帮助用户系统检查外部输入有效性,降低错误、异常与安全风险。
在部署前校验路由器与交换机配置,提前发现安全与连通性风险。
在部署前深度检查 Azure 配置、权限与基础设施就绪情况,提前发现风险。
在分享分析结论前,检查方法、计算、偏差与结论是否可靠
一条命令完成校验、转换与去重,快速串联数据处理流程。
帮助开发者在认证、输入处理、密钥和敏感功能开发中进行系统安全审查