Redis怎样保证数据安全?

问题:Redis默认是没有设置密码

调研:Redis默认没有设置密码是因为它的设计目标是追求高性能和低延迟。

当Redis配置文件中启用密码后,客户端连接Redis时需要进行密码验证。这个验证过程会增加CPU的负载,并可能导致链接响应时间变长,从而影响整体系统性能。特别是在处理大量并发连接时,密码验证可能会成为系统的瓶颈。此外,如果Redis和客户端位于不同的机器上,并且两者之间的网络延迟较高,密码验证的时间也会增加,进一步影响连接速度。

在默认情况下,Redis假设运行在受信任的环境中,例如内部网络或受限制的访问环境中。因此,密码认证的额外开销可能会影响其性能表现。

子问题:那为什么Redis要支持设置密码呢?

调研:Redis的作者认为,对于需要访问Redis的人员应该具有足够的权限和访问控制,以保证系统的安全性。如果Redis服务器部署在没有合适保护措施的公共网络上,或者需要加强对未经授权访问的防范,建议使用密码进行身份验证。

测试:redis启动配置中增加requirepass,设置密码,测试性能和不设置基本没有区别。 

12c340cc21d9d82e817e929831c609e5.png

分析:通过测试可观察到在毫秒级的测试精度下,加密码和不加密码性能几乎没有区别。建议新建集群直接采用加密码的方式。对之前有业务的集群咱们后面再分析。

问题:Redis除了密码认证,还有哪些措施可以保证其安全性?

方案1:修改绑定地址:默认情况下,Redis只绑定到本地回环地址(127.0.0.1)。您可以更改bind指令,让Redis监听其他网络接口。例如,要将Redis绑定到所有可用接口,您可以将其更改为:

bind 0.0.0.0

要指定某些IP,也只需要绑定特定IP即可,可参考下面官方注释:

b8e3cd5701b3e8830957f1ebffca9676.png

但这样,应用要增加部署机器,扩容时,就要手动修改配置,很麻烦了。

方案2:使用防火墙:确保您的服务器防火墙规则只允许受信任的IP地址、者地址段、端口访问Redis端口。因为本身对于其他应用也需要设置严格的防火墙策略,各个大厂都在做防火墙策略收敛,强烈推荐此方式。

其他一些通用安全防御方案,可参考之前写的《红蓝攻防、红蓝对抗》。下面来说一下,如果redis老集群没有密码要改成需要密码,做平滑升级,需要哪些步骤:

1、新建集群B,设置连接需要密码,区别于原来的老集群A不需要密码

2、客户端做双写,老集群A和新集群B的数据同步更新

3、同步老集群A的历史数据到新集群B,并进行数据一致性校验

4、灰度发布客户端改成使用新集群B。

从上面步骤可以看出,成本还是蛮高的。必要性有多少呢?这样来看,咱们数据库连接都是要用户名密码的,因为一个数据库建议只有一个应用来连,知道密码的人是有限的。而且数据库密码一般都是加密的。

而redis密码是明文写在配置文件中的,如果内网被攻破了,黑客可以直接访问配置文件,密码意义还大吗?本身redis集群是公用基础设施,可能一个公司就一套集群,这意味着所有开发都需要知道用户名密码,范围这么大了,密码的意义还大吗?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/293205.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据挖掘入门项目二手交易车价格预测之特征工程

文章目录 目标常见的特征工程具体步骤1. 导入数据2. 删除异常值3. 特征构造3.1 为树模型构造特征3.2 为LR NN 之类的模型构造特征 4. 特征筛选过滤式包裹式嵌入式 5. 总结 本文数据集来自阿里天池:https://tianchi.aliyun.com/competition/entrance/231784/informat…

YOLOV5训练自己的数据集教程(万字整理,实现0-1)

文章目录 一、YOLOV5下载地址 二、版本及配置说明 三、初步测试 四、制作自己的数据集及转txt格式 1、数据集要求 2、下载labelme 3、安装依赖库 4、labelme操作 五、.json转txt、.xml转txt 六、修改配置文件 1、coco128.yaml->ddjc_parameter.yaml 2、yolov5x.…

【Lazy ORM 框架学习】

Gitee 点赞关注不迷路 项目地址 快速入门 模块所属层级描述快照版本正式版本wu-database-lazy-lambdalambda针对不同数据源wu-database-lazy-orm-coreorm 核心orm核心处理wu-database-lazy-sqlsql核心处理成处理sql解析、sql执行、sql映射wu-elasticsearch-starterESESwu-hb…

[图像处理] MFC载入图片并进行二值化处理和灰度处理及其效果显示

文章目录 工程效果重要代码完整代码参考 工程效果 载入图片,并在左侧显示原始图片、二值化图片和灰度图片。 双击左侧的图片控件,可以在右侧的大控件中,显示双击的图片。 初始画面: 载入图片: 双击左侧的第二个控件…

设计模式学习笔记 - 设计模式与范式 -行为型:2.观察者模式(下):实现一个异步非阻塞的EventBus框架

概述 《1.观察者模式(上)》我们学习了观察者模式的原理、实现、应用场景,重点节介绍了不同应用场景下,几种不同的实现方式,包括:同步阻塞、异步非阻塞、进程内、进程间的实现方式。 同步阻塞最经典的实现…

