Spring+SpringMVC+MyBatis+easyUI整合进阶篇(十一)redis密码设置、安全设置
作者:13
GitHub:https://github.com/ZHENFENG13
版权声明:本文为原创文章,未经允许不得转载。
警惕
前一篇文章《Spring+SpringMVC+MyBatis+easyUI整合进阶篇(九)Linux下安装redis及redis的常用命令和操作》主要是一个简单的介绍,针对redis入门和安装及命令行简单的使用,虽然已经正常启动和使用,但是由于所有的设置都没有做任何改动,使用的是默认设置,默认端口、默认免密......其实目前状态下的redis相当于是一个裸奔的服务,多多少少是有一些安全性方面的缺陷,如果被一些别有用心的人扫描到或者攻击到还是比较麻烦的。
redis密码设置
第一种方式:通过命令行设置

//首先通过```redis-cli```进入redis,如果没有启动redis的话则需要先启动redis服务:
redis-cli
//查看当前redis有没有设置密码:
127.0.0.1:6379> config get requirepass
1) "requirepass"
2) ""
//requirepass参数为空,即未设置密码,重新设置密码为123:
127.0.0.1:6379> config set requirepass 123
OK
//设置之后再去操作会报错:无权限
127.0.0.1:6379> get author
(error) NOAUTH Authentication required.
127.0.0.1:6379> info
NOAUTH Authentication required.
//auth + 密码用来验证,授权通过则可以进行正常操作:
127.0.0.1:6379> auth 123
OK
127.0.0.1:6379> get author
(nil)
127.0.0.1:6379> info
# Server
redis_version:4.0.2
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:5e81d0ebc9709a8a
但是这种方式有个缺点,当前配置redis密码的方法是临时的不会永久有效,如果redis重启之后密码就会失效。
第二种方式:修改redis.conf文件

默认配置中,requirepass是被注释的。
修改redis.conf配置文件
# requirepass foobared
requirepass 123 //指定密码123

希望配置密码永久不失效的话,则需要redis的配置文件redis.conf中找到并修改requirepass参数,保存后重启redis服务即可,密码不会再因为重启而失效了。
由于redis并发能力极强,仅仅只是设置密码也是不够的,攻击者可能在短期内发送大量猜密码的请求很容易暴力破解,所以建议密码强度越高越好,密码在配置文件里是明文显示,所以不用担心自己会忘记。
redis默认端口修改
在服务器安装的一些服务,往往都有一个默认端口,而redis的默认端口则是6379,通常我在安装了一些软件后会修改其默认端口,比如mysql的3306端口、svn的3690端口或者其他的一些默认设置,我都会稍加修改一下,这个是个人习惯而已,可以不做参考。

打开redis的配置文件redis.conf,找到port设置项,将6379改为想要修改的端口,重启即可。
禁止高危命令的随意使用
rename-command FLUSHALL redisflushall # 重命名FLUSHALL命令
rename-command FLUSHALL "" # 禁用FLUSHALL命令
类似的命令还有CONFIG和EVAL等。
总结
本文是关于redis安全性的个人总结:
- 密码设置是一定要做的。
- 至于一些高危命令也建议多加留意,不要随意执行。
- 而默认端口的修改则根据个人喜好或者项目组的要求了,不是一定要做。
首发于我的个人博客,新的项目演示地址:perfect-ssm,登录账号:admin,密码:123456

