教程 · 安全

处理 JSON 时的安全注意

调试工具解决的是「看得见」,不是「可以随便传」。生产响应里经常夹着 token、身份证、内部主机名。下面几条是实际会踩的,不是清单式恐吓。

默认本地,分享是另一回事

HiJSON 的解析、格式化、树、JSONPath 在浏览器里完成,不会把 JSON 传到我们的服务器。这一点写在 隐私政策

两条例外是你自己打开的:

  • JSONBin 分享:生成链接等于把内容交给 JSONBin。链接能打开的人都能看到原文。
  • AI 对话:上下文会发到你填的 API 地址。公司密钥、用户 PII 不要当「示例」丢进去。

给同事看结构,优先复制一段打码后的 JSON,或只发路径:$.data.user.phone 有值,而不是整包响应。

先扫一眼再转发

贴进树之后,用搜索或 $..token$..password$..authorization 扫一遍。列表接口用 $.data.list[*].{id,mobile} 看有没有不该出现的列。树和对比的用法见 树视图API 调试

日志平台导出的 JSONL 同样对待,见 JSON Lines

不要把不可信 JSON 当 HTML 插进去

字段里出现 <script> 或事件处理属性,若你 innerHTML = obj.comment,就是 XSS。展示用户可控字段用文本节点或框架的转义插值。调试工具里看到尖括号,说明数据脏,不要复制到管理后台的「富文本」里图省事。

原型污染(主要在 JS)

不可信对象里若带 __proto__constructor,浅合并进普通对象可能改到原型。自己写 for (k in payload) target[k] = payload[k] 时要过滤这些键,或用 Object.create(null)。HiJSON 只是展示解析结果;你在业务代码里合并 webhook 时,这个坑还在。

{
  "__proto__": { "admin": true }
}

树上能看见这个键。看见了就不要当普通业务字段合并。

JWT 和「看起来像 JSON 的中间段」

JWT 中间一段是 Base64URL 的 JSON。解码后能看到 subexp。这不表示令牌可以公开。截图、分享链接、聊天记录里出现完整 JWT,等于泄露会话。只讨论结构时用假 payload。

eval 和「把 JSON 当 JS 跑」

有人用 eval("(" + text + ")") 兼容尾逗号。这会执行任意脚本。只用 JSON.parse。不合法就修文本,见 语法错误排查,不要用 eval 放水。

本机工具也不是保险箱

浏览器扩展、同步的剪贴板、录屏、公司 DLP 都可能留下副本。敏感调试在隔离环境做,用完关标签。大文件占内存,用完刷新,见 大 JSON

常见问题

解析在本地,为什么还要提安全?
本地只保证我们没存。你的下一步(微信、邮件、AI、分享)才是泄露点。页面本身也阻止不了你粘贴机密。
发现站点问题怎么说?
联系页 上的邮箱,不要附带真实用户数据。

相关教程

先看结构,再决定是否分享

默认解析不出站。分享和 AI 是显式操作。

打开 HiJSON →