自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(323)
  • 收藏
  • 关注

原创 你竟然还不了解 LDAP?

LDAP(Lightweight Directory Access Protocol,轻量级目录访问协议)是用于访问和管理目录服务的一种开放协议,基于 X.500标准但简化了 X.500的复杂性,更易于实现和部署。LDAP 的主要目的是为了快速查询和访问用户信息,如用户名、密码、电子邮件地址或打印机连接等静态数据。LDAP 采用客户端/服务器模式,客户端通过 LDAP 协议与服务器进行通信、查询和修改目录中的信息。

2024-11-03 19:19:02 303

原创 一文讲清楚 OpenID Connect 支持的三个授权流程

OpenID Connect 支持多种授权流程(Authorization Grant Types),用于实现在不同场景下的授权和身份认证。在开始讲解前,再罗列一下 OpenID Connect 中的几个参与方,在正文中使用的关键概念一定要和这里的对齐,千万不要按照自己认为的意思去理解。

2024-10-31 16:31:28 552

原创 都知道OAuth 2.0了却还不知道OpenID Connect?

OpenID Connect (OIDC,下文讲解中都使用这个简称) 是基于 OAuth 2.0 授权协议构建的一种身份验证协议,为第三方应用程序提供了一种获取、验证和利用用户身份信息的方法,旨在简化和标准化用户身份验证的过程。与传统的身份验证方法相比,OIDC 提供了一种更加安全、灵活且易于集成的解决方案。在深入讲解之前,先看下身份验证和授权这两个概念。

2024-10-23 22:45:50 507

原创 一文讲清楚 OAuth 2.0 支持的四个授权流程

OAuth 2.0协议支持多种授权流程(Authorization Grant Types),用于实现在不同场景下的授权。在开始讲解前,再罗列一下 OAuth 2.0 中的几个参与方,在正文中使用的关键概念一定要和这里的对齐,千万不要按照自己认为的意思去理解。

2024-10-20 17:18:12 831

原创 你是否真的弄懂了 OAuth 2.0?

OAuth 2.0(Open Authorization 2.0,开放授权 2.0)是被广泛使用的一种开放的标准授权协议,用于授权一个应用程序访问用户在另一个应用程序上的受保护资源,而无需共享用户的访问凭证(如用户名和密码)。OAuth 2.0 的设计不仅提高了安全性,并且简化了开发者的集成过程。OAuth 2.0 并不是一种身份验证协议,而是专注于授权,即允许一个系统在不暴露用户凭证的情况下获得对另一个系统的访问权限。

2024-10-19 11:04:09 664

原创 前后端分离的情况下,后端接口有必要加CSP策略吗?

之前的写过一篇详细讲解 CSP 的文章《Web安全之Content Security Policy(CSP 内容安全策略)详解》,接下来再简单说一下什么是 CSP。通过 CSP,Web 开发者可以设置一组指令来限制哪些资源(如JavaScript、CSS、图片等)可以被加载,从哪些url加载,从而防止跨站脚本(XSS)、点击劫持(clickjacking)以及其他注入类攻击。CSP 的重要性在于能够有效地减少 Web 应用程序面临的安全风险,特别是在存在漏洞的情况下。

2024-09-18 22:13:03 614

原创 如何选择 Kubernetes Deployment 的更新策略?

Kubernetes Deployment支持两种更新策略:滚动更新(RollingUpdate)和重建更新(Recreate),用户可以根据实际需求选择合适的更新策略。

2024-09-10 22:13:32 404

原创 Kubernetes中三种探针的作用你真的知道吗?

之前的一篇文章《Kubernetes中配置livenessProbe、readinessProbe和startupProbe》详细讲解了几种探针的配置方式,本文详细讲解一下几种探针的作用和关系,有很多同学可能没有深入地探究过这几种探针,相信本文会带给你很多不知道的知识。

2024-09-02 22:30:12 546

原创 揭秘密码学中的经典角色 Alice 和 Bob

在密码学和信息安全领域,Alice 和 Bob 这两个名字的出镜率那是非常的高,已经成为了标准示例角色。随着密码学的普及,Alice 和 Bob 在教学材料、科研论文、书籍和讲座中被频繁使用。下面我们将探讨为什么 Alice 和 Bob 成为了这些领域的“常客”。

2024-08-25 16:13:45 628

原创 能实现可算不可见的同态加密技术详解

