mongodump 默认不加密,备份文件明文裸露敏感数据;须严格权限控制、加密传输、校验完整性、标记元数据并定期清理。

备份文件本身没加密,mongodump 默认不保护敏感数据
mongodump 生成的是 BSON/JSON 文件,纯文本可读(尤其 .json 输出),数据库里的密码哈希、手机号、身份证片段全裸露。它不加密、不混淆、不压缩——只是把数据按结构“抄”出来。
实操建议:
- 永远用
--out指向权限受限的目录,比如/backup/mongodump-20241005/,并立即chmod 700该目录 - 避免用
--archive单文件模式后直接丢在共享网盘或邮件里——它仍是未加密二进制,strings命令就能扫出明文字段值 - 如果必须传输,先用
gpg或openssl enc加密,别依赖“文件名带 date 就安全”
权限控制不到位,mongodump 进程可能泄露凭据
很多人把用户名密码写进命令行: mongodump -u admin -p mypass --host rs1/...。这会导致密码出现在 ps aux、shell 历史、系统日志里,还可能被监控工具捕获。
实操建议:
- 改用
--uri+ 配置文件:把连接串存在~/.mongodb/backup-uri,设chmod 600,再用mongodump --uri "$(cat ~/.mongodb/backup-uri)" - 或者用 MongoDB 6.0+ 的
--password-file参数,把密码单独存文件(同样要严格限权) - 禁止在脚本里拼接密码字符串;CI/CD 中用 secret 注入,而不是环境变量导出到 shell
自动备份脚本没校验完整性,损坏了也照传不误
磁盘满、IO 中断、网络抖动都可能导致 mongodump 生成截断的 BSON 文件。这类文件外表正常,但恢复时会报 invalid bson object size 或静默丢数据。
新增功能: 1.增加文件下载系统; 2.美化后台登陆界面; 3.完善前后台登陆系统安全性; 4.后台登陆加了验证码; 5.修正组织结构的后台管理; 6.修正所有发现的小错误; 7.美化页面; 后台主要功能如下: 一、系统管理:管理员管理,可以新增管理员及修改管理员密码;数据库备份,为保证您的数据安全本系统采用了数据库备份功能;上传文件管理,管理你增加产品时上传的图片及其他文件。 二、企业信息:可
实操建议:
- 每次 dump 后立刻跑
bsondump --validate <file.bson></file.bson>(需安装mongo-tools) - 对
--archive文件,用mongorestore --dryRun --archive=xxx快速验证可解析性(不写库) - 加 MD5 校验:备份完立即
md5sum *.bson > checksum.md5,和备份文件一起归档
备份生命周期管理缺失,旧文件变成攻击跳板
很多团队只管“有没有备份”,不管“哪些还能用”。3 个月前的备份含已撤销账号的 session token,半年前的备份里还有离职员工的 API key —— 这些数据一旦泄露,就是现成的攻击面。
实操建议:
- 给每个备份打标签:用
--archive=backup-$(date +%Y%m%d-%H%M)-prod,别用模糊名如latest.bson - 设置自动清理策略:例如保留最近 7 天每日全量 + 最近 4 周周日备份,用
find /backup -name "backup-*" -mtime +7 -delete - 定期抽查恢复:选一个冷备,真 restore 到隔离环境,查几个关键集合的
count()和时间戳是否合理
真正难的不是 dump 出来,是让每一份字节从生成、存储、传输到下线,全程可控可审计。权限、校验、元数据标记,三者缺一不可。