如果有问题或者有一些好的创意,欢迎给我留言,也感谢向我指出项目中存在问题的朋友。
如果你想继续了解该项目可以查看整个系列文章Spring+SpringMVC+MyBatis+easyUI整合系列文章,也可以到我的GitHub仓库或者开源中国代码仓库中查看源码及项目文档。
Spring+SpringMVC+MyBatis+easyUI整合进阶篇(十一)redis密码设置、安全设置的更多相关文章
- Spring+SpringMVC+MyBatis+easyUI整合进阶篇(十五)阶段总结
作者:13 GitHub:https://github.com/ZHENFENG13 版权声明:本文为原创文章,未经允许不得转载. 一 每个阶段在结尾时都会有一个阶段总结,在<SSM整合基础篇& ...
- Spring+SpringMVC+MyBatis+easyUI整合进阶篇(六)一定要RESTful吗?
作者:13 GitHub:https://github.com/ZHENFENG13 版权声明:本文为原创文章,未经允许不得转载. 写在前面的话 这个问题看起来就显得有些萌,或者说类似的问题都有些不靠 ...
- 如约而至,Java 10 正式发布! Spring+SpringMVC+MyBatis+easyUI整合进阶篇(十四)Redis缓存正确的使用姿势 努力的孩子运气不会太差,跌宕的人生定当更加精彩 优先队列详解(转载)
如约而至,Java 10 正式发布! 3 月 20 日,Oracle 宣布 Java 10 正式发布. 官方已提供下载:http://www.oracle.com/technetwork/java ...
- Spring+SpringMVC+MyBatis+easyUI整合进阶篇(一)设计一套好的RESTful API
写在前面的话 看了一下博客目录,距离上次更新这个系列的博文已经有两个多月,并不是因为不想继续写博客,由于中间这段时间更新了几篇其他系列的文章就暂时停止了,如今已经讲述的差不多,也就继续抽时间更新< ...
- Spring+SpringMVC+MyBatis+easyUI整合进阶篇(二)RESTful API实战笔记(接口设计及Java后端实现)
写在前面的话 原计划这部分代码的更新也是上传到ssm-demo仓库中,因为如下原因并没有这么做: 有些使用了该项目的朋友建议重新创建一个仓库,因为原来仓库中的项目太多,结构多少有些乱糟糟的. 而且这次 ...
- Spring+SpringMVC+MyBatis+easyUI整合进阶篇(九)Linux下安装redis及redis的常用命令和操作
redis简介 Redis是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库. Redis与其他key-value缓存产品有以下三个特点: Redis支持数据的持久化,可以将内存 ...
- Spring+SpringMVC+MyBatis+easyUI整合进阶篇(十四)Redis缓存正确的使用姿势
作者:13 GitHub:https://github.com/ZHENFENG13 版权声明:本文为原创文章,未经允许不得转载. 简介 这是一篇关于Redis使用的总结类型文章,会先简单的谈一下缓存 ...
- Spring+SpringMVC+MyBatis+easyUI整合进阶篇(七)一次线上Mysql数据库崩溃事故的记录
作者:13 GitHub:https://github.com/ZHENFENG13 版权声明:本文为原创文章,未经允许不得转载. 文章简介 工作这几年,技术栈在不断更新,项目管理心得也增加了不少,写 ...
- Spring+SpringMVC+MyBatis+easyUI整合进阶篇(八)线上Mysql数据库崩溃事故的原因和处理
前文提要 承接前文<一次线上Mysql数据库崩溃事故的记录>,在文章中讲到了一次线上数据库崩溃的事件记录,建议两篇文章结合在一起看,不至于摸不着头脑. 由于时间原因,其中只讲了当时的一些经 ...
随机推荐
- Python 使用正则表达式
当使用正则表达式时,re 模块内部会干两件事情 1.编译正则表达式,如其字串本身不合法,报错 2.用编译后的正则表达式去匹配字符串 re_telephone = re.compile(r'^(\d{3 ...
- cordova封装h5为app,cookie不可用解决方法
//创建cookie function setCookie(c_name,value,expiredays) { var exdate=new Date(); exdate.setDate(exdat ...
- js获取本地ip和地区
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- File API简介
File API让我们可以创建文件,存储在本地文件系统的一个安全沙箱里,亦可以从其他来源读取文件,并对其进行操作 Web应用通过requestFileSystem方法来访问本地文件系统,该方法是全 ...
- 蓝桥杯之K好数
如果一个自然数N的K进制表示中任意的相邻的两位都不是相邻的数字,那么我们就说这个数是K好数.求L位K进制数中K好数的数目.例如K = 4,L = 2的时候,所有K好数为11.13.20.22.30.3 ...
- NHibernate Criteria中 Restriction与Expression的差别
http://stackoverflow.com/questions/5483393/nhibernate-criteria-restriction-vs-expression 据说是Restrict ...
- queue的入门
#include "iostream"#include "queue" using namespace std; void main12(){ queue &l ...
- 29.使用register_chrdev_region()系列来注册字符设备
1.之前注册字符设备用的如下函数注册字符设备驱动: register_chrdev(unsigned int major, const char *name,const struct file_ope ...
- android wear开发之:增加可穿戴设备功能到通知中 - Adding Wearable Features to Notifications
注:本文内容来自:https://developer.android.com/training/wearables/notifications/index.html 翻译水平有限,如有疏漏,欢迎批评指 ...
- 诸葛马前课andoid app 应用
前段时间学了点安卓开发的知识,也在同时,陪家人看了<新闺蜜时代 >的后面几集,其中,周小北提到了诸葛马前课. 于是网上查了些资料,学习了一下马前课的计算方法,本着程序服务生活的原则,省去不 ...