Redis 的危险命令主要有:
- flushdb,清空数据库
- flushall,清空所有记录,数据库
- config,客户端连接后可配置服务器
- keys,客户端连接后可查看所有存在的键,当 redis key 很多时,非常危险,建议使用 scan 命令代替
可以禁用以上命令来使服务器更加安全。禁用方法是:在配置文件 redis.conf
中 SECURITY
区域中,新增以下配置:
rename-command FLUSHALL ""
rename-command FLUSHDB ""
rename-command CONFIG ""
rename-command KEYS ""
如果想要保留命令,但是不能轻易使用,可以重命名命令:
rename-command FLUSHALL XXXXXXXXXXXXXX
rename-command FLUSHDB XXXXXXXXXXXXXX
rename-command CONFIG XXXXXXXXXXXXXX
rename-command KEYS XXXXXXXXXXXXXX
XXXXXXXXXXXXXX
用新命令代替
配置完后重启 Redis 服务生效。如果禁用 FLUSHALL
命令,需要设置配置文件中 appendonly no
,否则服务无法启动。