同态加密(Homomorphic Encryption,HE)是一种满足密文同态运算性质的加密算法,可以在加密数据上直接执行特定的计算操作,而无需先解密数据。这种特性使得同态加密在保护数据隐私的同时,仍能进行有用的计算,非常适用于云计算和数据处理等领域。

2024-08-24 22:33:17 1488

原创 你真的应该弄清楚 URI 和 URL 的区别

URI(Uniform Resource Identifier),统一资源标识符,是一个字符串,用于唯一标识互联网上的资源。URI 主要用于标识资源,而不管资源位于何处或如何访问。一个 URI 可能包含多种类型的标识信息,包括但不限于名称、位置、对象类型等。拿书来举个例子,假设一本书的标题是《计算机网络》,可以使用一个 URI 来唯一标识这本书,如 urn:isbn:978-0132671453,这里的 “urn:isbn:” 表示这是一个国际标准书号 (ISBN) 格式的 URI。

2024-08-24 08:22:00 719

原创 Web 安全之 RCE(Remote Code Execution)攻击详解

RCE(Remote Code Execution,远程代码执行)是一种常见的网络安全攻击方式,攻击者通过利用软件中的漏洞,在目标系统主机上远程执行任意代码。RCE 攻击通常发生在应用程序处理恶意输入时候,因未能正确校验和过滤输入数据,从而导致攻击者能够注入并执行恶意代码,进而控制目标系统,能够执行任何操作,包括窃取数据、安装恶意软件、修改系统配置等。

2024-08-06 22:43:16 787

原创 Web 安全之 OOB(Out-of-Band)攻击详解

OOB 攻击利用了系统的正常通信路径之外的途径来传递恶意数据或指令,从而绕过系统的安全防护措施。这种攻击方式使得攻击者能够在不被常规监控系统检测到的情况下,实现对目标系统的入侵和控制。OOB 攻击的名称来源于“Out-of-Band”(超出常规通信路径),表明攻击者使用了与正常通信路径不同的方式来与目标系统交互。Out-of-Band 通信:指目标系统与外部服务之间的通信,这种通信通常不会直接反映在应用程序的响应中。例如,应用程序可能会在处理请求时向外部服务器发送 DNS 查询或 HTTP 请求。

2024-07-28 20:28:09 775

原创 Linux 中停止 Docker 服务报 warning 导致无法彻底停止问题如何解决?

使用如下命令停止 Docker执行后报的时候报了一个 warning,如下这时候使用 docker ps 命令时会发现 docker 依然在运行。这个警告之所以出现,是因为 systemd 管理的 Docker 服务不仅包括了 docker.service,还有与之相关的 docker.socket。为了更好地理解这个问题,需要简单了解下 systemd 的工作原理,以及 Docker 在 systemd 中的配置和激活机制。

2024-07-17 21:28:31 939

原创 Web 安全之 VAPT (漏洞评估与渗透测试)详解

VAPT(Vulnerability Assessment and Penetration Testing,漏洞评估与渗透测试)是网络安全领域中的一种评估方法,结合了漏洞评估和渗透测试两种紧密相连但又有所区别的技术,以发现和评估系统中存在的漏洞和潜在的安全风险。VAPT 旨在帮助组织识别和发现系统中的安全漏洞,从而提高系统的安全性和抵御攻击的能力。

2024-07-16 20:51:43 1231

原创 CentOS Stream 卸载 Podman 并安装 Docker 的方法

Podman 是一个无守护进程的容器引擎,旨在提供与 Docker 类似的命令行接口,但不需要守护进程运行。Podman 是 Red Hat 的开源项目,具有安全性、兼容性和灵活性等优点。文章持续更新中,微信搜索【路多辛】阅读更多优质文章CentOS Stream 默认安装了 Podman 来代替 Docker,导致在 CentOS Stream 中安装 Docker 会和 Podman 冲突,所以要想安装 Docker 的话,需要先卸载掉 Podman。

2024-07-14 19:59:48 968

原创 链路追踪详解(六):Zipkin 和 Jaeger 的安装方法

Zipkin 和 Jaeger 是比较受欢迎并且被使用比较多的开源的分布式链路追踪工具,接下来就安装一下 Zipkin 和 Jaeger,以后的链路追踪系列文章也主要以这两个产品来举例。文章持续更新中,微信搜索【路多辛】阅读更多优质文章。

