Redis禁用命令、危险命令及规避方法

2022-03-09 21:55:40 浏览数 (1)

Redis的危险命令

1、flushdb,清空数据库,而且从不失败 2、flushall,清空所有记录,数据库,而且从不失败 3、config,客户端连接后可配置服务器 4、keys,客户端连接后可查看所有存在的键,KEYS * 命令,当数据规模较大时使用,会严重影响Redis性能,会引发Redis锁,并且增加Redis的CPU占用

如何规避Redis的危险命令

作为服务端的redis-server,我们常常需要禁用以上命令来使服务器更加安全。

禁用的具体做法是,修改服务器的配置文件redis.conf,在SECURITY这一项中,我们新增以下命令:

代码语言:javascript复制
rename-command FLUSHALL ""
rename-command FLUSHDB  ""
rename-command CONFIG   ""
rename-command KEYS     ""

而如果想要保留命令,但是不能轻易使用,可以重命名命令来设定:

代码语言:javascript复制
rename-command FLUSHALL joYAPNXRPmcarcR4ZDgC81TbdkSmLAzRPmcarcR
rename-command FLUSHDB  qf69aZbLAX3cf3ednHM3SOlbpH71yEXLAX3cf3e
rename-command CONFIG   FRaqbC8wSA1XvpFVjCRGryWtIIZS2TRvpFVjCRG
rename-command KEYS     eIiGXix4A2DreBBsQwY6YHkidcDjoYA2DreBBsQ

这样重启服务器后,则需要用新命令来执行操作,否则服务器会报错 unknown command。

说明:对于FLUSHALL命令,需要设置配置文件中appendonly no,否则服务器无法启动。rename-command命名无法直接对线上集群生效。如果需要使用rename-command,必须重启集群。所以建议一开始,就将该配置配置好。

0 人点赞