Redis 未授权访问漏洞
redis 默认不需要密码即可访问,黑客直接访问即可获取数据库中所有信息,造成严重的信息泄露。
今天阿里云服务器报出了DoraCMS一个redis漏洞:
于是查了一下相关资料:
漏洞描述:
redis 默认不需要密码即可访问,黑客直接访问即可获取数据库中所有信息,造成严重的信息泄露。
修复方案:
1、绑定需要访问数据库的IP
修改 redis.conf 中的 “bind 127.0.0.1” ,改成需要访问此数据库的IP地址。
2、设置访问密码
在 redis.conf 中找到“requirepass”字段,在后面填上你需要的密码。
注:上述两种方法修改后,需要重启redis才能生效。
发现确实前几天做redis缓存并没有设置密码,而未设置密码的redis是可以直接访问缓存信息的,所以需要通过auth属性设置redis密码:
var redis = require('redis'); var client = redis.createClient(settings.redis_port, settings.redis_host); client.auth(settings.redis_psd);
别忘了,如果在express-session中也使用了redis,也需要加入密码:
app.use(session({ secret: settings.session_secret, store: new RedisStore({ port: settings.redis_port, host: settings.redis_host, pass : settings.redis_psd, ttl: 1800 // 过期时间 }), resave: true, saveUninitialized: true }));
其它参数设置可参考官方文档:https://github.com/tj/connect-redis
在redis.conf 配置中 配置 requirepass 的值 和 IP 重启redis和node就可以了,重新扫描结果:
很赞哦! ( 0
)