Vibe Coding 注入防线:分别验证 SQL、XSS 与命令解释器边界
“已做输入校验”无法同时防住三种不同解释器。本文分别固定 SQL 参数/标识符、HTML 输出上下文与进程参数边界,再用结构化 canary 和安全变异证明输入始终只是数据。
Articles
沉淀 AI、Web、云原生和独立开发经验。
“已做输入校验”无法同时防住三种不同解释器。本文分别固定 SQL 参数/标识符、HTML 输出上下文与进程参数边界,再用结构化 canary 和安全变异证明输入始终只是数据。
一个 owner 成功读取自己的项目,不能证明其他人读不到。本文构造主体、动作、资源、租户与状态矩阵,并同时断言响应、数据、副作用、缓存和日志没有发生越权。
把整个仓库和一段“偶尔报错”交给 AI,只会换来假设洪水。本文用故障指纹、环境冻结和逐步删减构造最小复现,并规定何时不能继续简化。
当“上周还正常”是唯一线索时,逐个读提交既慢又受先入为主影响。本文把稳定复现包装成退出码测试,用 Git Bisect 定位首个坏提交,并处理跳过、flaky 与构建漂移。
补丁后原错误没再出现,不足以证明根因已解决。本文用原复现反事实、分层回归、机制说明和预防动作完成修复验收,区分代码完成、发布完成与观察完成。
临时到处打印变量会制造噪声、泄漏数据,还可能改变故障时序。本文从待证伪问题出发设计结构化事件、关联标识和 Trace,并验证观测链本身可信。
AI 会高速产生解释,也会在失败后悄悄换说法。本文用观察、假设、预测、单一探针和结论五栏日志管理调试,让负面结果同样积累信息。
测试执行了路径,不等于它能识别错误。本文从需求依据、预言独立性、可观察结果和故障校准四方面审查 AI 生成断言,避免实现与测试一起自证。
全部 mock 会只测到自导自演,全部连接真实依赖又慢且不稳定。本文按进程、协议、数据所有权和副作用划分集成边界,并用契约与少量真实探针补齐替身盲区。
AI 按代码分支补测试,容易得到很多案例却漏掉关键状态组合。本文用场景轴、边界轴和状态转换轴构建可裁剪矩阵,让每个用例都有风险来源与明确预言。
遗留代码没有规格时,AI 很容易把“不好看”误判为“应当修正”。本文用基线样本、可观察边界和差异审批建立特征测试,让重构先证明行为未被偷偷改写。
AI 能快速补齐测试文件,也能复制实现、制造脆弱 mock 和用宽断言换绿色。本文给出从需求映射、失败证明到变异校准的审查顺序,确保新增测试真的会拦住错误。