Android进阶学习:移动端开发重点学习的十点,不能再得过且过的写业务代码了

最近有朋友问我:“安卓开发是不是没人要了,除了画 UI 别的都不会怎么办?” 考虑到这可能是很多人共同的疑问,决定简单写一下。 说了很多遍了,**不是安卓开发没人要了,是初级安卓没人要了。**现在还在大量…

ES的RestClient相关操作

ES的RestClient相关操作 Elasticsearch使用Java操作。 本文仅介绍CURD索引库和文档!!! Elasticsearch基础:https://blog.csdn.net/weixin_46533577/article/details/137207222 Elasticsearch Clients官网:https://ww…

C#,按类型删除指定文件的工具软件

点击下载本文软件(积分): https://download.csdn.net/download/beijinghorn/89059141https://download.csdn.net/download/beijinghorn/89059141 下载审核通过之前,请从百度网盘下载(无积分):…

【Linux 10】环境变量

文章目录 🌈 Ⅰ 命令行参数⭐ 1. main 函数的参数⭐ 2. main 函数参数的意义⭐ 3. 查看 argv 数组的内容⭐ 4. 命令行参数结论⭐ 5. 为什么要有命令行参数⭐ 6. 命令行参数传递由谁执行 🌈 Ⅱ 环境变量基本概念⭐ 1. 常见环境变量 🌈 Ⅲ 查看…

鸿蒙OS开发实战:【网络管理HTTP数据请求】

一、场景介绍 应用通过HTTP发起一个数据请求,支持常见的GET、POST、OPTIONS、HEAD、PUT、DELETE、TRACE、CONNECT方法。 二、 接口说明 HTTP数据请求功能主要由http模块提供。 使用该功能需要申请ohos.permission.INTERNET权限。 涉及的接口如下表,…

Unix中的进程和线程-1

目录 1.如何创建一个进程 2.如何终止进程 2.2遗言函数 3.进程资源的回收 4.孤儿进程和僵尸进程 孤儿进程 (Orphan Process): 僵尸进程 (Zombie Process): 代码示例: 5. 进程映像的更新 在Linux中,进程和线程是操作系统进行工作调…

保研线性代数机器学习基础复习2

1.什么是群(Group)? 对于一个集合 G 以及集合上的操作 ,如果G G-> G,那么称(G,)为一个群,并且满足如下性质: 封闭性:结合性:中性…

从零开始的软件开发实战:互联网医院APP搭建详解

今天,笔者将以“从零开始的软件开发实战:互联网医院APP搭建详解”为主题,深入探讨互联网医院APP的开发过程和关键技术。 第一步:需求分析和规划 互联网医院APP的主要功能包括在线挂号、医生预约、医疗咨询、健康档案管理等。我们…

金融衍生品市场

金融衍生品市场 衍生金融品的作用衍生金融工具远期合约期货合约期权 衍生金融品的作用 套期保值(Hedging) 组合多头头寸(long position)与空头头寸(short position)例:股票与股指期货 投机 衍生金融工具 远期合约 定义:在将来…

论文笔记 - :MonoLSS: Learnable Sample Selection For Monocular 3D Detection

论文笔记✍MonoLSS: Learnable Sample Selection For Monocular 3D Detection 📜 Abstract 🔨 主流做法限制 : 以前的工作以启发式的方式使用特征来学习 3D 属性,没有考虑到不适当的特征可能会产生不利影响。 🔨 本…

Optimizer神经网络中各种优化器介绍

1. SGD 1.1 batch-GD 每次更新使用全部的样本,注意会对所有的样本取均值,这样每次更新的速度慢。计算量大。 1.2 SGD 每次随机取一个样本。这样更新速度更快。SGD算法在于每次只去拟合一个训练样本,这使得在梯度下降过程中不需去用所有训…

css3之3D转换transform

css3之3D转换 一.特点二.坐标系三.3D移动(translate3d)1.概念2.透视(perpective)(近大远小)(写在父盒子上) 四.3D旋转(rotate3d)1.概念2.左手准则3.呈现(transfrom-style)(写父级盒子…

智能革命:ChatGPT3.5与GPT4.0的融合,携手DALL·E 3和Midjourney开启艺术新纪元

迷图网(kk.zlrxjh.top)是一个融合了顶尖人工智能技术的多功能助手,集成了ChatGPT3.5、GPT4.0、DALLE 3和Midjourney等多种智能系统,为用户提供了丰富的体验。以下是对这些技术的概述: ChatGPT3.5是由OpenAI开发的一个自然语言处理模型&#x…

KeepAlived使用介绍

目录 1、Introduce 2、基本使用 (1)安装 (2)配置文件 (3)使用教程 1、Introduce keepalived是一个用于实现高可用性和负载均衡的开源软件。它提供了一种轻量级的方式来管理多个服务器,并确保…

使用Detours进行HOOK

文章目录 Detours介绍Detours配置Detours进行Sleep Hook Detours介绍 Detours是微软研究院开发的一款软件工具,用于Windows平台上的应用程序重定向和修改。 它可以在运行时修改应用程序的执行路径,允许开发人员注入自定义代码来改变应用程序的 行为&…