关灯
护眼 字体:大
中
小
上一章
目录
下一章
Redis默认没有密码,并且只能本机访问。使用redis-cli连上以后可以执行任意命令。如果要开放外网连接,则需要设置密码,同时禁用危险命令或者对危险命令进行改名。
9.4.1 实例42:设置密码并开放外网访问
实例描述
修改Redis的配置文件,设置Redis的访问密码,并允许外网通过密码访问Redis中的数据。
1.设置密码
(1)打开Redis的配置文件,搜索关键字“requirepass”,如图9-25所示。
(2)将“requirepass”这一行的注释去掉,这一行的“foobared”就是默认密码,可以改成自己的密码,如图9-26所示。
图9-25 在配置文件中找到requirepass
图9-26 启用并修改密码
(3)保存配置文件并重启Redis,可以发现redis-cli连上Redis以后无法正常使用了,如图9-27所示。
图9-27 没有密码redis-cli无法使用Redis
(4)如要正常使用Redis,则需要在redis-cli连接时加上一个“-a”参数:
(5)运行效果如图9-28所示。
图9-28 使用“-a”命令连上Redis即可使用
对于Python,如果要连接设置有密码的Redis,则应在连接参数中添加密码,见代码9-20。
代码9-20 用Python连接有密码的Redis
2.开发外网访问
(1)打开配置文件,搜索“bind”找到配置网络的位置,如图9-29所示。
图9-29 配置网络来源的项
(2)直接把这一行注释,即可从外网访问Redis。
● 在redis-cli中,如果要访问外网的Redis,则需要指定地址和端口,格式如下:
redis-cli –h Redis地址 –p 端口 –a 密码
例如:
redis-cli –h 192.168.2.10 –p 3129 –a kingnameisgenius163
● 在Python中,如果要访问外网的Redis,则需将代码修改为:
import redis
client = redis.Redis(host='192.163.2.10', port=3129, password='kingnameisgenius')
9.4.2 禁用危险命令
Redis中默认开启了一些非常高权限的命令。使用这些命令,轻则清空Redis,重则直接写入挖矿木马甚至是SSH Key公钥,从而控制服务器。
通过修改Redis的配置文件,可以对一些危险命令进行改名或者禁用,从而降低安全风险。
(1)打开Redis配置文件,添加以下几行内容:
代码9-21 重命名Redis的危险命令
(2)如果把命令重命名为空字符串,表示禁用这个命令。
对于一些比较危险但可能会用到的命令,可以把它改名;对于一些特别危险的命令,可以禁用。
本章小结
本章主要介绍了Redis的哈希表、“发布/订阅”模式、有序集合和安全设置。
哈希表在储存大量数据时比字符串更好。
“发布/订阅”模式可以方便简单地实现一对多的消息推送。
有序集合可以实现计分板或排行榜。
在学习本章内容时,建议使用Python来测试,因为redis-cli对于这些复杂数据结构和模式的显示方式不太直观。
如果需要开放 Redis 的外网访问权限,则一定要设置密码并禁用一些危险的命令(或将这些命令改名),从而降低安全风险。
第4篇 商业实战
第4篇分为4章,综合利用前面9章所学到的关于MongoDB与Redis的知识,搭建一个类似“知乎”的知识问答网站。
第10章会实现网站的基本功能,包括查看已有问题、提问或者回答问题、对问题或者答案“点赞”或者“点踩”。
第11章会实现权限管理功能,包括注册账号并用自己的账号登录网站、修改或者删除自己的问题或者回答。
第12章会实现问题的标签功能,能够根据标签筛选问题。同时还会实现对问题和答案进行排序,根据问题或者答案的评分来动态调整问题或答案的顺序。
第13章会讨论在用户数据极大时,如何有效地实现“去重”功能,以及网站在安全方面的建议。
上一章
目录
下一章