2024-07-12 20:58:30 610

原创 OpenResty程序如何连接开启了TLS的Redis?

OpenResty 是一个基于 Nginx 和 Lua 的 Web 应用框架,允许开发者通过 Lua 脚本对 Nginx 的配置和行为进行扩展。当 OpenResty 需要连接到一个开启了 TLS 的 Redis 服务器时,需要确保两个方面:一是 Redis 服务器配置了 TLS,二是 OpenResty 客户端能够使用 TLS 进行连接。

2024-07-10 21:41:55 662

原创 CentOS 7镜像列表服务下线,还想继续使用该怎么办?

CentOS 7的生命周期已经在2024年6月30日终止(End of Life,EOL),官方将不再对该版本进行问题修复、功能更新以及其他形式的维护支持。这意味着使用 CentOS 7 的用户将面临安全漏洞无法得到修补的风险,同时随着其他软件的更新,可能会出现不兼容的情况。

2024-07-04 22:01:32 2947 3

原创 软件开发中常用环境你都知道哪些?

在软件开发过程中,不同的环境用于不同的阶段,以确保软件的质量和稳定性。接下来详细介绍一些常用的环境及作用。文章持续更新中,微信搜索【路多辛】阅读更多优质文章。

2024-07-02 22:42:05 1586

原创 深入解析 gRPC 的重连机制

gRPC 重连机制是指在客户端与服务器之间的连接断开后,客户端自动尝试重新建立连接的过程。gRPC 的重连机制依赖于底层的传输层实现(如HTTP/2)和客户端库的配置。

2024-06-30 16:48:55 1334 1

原创 深度解析服务发布策略之A/B测试

A/B测试,也称为拆分测试或桶测试,是一种对比实验方法,核心思想是通过对比两个或多个版本的表现来评估某一变化的效果。一般同时运行两个或多个版本的网页、应用功能或广告等,将目标群体随机分为两组或多组,每组分别体验不同的版本,然后通过统计分析比较各版本的表现数据,以确定哪个版本更符合业务目标。实验组和对照组:实验组是接触新版本的用户群体,对照组是接触旧版本或基准版本的用户群体。独立变量:在实验中被改变的因素,如网页设计、按钮颜色等。依赖变量:实验结果的衡量标准,如点击率、转化率等。

2024-06-29 17:47:37 632

原创 链路追踪详解(五):链路传播 Header 详解

链路追踪作为分布式系统中不可或缺的一部分,可以帮助开发和运维人员了解请求在系统中的流转链路,快速定位问题和识别性能瓶颈。而链路传播 Header 是实现跨服务调用链跟踪的关键机制,通过链路传播 Header,使得跟踪信息在不同服务间的透明传递,从而构建出完整的请求链路。文章持续更新中,微信搜索【路多辛】阅读更多优质文章。

2024-06-27 22:03:31 719

原创 深度解析服务发布策略之滚动发布

滚动发布,也称为滚动更新或蓝绿部署的一种变体,是一种逐步替换旧版本应用实例的部署策略。核心思想是在不影响现有服务的情况下,逐步将流量从旧版本切入到新版本,直到所有流量都切入到新版本为止。在滚动发布过程中,系统会逐步增加新版本实例的数量,同时减少旧版本实例的数量,直到新版本完全替换旧版本。这种策略能够显著降低更新失败的风险,同时确保服务的高可用性和连续性。

2024-06-19 21:49:12 948

原创 软件服务中的 SLA 到底是什么?

SLA 是服务提供商对客户的正式承诺,明确了服务提供商将提供何种级别的服务,旨在确保服务的可用性、响应时间、故障恢复时间等关键指标达到预定的目标。SLA 通常包含多个服务级别目标(Service Level Objectives,简称 SLO),这些目标是具体、可度量的,例如服务的可用性、性能、容量等。SLA 可以应用于各种类型的服务,包括云服务、网络服务、数据中心服务、软件服务等。在软件服务中,SLA可能包括软件的功能、性能、可用性、安全性、支持服务等。

2024-06-16 19:14:00 1513

原创 深度解析服务发布策略之金丝雀发布

