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,必须重启集群。所以建议一开始,就将该配置配置好。