认识 Cloudflare Security Audit Skill:让安全审阅围绕证据展开
阅读发现校验器源码:先限制输入,再检查报告语义
检查文件大小、JSON 预检和诊断输出,同时保留格式验证的能力边界。
阅读发现校验器源码:先限制输入,再检查报告语义知识学习CN编辑简报更新 2026-09-23
你将学会
- 解析前限制输入
- 实现明确的 schema 子集
- 诊断信息也有边界
开始前需要
- 源码审阅与 JSON 基础
- 明确目标授权及隔离计划
用学习项目展示源码版本、覆盖缺口和不同结论状态。
先看结论
- JSON 解析前已有约束。
- schema 解释器有明确子集。
- 记录通过不等于发现成立。
解析前限制输入
检查的 findings 校验器将输入限制为 5 MiB,嵌套深度限制为 64。命令入口先进行有界读取,再做结构预检,然后解析 JSON 并校验文档。
其他声明限制包括数组最多 1,000 项、校验错误最多 100 条。这些是固定实现中的边界,不能当成所有机器上的安全吞吐量实测结果。
实现明确的 schema 子集
该校验器只解释项目报告 schema 所需的 JSON Schema 关键字。源码有明确的支持集合,并报告不支持的关键字,没有声称自己是通用 schema 引擎。
唯一性检查还对规范化键和集合设置预算。这些控制约束的是报告处理成本,不会替你把某条源码追踪与目标程序实际行为逐项核对。
诊断信息也有边界
诊断辅助函数会转义不安全字符,并截短被引用的字符串。文件名或记录来自不可信来源时,这些内容随后显示在终端里,也需要控制输出形式。
本章只跟踪选定的输入与校验路径,没有运行上游测试套件。存在限制并不能证明所有解析器边界情况都安全,也不能据此宣称完成安全审计。
如何选择
| 比较维度 | 方案 A | 方案 B |
|---|---|---|
| Best when | You need predictable behavior and easy auditing | You need adaptive optimization and have reliable telemetry |
| Main risk | May leave performance on the table | Can become difficult to explain or debug |
实施步骤
- 1
先阅读限制与命令入口。
- 2
分开理解结构检查和事实验证。
- 3
把诊断输出也当作输入输出边界。
可复制示例
text
bounded file read
-> structural preflight
-> JSON.parse
-> document validation
-> bounded, escaped diagnostics常见问题
这是通用 JSON Schema 库吗?
不是,它实现项目需要的关键字子集。
运行过上游校验器测试吗?
没有,本章报告的是源码检查。