redis作为一个高速数据库,在互联网上,必须有对应的安全机制来进行保护,方法有2,如下。
1.比较安全的办法是采用绑定IP的方式来进行控制。
# If you want you can bind a single interface, if the bind option is not # specified all the interfaces will listen for incoming connections. # # bind 127.0.0.1
把# bind 127.0.0.1前面的 注释#号去掉,然后把127.0.0.1改成你允许访问你的redis服务器的ip地址,表示只允许该ip进行访问
这种情况下,我们在启动redis服务器的时候不能再用:redis-server,改为:redis-server path/redis.conf 即在启动的时候指定需要加载的配置文件,其中path/是你上面修改的redis配置文件所在目录,这个方法有一点不太好,我难免有多台机器访问一个redis服务。
2.设置密码,以提供远程登陆
打开redis.conf配置文件,找到requirepass,然后修改如下:
requirepass yourpassword
yourpassword就是redis验证密码,设置密码以后发现可以登陆,但是无法执行命令了。
redis-cli -h yourIp -p yourPort//启动redis客户端,并连接服务器
keys * //输出服务器中的所有key
(error) ERR operation not permitted
这时候你可以用授权命令进行授权,就不报错了
auth youpassword
另外,在连接服务器的时候就可以指定登录密码,避免单独输入上面授权命令
redis-cli -h yourIp-p yourPort -a youPassword
除了在配置文件redis.conf中配置验证密码以外,也可以在已经启动的redis服务器通过命令行设置密码,但这种方式是临时的,当服务器重启了密码必须重设。命令行设置密码方式如下:
config set requirepass yourPassword
有时候我们不知道当前redis服务器是否有设置验证密码,或者忘记了密码是什么,我们可以通过命令行输入命令查看密码,命令如下:
config get requirepass
如果redis服务端没有配置密码,会得到nil,而如果配置了密码,但是redis客户端连接redis服务端时,没有用密码登录验证,会提示:operation not permitted,这时候可以用命令:auth yourpassword 进行验证密码,再执行 config set requirepass,就会显示yourpassword
由于redis并发能力极强,仅仅搞密码,攻击者可能在短期内发送大量猜密码的请求,很容易暴力破解,所以建议密码越长越好,比如20位。(密码在 conf文件里是明文,所以不用担心自己会忘记)
本文参考如下文章,并根据自己的实际使用经验进行了加工,细化。转载请注明:http://www.cnblogs.com/langtianya/p/5189234.html
相关推荐
本文通过几个手段说一下生产环境中redis的访问权限控制。 1、绑定网卡bind redis的配置文件redis.conf中对于网络安全部分有这样一段话 ################################## NETWORK ##############################...
实现对用户访问资源的控制,可以通过将权限与角色进行关联。 系统实现主要包括用户登录、权限验证、角色管理、权限管理、资源管理等功能。当用户尝试登录时,系统会通过核实其用户名和密码来确认其身份。权限验证时...
解决后遗症:因为我们的权限是通过URL 来控制的,那么增加了项目的目录,导致权限不能正确的判断,再加上我们的项目名称(目录)可以自定义,导致更不好判断。 后遗症解决方案:PermissionFilter.java 50行处 解决...
Druid数据库连接池,监控数据库访问性能,详细统计SQL的执行性能,这对于线上分析数据库访问性能有帮助。 数据库密码加密。 2、持久层 ====== mybatis持久化,PageHelper分页。Transtraction注解Jta事务。 3、...
请注意,你需要根据你的实际需求替换代码中的占位符,如 Redis 的密码、服务器信息、数据库名称、表名称和列名称等。此外,确保你的 MSSQL 服务器允许来自你的应用程序的连接,并且你的应用程序具有相应的数据库访问...
基于SpringMVC Mybatis Shiro Redis 的权限管理系统,该系统已经部署到线上,线上访问地址:http://shiro.itboy.net,登录账号:admin 密码:sojson,,详细教程参考sojson.com/shiro
基于SpringMVC Mybatis Shiro Redis 的权限管理系统,该系统已经部署到线上,线上访问地址:http://shiro.itboy.net,登录账号:admin 密码:sojson,
Druid数据库连接池,监控数据库访问性能,详细统计SQL的执行性能,这对于线上分析数据库访问性能有帮助。 数据库密码加密。 2、持久层 ====== mybatis持久化,PageHelper分页。Transtraction注解Jta事务。 3、...
角色管理:对权限与菜单进行分配,可根据部门设置角色的数据权限 菜单管理:已实现菜单动态路由,后端可配置化,支持多级菜单 部门管理:可配置系统组织架构,树形表格展示 岗位管理:配置各个部门的职位 字典管理:...
在安全性与完整性要求方面,系统需要设置访问用户的表示以鉴别是否为合法用户,并按照要求设置用户密码,以防止用户账号被盗用,系统也应该应对不同用户设置不同的访问权限及等级,区分教职工和学生。为了保证信息的...
不要使用 root 用户启动 Redis(安全考虑),新建用户启动分配权限。使用 AUTH 密码进行登录。 Linux 安装 Redis 需要了解 Linux 操作系统和 Redis 数据库的基础知识,并解决可能出现的异常。同时,需要注意安全...
2.启动redis服务端,修改ssm-rs\resources\spring-config目录下spring-shiro.xml中redis的连接信息,没设置密码的话auth留空 2.创建数据库train_db并执行根目录下的train_db.sql数据库脚本 3.进入到ssm-...
采用分层设计、双重验证、提交数据安全编码、密码加密、访问验证、数据权限验证。 使用Maven做项目管理,提高项目的易开发性、扩展性。 --- ###更新日期2019-01-16 * 升级springboot版本为2.1.2.RELEASE ...
redis配置(可搜索redis或定位到L.69) 直接运行ShiroAdminApplication.java 浏览器访问http://127.0.0.1:8080 5、登录账号 超级管理员: 账号:root 密码:123456 普通管理员: 账号:admin 密码:123456
本项目使用 Spring Boot 搭建, 用于加深对 Spring Boot 与 Shiro 的学习, 项目特色是支持 restful 风格权限控制, 支持对同一 URL, 不同 HTTP Mehtod 的权限控制, 适用于更多的场景. 预览地址: http://ewt.186g.cn ...
提供了统一的管理配置能力,配置发布回滚能力,配置更新秒级推进能力,客户端配置缓存能力,对敏感配置设置访问权限能力,管理员权限管理能力。 环境要求 服务端:jdk1.8,MySQL,Redis 客户端:jdk1.8 注意:本系统...
基于EggJs + TypeScript + TypeORM + Redis + MySql + Vue + Element-UI编写的一个简单高效的前分离分离的权限管理系统。希望这个项目在全栈的路上能够帮助到你。 前端项目地址: 演示地址 演示环境账号密码: 账号 ...
用户登录采用拦截器实现,WebSecurityConfig实现WebSecurityConfigurerAdapter接口对拦截信息进行配置,包含设置登录页和允许访问的接口,自定义登录失败、登录成功返回对象,配置自定义密码验证拦截器对用户名和...
#focus权限管理系统,学习springboot和shiro [访问地址] ...如果不用redis的朋友,可以将配置文件,configclass,安全管理器,和resouceservice中redis业务注释掉即可4.访问localhost:8080账号:melo密码:12345678