最近几天刚刚部署了nondejs+mongodb网站,真的是艰难呐,各种被黑。由于博主本人是小白,面对这种情况真的是一头雾水,尤其是mongo中数据被清空了,what?!!!忍不了啊。于是发奋图强,各种填坑。基本的安全可以说算是得到了保障,接下来就把这几天的成果分享给大家吧!
首先介绍一下博主被攻击时的状况
1、数据库没有任何安全措施(就是本人根本没有考虑数据库要加密,可能是傻的,更别说如何加密了)
2、不了解mongo安装在哪里(执行文件,以及各种配置文件)
3、后台使用mongoose连接,连接方式为:mongodb://localhost/city
注:在全程懵逼的状态下,博主只能求助各大搜索引擎,总结出以下经验:
一、先开启mongo中权限认证
1、找到linux系统中的mongod.conf
一般情况下是在 : /usr/local/mongodb/ 目录下
2、修改mongod.conf 中内容,开启权限认证
3、重启数据库
mongod -f /usr/local/mongodb/ mongod.conf (这里坑巨多,对于我个人而言。如果你同样遇到问题,这里会有专门的帖子来讲解)
4、查看mongod.log,检验权限是否添加完成
检索mongod.log文件中是否包含auth字符即可
开启了权限,接下来就是创建用户名和密码了。
二、创建用户
1、成功启动数据后链接你的数据库
mongo 127.0.0.1:27017/test
2、创建用户密码 (创建用户角色知识点较多,此处列举个例,可自行百度)
>use admin
switched to db admin> db.createUser(
{ user: "dba",
pwd: "dba",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]... }
)
创建成功弹出如下json
Successfully added user: {
"
"user" : "dba",
"roles" : [ {
"role" : "userAdminAnyDatabase",
"db" : "admin"
} ]}
三、修改app.js文件中mongoos链接
mongoose 连接db的方式
mongoose.connect('mongodb://username:password@host:port/database?options...');
当然这只是一个框架步骤,假如看了文章,没有解决问题,请给博主留言。
网友评论