“
MongoDB 是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。它的特点是高性能、易部署、易使用,存储数据非常方便。 MongoDB功能特性
- MongoDB是一个独立的服务器;
- 它是基于文档的,而不是基于表格的;
- 它是非结构化的;
- 它具有强大的主流开发语言支持,如C#、C++、Java、PHP、Perl、Python、Ruby;
- 可扩展性强;
- 使用高效的二进制数据存储,包括大型对象(如视频等);
- 支持完全索引,包含内部对象;
- 面向集合存储,易存储对象类型的数据。
为什么要做安全加固
MongoDB数据库存在因为安全配置不合适导致的安全问题,例如,未授权访问Mongodb在启动的时候提供了很多参数,如日志记录到哪个文件夹,是否开启认证等。造成未授权访问的根本原因就在于启动Mongodb的时候未设置-auth也很少会有人会给数据库添加上账号密码(默认空口令),使用默认空口令这将导致恶意攻击者无需进行账号认证就可以登陆到数据服务器。 如何进行安全加固
1. 启动数据库实例时指定端口,禁用HTTP,指定mongodb的监听IP,未授权的 IP 禁止访问;
2. 在安全模式下启动MongoDB,并且同时为需要访问数据库的用户建立相应的权限,合理的配置操作者的使用权限;
3. 账户权限最小化,应为mongodb添加用户,防止未授权访问;
4. 应更改mongodb的默认端口,防止攻击者扫描到默认 mongodb的默认端口直接利用;
5. MongoDB 在 28017 端口提供一个 HTTP 服务,用于监视服务器的运行状态等信息,建议关闭该服务;
6. 建议mongodb配置文件的权限为640,建议存放数据的目录的权限为600,建议mongodb日志文件的权限为640;
7. 用操作系统或者硬件防火墙阻止未知主机对数据库各种组件的访问;
8. 不要让数据库运行在公用网络上,应该单独设计一个网段;
9. 对登录模块增加用户认证功能;
10. 对数据进行本地异地备份。
对MongoDB进行安全加固可以有效的防范一些常见安全问题,按照基线标准做好安全配置能够减少安全事件的发生,不同的企业也可以根据自身企业业务制定符合自己企业的安全基线标准。