SuperAPI AI 工具集

defense-in-depth

编程与开发

查看项目

更新于 10-16 00:30

技能介绍

用途:当无效数据在深层执行中引发失败时,不应只在单点加校验,而应在数据流经的每一层都加入校验,让该缺陷在结构上无法复现。单点校验可被不同代码路径、重构或 mock 绕过;多层校验则能捕获不同层级的异常。

四层结构:

  1. 入口校验:在 API 边界拒绝明显无效输入,例如 check 空值、路径存在性、是否为目录;
  2. 业务逻辑校验:确保数据对该操作有意义,例如 projectDir 为空时拒绝工作区初始化;
  3. 环境守卫:在特定上下文阻止危险操作,例如测试环境下拒绝在临时目录之外执行 git init;
  4. 调试埋点:记录上下文(目录、cwd、堆栈)以便取证。

使用方式(资料步骤):定位缺陷后追踪数据流,找出坏值来源与使用点;列出数据经过的所有检查点;在入口、业务、环境、调试各层添加校验;逐层测试,尝试绕过第一层并验证第二层能拦截。资料中的示例缺陷为“空 projectDir 导致在源码目录执行 git init”,数据流为测试 setup→空字符串→Project.create(name,'')→WorkspaceManager.createWorkspace('')→git init 在 process.cwd() 运行;补上四层后全部 1847 个测试通过。

限制与说明:资料未提供该技能的安装命令、平台支持、收费信息或其它运行前提;示例代码中的函数名、错误信息与行为均来自资料,使用时应保留原样,不应改动代码内容。