.env.example、.env.save 与备份环境文件防泄露清单
根据真实访问日志中的 /.env.example、/.env.save、/.env.bkp 探测整理:如何清理示例配置、备份环境文件、历史部署目录与日志中的密钥痕迹,并把防御流程沉淀为可复用模板。
独立防御清单:不隶属于 GitHub/GitLab/Next.js/Vue/Kubernetes 等厂商,不提供扫描自动化、漏洞利用或凭据获取步骤。
日志意图
/.env.example、/.env.save、/.env.bkp、.env.backup、旧备份目录
这些路径经常来自自动化探测。正确处理方式是确认没有敏感文件公开、返回安全响应,并把清理流程模板化。
适合谁
- 1GB VPS / OpenResty / Nginx 静态站运营者
- AI API 网关、自动交付店铺、开发者工具站
- 需要把安全检查变成 SOP 的个人开发者
防御清单
- 确保 .env.example 只保留占位值,不出现真实 token、SMTP 密码、钱包地址备注或上游 API Key。
- 在 Nginx/OpenResty 层统一拒绝 dotfile、*.bak、*.save、*.old、*.backup、*.zip 中的敏感配置路径。
- 上线前扫描当前 webroot 与旧 release 目录,只记录文件路径和处置状态,不把密钥写进日志或工单。
- 若曾公开暴露真实值,按最小影响面轮换 API Key、SMTP 授权码、Webhook Secret,并保留不含密钥的事件记录。
可直接复用的 Nginx/OpenResty 思路
# defensive-only example: deny common secret and backup files
location ~* (^|/)\.(env|git|svn|hg) { return 404; }
location ~* \.(bak|backup|old|save|swp|tmp|ini|conf)$ { return 404; }
# keep real secrets outside webroot; verify with harmless HEAD/GET onlyFAQ
可以把 .env.example 放进公开仓库吗?
可以,但必须只包含占位符和注释,不要出现真实密钥、内部域名口令或可用钱包/支付配置。
发现旧 .env.save 被访问过怎么办?
先从 webroot 移除或拒绝访问,再按密钥类型评估轮换;不要在公开页面复现密钥内容。
这个页面提供扫描工具吗?
不提供扫描自动化或攻击步骤,只提供防御配置、清理清单和安全验证思路。