导出或共享前必须清空环境变量的Initial value和Current value,因Initial value会同步至云端且在导出文件中明文可见;Vault是唯一真正加密方案,但需Team/Enterprise订阅且不支持脚本直接读取。

导出或共享前必须清空环境变量的当前值
Postman 的 Environment 变量分 Initial value 和 Current value 两栏,很多人误以为只删掉 Current value 就安全了——其实不然。一旦你点击过「Save」或「Sync」,Initial value 会同步到 Postman 云端,而它在导出的 .json 文件里是明文可见的。
真正有效的做法是:
- 在导出/共享前,手动将所有敏感字段(如
api_key、jwt_token)的Initial value清空(留空或填占位符如REDACTED) -
Current value同样清空,避免本地残留被意外导出 - 检查变量类型是否设为
secret——但这仅影响 UI 显示(带掩码),不改变导出内容的明文本质
别信“分享集合时自动过滤变量”这种说法
Postman 官方从未提供“按变量类型自动剔除敏感项”的导出逻辑。所谓“仅分享请求结构,不带变量值”,只在你使用 Share > Link to Collection(即生成只读链接)且未勾选「Include environment」时才成立。但只要导出为 .json 或通过 Share > Invite to Workspace 添加协作者,环境文件默认一并发送。
常见翻车场景:
- 用
Newman做 CI 测试时,把含密钥的environment.json直接提交进 Git 仓库 - 给外包测试人员发集合包,忘了删掉
dev环境里的admin_token - 在 Workspace 中开启「Allow members to view environments」,等于把密钥本公开挂在团队面板上
用 Vault 替代传统环境变量存密钥
Postman v10.20+ 推出了 Vault 作用域(需 Workspace 订阅 Plan),它是目前唯一真正加密存储敏感数据的机制:值不会出现在导出文件、控制台日志、网络请求原始 dump 或云端备份中。
Postman 12.27.7 Windows x64 官方安装包,适用于 API 设计、调试、测试与协作。该系列包含 Enterprise 云端性能测试静态 IP 出口能力,以及接口规范标签管理改进,适合受限网络测试与规范资源组织场景。
启用前提和限制:
- 必须是 Team 或 Enterprise Workspace,Free Plan 不可用
- 变量只能在请求中通过
{{vault.variable_name}}引用,不能用于 Pre-request Script 的pm.variables.get() - 无法在 Collection Runner 中直接选择 Vault 变量,需配合脚本动态注入
- 导入旧集合时,Vault 变量不会自动迁移,必须手动重建
检查清单最后一步:用 Newman 验证导出包是否干净
与其靠肉眼扫 JSON,不如用命令行快速验证。导出集合后,执行:
newman run collection.json -e environment.json --insecure --silent 2>/dev/null | grep -i "key\|token\|secret\|password"
如果返回任何匹配行,说明敏感字段仍残留在文件中。更稳妥的做法是:
- 先用
jq提取所有变量值:jq '.values[].value' environment.json - 对输出做关键词扫描,尤其注意 Base64 编码过的 token(比如以
ey...==开头的字符串) - 确认
.postman_globals.json和.postman_environment.json都已清理,二者常被忽略
真正麻烦的不是怎么加密,而是每次共享前都得想起要删哪几处——Initial value、Current value、Globals、Vault 是否误启、导出时有没有手抖勾上环境。漏掉任意一环,密钥就裸奔了。

















