SuperAPI AI 工具集

defense-in-depth

编程与开发

查看项目

更新于 10-15 21:36

技能介绍

用途:当无效数据在调用栈深处引发故障时,不要只在单点补校验,而是在数据流经的每一层都做校验,使该缺陷在结构上不可能发生。

主要能力:给出四层校验模型。第一层入口校验,在 API/系统边界拒绝非法输入,如检查非空、存在性与类型;第二层业务逻辑校验,确认数据对当前操作有意义;第三层环境守卫,在特定上下文阻止危险操作,例如测试环境下拒绝在临时目录之外执行 git init;第四层调试埋点,记录目录、cwd、堆栈等上下文,便于取证。

使用方式:先追踪数据流,找出坏值来源与使用点;列出数据经过的每个函数与层;按启发式决定层数——公开 API 简单校验只需第 1 层,跨多个服务用 1+2,破坏性操作(删除、初始化、写入)用 1+2+3,排查难复现缺陷用 1+2+3+4,测试 mock 中间层时至少 1+3;随后按入口→业务→环境→调试顺序添加校验,并逐层测试,验证第 2 层能拦住绕过第 1 层的情况。

适用场景:数据跨越系统边界(API→服务→存储)、多条代码路径可达同一脆弱代码、测试 mock 掉中间层而绕过校验。

限制与不适用:单一调用者的纯内部函数应在调用方校验;数据已由可信框架或库校验;相邻层重复相同检查时不必再加。常见错误包括只做一处校验、相邻层做完全相同的检查、只在生产环境加环境守卫、跳过调试日志、报错信息不含坏值与期望格式。