这是什么
一个免费、私密的环境变量对比工具。支持 dotenv、export 行、引号、多行值、JSON 和简单的 YAML。
环境变量对比
粘贴两个 env 文件,如果有 .env.example 也一起贴上。Env Diff 会逐个键对齐,遮盖所有值,并指出缺失的键、不同的值、生产环境里的测试密钥、暴露给浏览器的密钥,以及没人替换的占位符。
- FEATURE_NEW_CHECKOUT=true + OPENAI_API_KEY=chan••••占位值 ~ APP_URL=http••••••••未加密的 http 地址 ~ NEXT_PUBLIC_STRIPE_KEY=pk_l•••••••• STRIPE_SECRET_KEY=sk_t••••••••测试或沙盒密钥 JWT_SECRET=shar••••••••两边使用同一密钥
一个免费、私密的环境变量对比工具。支持 dotenv、export 行、引号、多行值、JSON 和简单的 YAML。
独立发布的开发者、版本负责人、DevOps 工程师,以及任何曾因生产环境少了一个键而白白耗掉一个晚上的人。
配置漂移。代码有评审和测试,env 文件通常没有,于是一个遗漏的键或生产环境里的测试密钥就悄悄溜了过去。
解析和对比都在当前标签页完成。不上传、不记录、不保存任何内容。
除非你主动打开,值始终保持遮盖。报告中永远不包含值。
$ env diff ▌
粘贴两个 env 文件,或载入示例文件,看看每一类检查结果。
值永远不会离开本页面。报告和 CSV 只列出键和检查结果。
环境 B 的结果按生产环境处理。暴露给浏览器的密钥无论在哪一边都会计入。
NEXT_PUBLIC 或 VITE 这类前缀会把值打包进 JavaScript。任何人都能读到。
像 sk_test 这样的密钥不会收取真实付款,也不会发出真实邮件。在预发环境没问题,放到生产环境就是一次无声的故障。
数据库、缓存或 API 地址只在开发者本机可用。到了生产环境,要么连接失败,要么连到错误的服务。
changeme、xxx、TODO 或尖括号。有人复制了示例却从未填写。
预发和生产共用一个密钥,预发一旦泄露,生产也随之失守。
公开地址没有使用 https。Cookie、令牌和跳转可能失效或泄露。
调试开关会向访客展示堆栈和内部细节,还会拖慢整个应用。
少于 12 个字符的密钥、令牌或密码很容易被猜出。
值里引用的变量在同一文件中没有定义,展开后什么都没有。
键存在但没有值。很多库会把它当作已设置,然后以奇怪的方式出错。
通常是预发环境或本地文件。可以按你的习惯修改标签名。
通常是生产环境。从托管平台导出,或从密钥管理工具中复制。
可选。粘贴 .env.example,看看缺了哪些必需的键,又有哪些键没有写进文档。
缺失的键排在最前,其次是不同的值,最后是相同的值。每一行都会标出风险值。
下载包含全部键的新 .env.example,并把报告复制到发布检查清单里。
页面不会把你粘贴的内容发送到任何地方,报告里也没有值。不过最稳妥的习惯是:只要密钥曾出现在共享屏幕上,就把它轮换掉。
大多数人是拿预发环境和生产环境对比。把即将发布的环境放在 B,风险检查就会作用在它上面。
每个值的简短 SHA 256 摘要。它能让你看出两个值不同,同时不暴露其中任何一个。
可以用同一个模板两两对比。模板让每次对比都锚定在同一份键清单上。