Redis 可以禁用的高危命令
2023-06-13 09:11:31 时间
高危命令禁用
redis一款高并发的内存K-V数据库,提供了好多命令,但是其中有部分对于生产环境来说比较危险,需要禁用掉。
keys 命令
keys
命令执行的时候是需要进行全库扫描的,因为redis执行的主线程是串行的,所以会导致其他命令也执行慢,从而拖垮整个redis实例。
flushdb、flushall 命令
flushdb、flushall是清空redis数据库里面数据的命令,禁用原因:
- 清空数据之后,开启RDB持久化一般无法恢复了,需要开启AOF持久化才有可能恢复数据。
- 清空数据的操作本身耗时比较长,当数据量大的时候容易扩跨整个redis实例。
config 命令
config命令可以直接修改redis加载到内存里面的配置信息,个人觉得主要是一些关键配置,比如:dir、dbfilename。这两个参数结合起来可以利用redis进行攻击,具体可以参考:https://www.freebuf.com/articles/328286.html 中webshell部分。
debug 命令
DEBUG 命令是一个内部命令。 它旨在用于开发和测试 Redis,比如下面命令,可以直接让redis停止工作10 s
debug sleep 10
eval 命令
eval 命令用于执行lua脚本,建议禁止的原因是lua脚本里面信息redis没办法控制,比如,在lua脚本里面构造大量循环,会导致redis主进程僵死。
script、evalsha命令
script、evalsha结合起来也可以执行lua脚本,原因同eval 命令
shutdown 命令
shutdown可以直接停止redis服务。属于危险命令的范畴。
高危命令禁用方法
在redis.conf 里面加入下面配置
rename-command keys ""
rename-command flushall ""
rename-command flushdb ""
rename-command debug ""
rename-command eval ""
rename-command config ""
rename-command shutdown ""
rename-command script ""
rename-command evalsha ""
相关文章
- Redis实现原子性操作简介(redis原子操作)
- 秘密武器:使用Redis实现高效模式(redis模式)
- Redis命令:实现设置和保护密码(redis命令密码)
- Efficient Redis Management Made Simple with Our Platform!(redis管理平台)
- EF和Redis在数据处理中的应用展示(ef redis)
- 开启Redis集群之旅命令行构建(开启redis集群的命令)
- 深入探究Redis状态借助命令的视角(查看redis状态的命令)
- 查看Redis总内存满足你的需求(查看redis总内存)
- 探索Redis列表命令的功能性(查看redis列表命令)
- Win7下瞬间回收内存,拥抱Redis缓存技术(win7 内存redis)
- 如何快速使用Redis安装部署(如何安装使用redis)
- Redis使用教程快速熟悉Redis的基础操作(使用教程redis)
- 利用Redis回收更多空间(回收redis命令)
- 一键清理Redis缓存,解决问题快人一步(命令清理redis缓存)
- 命令Redis集群中批量查询数据的Scan命令应用(redis集群用scan)
- 发布基于Redis的订阅发布模型实现信息实时消息交换(使用redis的订阅)
- Redis缓存指令一网打尽(redis缓存命令大全)