redis密码验证命令auth
redis在安全方面并没有做太大的优化,而是在性能和易用性方面下了很大的功夫。redis一个很简单的安全方式就是密码验证,这需要用到auth命令。下面我们就来看看如何使用这个命令。
在安装完成redis以后,默认情况下是不需要验证密码的。开启redis服务以后,可以直接通过客户端连接redis,并进行相应的操作。
# redis-server //开启redis服务
# redis-cli //使用客户端连接
redis> get mykey
“onmpw” //返回的结果
上面是默认没有密码的情况下进行的操作。下面我们开启密码验证。
对于redis开启密码验证有两种方式:一种是通过命令行直接设置密码,另一种方式是在redis.conf配置文件中添加密码。
通过命令行直接设置密码
通过这种方式设置的密码仅在当前进程下有效。也就是说,如果我们重启了redis服务,先前我们设置的密码就不存在了。使用方式如下:
# redis-cli
redis> get mykey
“onmpw” //返回的结果 我们还没有设置密码,所以这里不用验证就可以执行相应的命令
redis> config set requirepass onmpw123
redis> get mykey
(error) noauth authentication required. //错误信息
redis> auth onmpw123 // 通过auth命令 验证密码
redis> get mykey
“onmpw” //这里我们看,是不是又能得到我想要的结果了
通过上面的例子,我们可以了解到如何通过命令行来设置密码以及如何通过命令auth来进行密码的验证。重启服务以后密码失效。从上面的例子中我们看到有个关键字 requirepass(如果对于vim操作不熟悉,大家可以参考《vim常用命令总结》) ,设置密码需要用到它。并且在下面的通过配置文件来设置密码同样也需要requirepass。
在redis.conf配置文件中添加密码
接下来我们介绍如何在redis.conf中添加密码。其实很简单,在redis根目录下面存在redis.conf文件,进入redis根目录,使用vim 编辑该文件。并且查找 requirepass,定位到这一行,并且将前面的#去掉,修改密码。部分内容如下:
################################## security ###################################
# require clients to issue auth
# commands. this might be useful in environments in which you do not trust
# others with access to the host running redis-server.
#
# this should stay commented out for backward compatibility and because most
# people do not need auth (e.g. they run their own servers).
#
# warning: since redis is pretty fast an outside user can try up to
# 150k passwords per second against a good box. this means that you should
# use a very strong password otherwise it will be very easy to break.
#
requirepass onmpw123
我们看,requirepass后面就是我们要设置的密码。这时候保存退出该文件,然后重启redis服务。注意,这里重启redis服务需要在redis-server 后面加上参数。这个参数就是redis.conf文件路径。
# redis-server /redis.conf所在目录/redis.conf
只有这种方式才能让redis-server服务去检测redis.conf 文件。如果不加参数的话,那redis.conf中的设置是被忽略无效的。
#redis-cli
redis> get mykey
(error) noauth authentication required. //错误信息
redis> auth onmpw123 // 通过auth命令 验证密码
redis> get mykey
“onmpw” //这里我们看,是不是又能得到我想要的结果了
auth命令返回值
在《redis协议详解》这篇文章中我们介绍了resp几种数据类型。对于auth命令的返回值使用的是simple strings 类型。当密码验证正确的时候响应的数据为
“ ok\r\n”
如果验证不成功返回的值为errors类型
“-err invalid password”
总结
通过上面两种方式我们了解了如何给redis设置密码和用auth命令验证密码。但是,因为redis的高性能能在短时间接受非常多的尝试性密码,所以请务必设置一个足够复杂的密码以防止可能的攻击。并且,auth命令和其他的redis命令一样是通过非加密方式发送数据的,因此它没有办法阻止拥有足够的网络访问权限的攻击者进行窃听。要想实现数据加密保护,需要新增保护层,例如我们可以使用ssl代理。
就介绍到这里,很多细节的地方需要大家自己去深究。希望本文对大家有所帮助。
转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处
本文地址:
相关文章
在 javascript 中验证 google recaptcha 第 2 版
发布时间:2024/03/23 浏览次数:193 分类:javascript
-
本文演示了如何在 javascript 中验证 google recaptcha。
在 javascript 中验证表单输入中的数字
发布时间:2024/03/20 浏览次数:156 分类:javascript
-
本文将教你如何在 javascript 中验证数字。我们将使用正则表达式和 javascript 函数,包括 isnan、parsefloat 和 isfinite。
javascript 邮政编码验证
发布时间:2024/03/20 浏览次数:90 分类:javascript
-
在本文中,我们将学习如何使用正则表达式来验证邮政编码,使用 javascript 代码和不同的示例。
javascript 中的文本框验证
发布时间:2024/03/20 浏览次数:71 分类:javascript
-
验证文本框是指触发有关输入字段的消息或信息。如果它准备好提交或接受值,那么我们认为它是有效的。这里将重点介绍两种验证文本框的方法。