金丝雀发布是通过逐渐将新版本发布到生产环境,而不是一次性全面发布,来降低风险和影响的一种策略。这种策略的名称来源于采矿业中的“金丝雀测试”,金丝雀(一种小型鸟类)被用来检测矿井空气中有害气体的浓度。如果金丝雀出现异常或死亡,说明环境存在危险。在软件领域,金丝雀发布同样扮演着“哨兵”的角色,新版本首先只对一小部分用户(金丝雀用户)进行发布,如果新版本在金丝雀用户中运行良好,没有出现问题,那么就逐渐扩大发布范围,直到所有用户都使用新版本。

2024-06-15 20:45:26 1169

原创 深度解析服务发布策略之蓝绿发布

蓝绿发布是通过使用两套完全相同的生产环境来减少系统停机时间和降低风险的一种策略。这两个环境通常被称为"蓝"和"绿",在任意时刻,只有一个环境是活动的。在蓝绿发布中,"蓝"环境通常是当前活动的生产环境,而"绿"环境是准备新版本发布的预生产环境。当新版本在"绿"环境中部署好并经过测试验证通过后,将流量从"蓝"环境切换到"绿"环境。如果在"绿"环境中发现问题,可以快速回滚到"蓝"环境。等绿环境一切功能正常无误后,再将蓝环境升级到新版本。

2024-06-14 22:11:35 1009

原创 为什么需要分布式 ID?

在现代软件架构中,分布式系统架构变得越来越流行。在这些系统中,由于组件分散在不同的服务器、数据中心甚至不同的地理位置,因此要构建高性能、可扩展的应用系统就需要一种可靠的方式来确保在整个系统中生成的 ID 是唯一的。文章持续更新中,微信搜索【路多辛】阅读更多优质文章。

2024-05-27 21:43:06 693

原创 备受 Linux 之父推崇的 dogfooding 产品开发方式详解

Linux 之父 Linus Torvalds 在 Linux 6.10 内核开发阶段的一个关于 DRM 图形驱动程序更新补丁的邮件列表中,称自己是 "dogfooding" 的忠实信徒。那什么是 dogfooding 呢?“dogfooding”(全称为“eating your own dog food”)是软件开发行业中的一个形象而又有趣的术语,直译为“吃狗粮”,实际上指的是公司内部使用自己开发的产品或服务的行为。

2024-05-22 22:13:12 827

原创 ChatGPT 对话使用的 EventSource 技术到底是什么?

EventSource 是 HTML5 中引入的一项技术,定义了一种从服务器到客户端的单向数据传输机制。EventSource 的核心思想是实现服务器端主动推送数据到客户端,而无需客户端频繁发起请求。基于 HTTP 长轮询技术,但与传统的轮询相比,具有更高的效率和实时性,因为一旦连接建立,服务器可以连续发送多个事件到客户端,直到连接关闭。

2024-05-21 22:06:21 1079

原创 Web 安全之盗链(Hotlinking)攻击详解

盗链是指在一个网站上直接链接到另一个网站服务器上的文件的行为。简单来说,是指一个网站直接引用了其他网站上的资源(如图片、视频、文档等),而用户在访问这个网站时,实际上是在消耗被盗链网站的带宽和资源,但这些资源的流量和价值却归属到了盗链网站上。例如,网站 A 的管理员发现网站 B 有一张很好的图片,他不将图片下载后上传到自己的服务器,而是在自己的网页代码中直接引用网站 B 的图片 URL。这样,每当有人访问网站 A 的这个页面,图片都是从网站 B 的服务器上加载的。

2024-05-12 09:42:56 1123 1

原创 Web 应用最安全的会话实现和保持方式是什么?

什么是会话管理?会话管理是一种在无状态的 HTTP 协议上保持用户状态的技术, Web 服务器通过会话管理可以识别和跟踪用户的请求。为什么需要会话管理?由于 HTTP 协议本身不保存状态信息,所以服务器需要一种机制来区分不同用户的请求,以及在多个请求之间保持用户的状态信息。会话创建会话信息应该由服务器端创建,服务器端创建会话 ID 以及会话信息后存储起来,将会话 ID 返回给 Web 客户端存储。会话 ID应 该是随机的、不可预测的,并且有足够的熵。会话 ID 通常是通过安全的随机数生成算法生成。

2024-04-21 20:34:36 1257 2

原创 你真的知道 HTTP OPTIONS 方法的作用吗?

