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
,否則服務無法啟動。