美文网首页
保护Redis

保护Redis

作者: liamu | 来源:发表于2019-08-24 14:48 被阅读0次

    1、指令安全

    Redis的危险命令主要有:

    命令 说明
    flushdb 清空数据库
    flushall 清空所有记录,数据库
    config 客户端连接后可配置服务器
    keys 客户端连接后可查看所有存在的键

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

    rename-command FLUSHALL ""
    rename-command FLUSHDB  ""
    rename-command CONFIG   ""
    rename-command KEYS     ""
    

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

    rename-command FLUSHALL abcFLUSHALLabc
    rename-command FLUSHDB  abcFLUSHDBabc
    rename-command CONFIG   abcCONFIGabc
    rename-command KEYS     abcKEYSabc
    

    2、端口安全

    • 监听地址
      较新版本redis默认监听环回地址(loopback),无需修改;
      bind 127.0.0.1 ::1
    • 修改端口
      port 6380
    • 添加密码
      配置文件中添加
      requirepass yourpassword
      命令行执行
    redis 127.0.0.1:6379> config set requirepass test123
     redis 127.0.0.1:6379> config get requirepass
    redis-cli -p 6379 -a test123
    

    主从复制时从库需要设置
    masterauth yourpassword

    3、Lua脚本安全

    Redis从2.6版本开始引入对Lua脚本的支持,通过在服务器中嵌入Lua环境,Redis客户端可以使用Lua脚本,直接在服务端原子的执行多个Redis命令。

    使用脚本的好处如下:
    1.减少网络开销:本来5次网络请求的操作,可以用一个请求完成,原先5次请求的逻辑放在redis服务器上完成。使用脚本,减少了网络往返时延。
    2.原子操作:Redis会将整个脚本作为一个整体执行,中间不会被其他命令插入。
    3.复用:客户端发送的脚本会永久存储在Redis中,意味着其他客户端可以复用这一脚本而不需要使用代码完成同样的逻辑。
    https://www.cnblogs.com/52fhy/p/9786720.html
    正是因为Lua有强大的功能,我们更应给禁止Lua脚本由用户输入的内容(UGC)生成。

    4、SSL代理

    • SSL代理
    • spiped

    相关文章

      网友评论

          本文标题:保护Redis

          本文链接:https://www.haomeiwen.com/subject/svfqectx.html