根据 RFC 7231规范定义,HTTP OPTIONS 方法是一个“用于获取针对特定资源的 HTTP 请求方法或 URI 的通信选项”的请求方法。简单来说,当客户端发送一个 OPTIONS 请求到服务器时,是在询问:“对于这个特定的URL,服务器能处理哪些 HTTP 方法或者有哪些特殊的限制或要求”。

2024-04-11 22:07:43 2561

原创 简化开发与提升可维护性的编程范式-声明式 API

声明式 API 的核心思想是将“意图”与“执行”分离。开发者通过声明式 API 描述自己想要的结果,而不需要关心实现这一结果的具体步骤。系统根据这些声明自动确定如何执行任务。声明式 API 一般是通过开发者编写描述期望的系统状态的配置文件来与系统交互。这些配置文件通常采用 YAML 或 JSON 格式,明确地列出所需资源的属性和关系。例如,在 Kubernetes 中,可以编写一个 Pod 或 Deployment 的 YAML 配置文件,描述应用程序运行所需的容器镜像、副本数量、资源限制等细节。

2024-04-07 21:57:17 777

原创 如何理解 Go 语言中的 top-level 声明?

在 Go 语言中,“top-level”这个术语通常指的是与包(package)直接相关的代码结构和声明,而不是嵌套在函数或方法内部的代码。top-level 代码包括变量、常量、类型、函数和方法的声明,这些都是在包的最顶层作用域中定义的,因此任何包内部的代码都可以访问它们。理解 top-level 结构对于编写清晰、组织良好的代码至关重要。文章持续更新中,微信搜索【路多辛】阅读更多优质文章。

2024-04-06 08:29:02 755

原创 Web 安全之 SSL 剥离攻击详解

SSL(Secure Sockets Layer)是用于在互联网上建立加密连接,确保数据在客户端和服务器之间传输的过程中不被窃取或篡改一种安全协议。TLS(Transport Layer Security)是 SSL 的升级版,提供了更强的安全功能。在 SSL/TLS 的保护下,用户可以通过 HTTPS 协议安全地访问网站,避免敏感信息(如登录凭证、信用卡信息等)被中间人攻击者窃取。浏览器发送一个包含支持的 SSL/TLS 版本、加密算法选项等信息的“客户端Hello”消息。

2024-04-05 14:41:19 1515

原创 Web 安全之路径遍历攻击详解

路径遍历攻击的核心原理在于利用目标系统处理用户输入时的不安全或疏忽行为,尤其是当应用程序接受用户提供的文件名或路径,并据此进行文件操作(如读取、写入或执行文件)时。攻击者会提交精心构造的恶意路径,其中包含了特殊的字符序列或编码,使得原本应该在限定目录下的文件操作跨越了预设边界,进而访问到服务器文件系统的其他位置。

2024-04-01 21:18:12 1262

原创 高效的二进制列化格式 MessagePack 详解

MessagePack (简称 msgPack)是一种高效的二进制序列化格式,可以将各种数据类型(如整数、字符串、数组等)转换为二进制格式,以便于在网络传输或存储时使用。与 JSON 和 XML 等文本格式相比,MessagePack 的二进制格式更加紧凑,因此在处理大量数据时可以提供更好的性能。

2024-03-24 22:03:30 1078

原创 高效灵活可扩展的数据序列化格式 TLV 详解

TLV(Tag-Length-Value)是一种常用的数据序列化格式,主要用于数据包或消息的有效载荷编码。这种编码方式把数据划分为三个主要部分:Tag(标签)、Length(长度)和 Value(值)。这种方式在电信、计算机网络、智能卡、物联网等领域被广泛应用,尤其在那些需要高效、灵活且可扩展的数据编码方案的领域。

2024-03-17 19:32:03 2521

原创 基于 .netrc 文件的身份验证详解

netrc(Network Resource Configuration)文件是一种在 Unix 和类 Unix 系统中用于存储网络登录和身份验证信息的文件,通常位于用户计算机的 home 目录下,文件名为 .netrc。这个文件可以包含(Machine)、登录名(Login)和密码(Password)三元组和其他字段,以便在执行诸如 FTP、HTTP、HTTPS、git 等命令行工具时自动进行身份验证。

2024-03-16 11:05:29 2165

golang echo框架获取request body和response body方法源代码

内容概要:golang echo框架获取request body和response body方法。 适合人群:掌握golang使用方法,学习过echo框架。 能学到什么: 学会echo框架获取request body和response body方法并了解原理。

2023-02-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除