- 博客(334)
- 收藏
- 关注
原创 Kubernetes 中 Pod 访问 API Server 的权限控制机制详解
在 Kubernetes 的设计理念中,确保对集群资源的安全访问是至关重要的。当部署在 Kubernetes 中的服务需要与 API Server 交互时,Kubernetes 也是采用了基于角色的访问控制(RBAC)机制来管理服务调用权限的范围的。通过 RBAC,管理员可以控制哪个服务可以访问哪些资源以及可以执行什么操作。这个机制会涉及到几个关键概念:ClusterRole、ClusterRoleBinding、Role、RoleBinding 和 ServiceAccount。
2025-03-01 16:21:21
919
原创 实现单点登录到底该选哪种 SSO 协议?
SSO(Single Sign-On, 单点登录)是一种身份验证机制,用户通过一次登录即可访问多个相关但独立的软件系统,而无需再次输入用户名和密码。不同的 SSO 协议有不同的工作原理和应用场景。本文介绍的 SSO 协议之前都写过专门的文章进行了详细讲解,本文主要是做对比讲解,不会讲解细节,想了解细节的同学可以到我的文章目录里去查找到对应文章进行阅读。
2025-01-18 10:50:27
1026
原创 网络身份认证协议 Kerberos 详解
Kerberos 是一种网络认证协议,利用对称密钥加密技术为客户端和服务器之间的通信提供强身份验证。Kerberos 最初由麻省理工学院开发,作为 Athena 项目的一部分,旨在增强分布式计算环境中的安全性。如今,Kerberos已成为许多企业级应用中实现单点登录(SSO)的方案之一。
2025-01-12 08:26:15
1064
原创 使用 SAML 2.0协议需要注意的安全问题
SAML(Security Assertion Markup Language)2.0 是用于在不同安全域之间交换身份验证和授权数据的开放标准。通过 SAML 2.0 协议,服务提供商(SP, Service Provider)可以信任并依赖身份提供商(IdP, Identity Provider)的身份验证结果,为用户提供单点登录(SSO, Single Sign-On)体验。然而,在使用 SAML 2.0的过程中,如果配置不当或者安全性校验没做好,可能会导致严重的安全隐患。
2025-01-07 21:20:46
1030
原创 到底该如何理解事件驱动编程?
事件驱动编程(Event-Driven Programming, EDP)是计算机编程领域一种常见的编程范式,将程序的执行流程构建为一系列由外部或内部事件触发的函数调用,强调程序的执行流程由事件的发生来决定。这种模型与传统的顺序执行程序不同,在顺序执行中,指令按照代码中规定的顺序依次执行。事件驱动模式是等待特定事件的发生,然后根据该事件执行相应的代码块。这些事件可以是用户输入、网络数据包到达、文件系统变化、计时器到期等。
2025-01-04 10:33:49
1016
原创 轻量级通信协议 JSON-RPC 2.0 详解
JSON-RPC (JavaScript Object Notation - Remote Procedure Call) 是一种轻量级的远程过程调用协议,使用 JSON(JavaScript 对象表示法)作为数据格式。JSON-RPC 2.0 是该协议的最新版本,在 1.0 版本的基础上增加了一些特性,如错误代码标准化、批量请求支持和无响应的通知。JSON-RPC 的设计原则是简单性和互操作性,旨在为不同编程语言之间提供一种方便的方法来执行远程过程调用。
2025-01-01 09:00:24
1901
原创 IDE 强大功能背后的 Language Server Protocol 详解
IDE(Integrated Development Environment,集成开发环境)在软件开发过程中发挥着至关重要的作用,不仅提供了代码编辑的基本功能,还集成了代码补全、语法高亮、错误提示、代码导航等一系列高级特性,极大地提升了开发效率。这些高级特性的实现通常依赖于特定的语言和服务端的支持,每当适配一种新语言,就需要为这个语言实现单独的插件或扩展来提供这些特性。这种状况不仅增加了开发者的负担,也限制了跨平台和跨语言的协作。
2024-12-28 20:44:10
1728
3
原创 功能很强大的单点登录协议 SAML 2.0详解
SAML 2.0(Security Assertion Markup Language 2.0,安全断言标记语言 2.0)是一种基于 XML 的开放标准,用于在不同安全域之间交换身份验证和授权数据。通过 SAML 2.0, 用户可以在一个系统中进行身份验证后将身份验证信息传递给其他系统,而无需再次输入登录凭证。SAML 2.0是 SAML 规范的第二个主要版本,于2005年发布,主要提高了安全性和互操作性。服务提供者 (Service Provider, SP): 需要验证用户身份的应用或服务。
2024-12-23 22:31:39
1703
原创 实现客户端真实 IP 透传的协议 PROXY protocol 详解
PROXY protocol 是一种用于在代理服务器和后端服务器之间传输客户端连接信息的协议,旨在解决由于使用代理而导致的真实客户端信息丢失的问题。
2024-12-14 11:13:09
1638
1
原创 单点登录解决方案 CAS(Central Authentication Service)详解
Central Authentication Service(中央认证服务,简称 CAS)是一个开源的企业级单点登录(Single Sign-On, SSO)解决方案,主要用于 Web 应用系统,旨在为用户提供跨多个应用程序和服务的无缝身份验证体验。通过 CAS,用户在一个地方进行身份验证,然后可以无缝地访问多个相关但独立的软件系统,而无需再次进行身份验证。
2024-12-02 21:37:55
1045
原创 Go 工具链详解(八):go telemetry
Go 1.23 版本的工具链提供一个新工具——telemetry,用于收集 Go 工具链的使用和故障统计数据,以帮助 Go 团队了解工具链的使用情况和运行状态,从而进行改进和优化。
2024-11-21 07:10:42
1116
原创 OpenID Connect 和 OAuth 2.0 有什么不同?
在理解 OpenID Connect(OIDC)和 OAuth 2.0 之间的区别之前,再回顾下它们各自的基本概念。
2024-11-05 22:27:54
803
原创 你竟然还不了解 LDAP?
LDAP(Lightweight Directory Access Protocol,轻量级目录访问协议)是用于访问和管理目录服务的一种开放协议,基于 X.500标准但简化了 X.500的复杂性,更易于实现和部署。LDAP 的主要目的是为了快速查询和访问用户信息,如用户名、密码、电子邮件地址或打印机连接等静态数据。LDAP 采用客户端/服务器模式,客户端通过 LDAP 协议与服务器进行通信、查询和修改目录中的信息。
2024-11-03 19:19:02
834
原创 一文讲清楚 OpenID Connect 支持的三个授权流程
OpenID Connect 支持多种授权流程(Authorization Grant Types),用于实现在不同场景下的授权和身份认证。在开始讲解前,再罗列一下 OpenID Connect 中的几个参与方,在正文中使用的关键概念一定要和这里的对齐,千万不要按照自己认为的意思去理解。
2024-10-31 16:31:28
769
原创 都知道OAuth 2.0了却还不知道OpenID Connect?
OpenID Connect (OIDC,下文讲解中都使用这个简称) 是基于 OAuth 2.0 授权协议构建的一种身份验证协议,为第三方应用程序提供了一种获取、验证和利用用户身份信息的方法,旨在简化和标准化用户身份验证的过程。与传统的身份验证方法相比,OIDC 提供了一种更加安全、灵活且易于集成的解决方案。在深入讲解之前,先看下身份验证和授权这两个概念。
2024-10-23 22:45:50
752
原创 一文讲清楚 OAuth 2.0 支持的四个授权流程
OAuth 2.0协议支持多种授权流程(Authorization Grant Types),用于实现在不同场景下的授权。在开始讲解前,再罗列一下 OAuth 2.0 中的几个参与方,在正文中使用的关键概念一定要和这里的对齐,千万不要按照自己认为的意思去理解。
2024-10-20 17:18:12
1051
原创 你是否真的弄懂了 OAuth 2.0?
OAuth 2.0(Open Authorization 2.0,开放授权 2.0)是被广泛使用的一种开放的标准授权协议,用于授权一个应用程序访问用户在另一个应用程序上的受保护资源,而无需共享用户的访问凭证(如用户名和密码)。OAuth 2.0 的设计不仅提高了安全性,并且简化了开发者的集成过程。OAuth 2.0 并不是一种身份验证协议,而是专注于授权,即允许一个系统在不暴露用户凭证的情况下获得对另一个系统的访问权限。
2024-10-19 11:04:09
791
原创 前后端分离的情况下,后端接口有必要加CSP策略吗?
之前的写过一篇详细讲解 CSP 的文章《Web安全之Content Security Policy(CSP 内容安全策略)详解》,接下来再简单说一下什么是 CSP。通过 CSP,Web 开发者可以设置一组指令来限制哪些资源(如JavaScript、CSS、图片等)可以被加载,从哪些url加载,从而防止跨站脚本(XSS)、点击劫持(clickjacking)以及其他注入类攻击。CSP 的重要性在于能够有效地减少 Web 应用程序面临的安全风险,特别是在存在漏洞的情况下。
2024-09-18 22:13:03
750
原创 如何选择 Kubernetes Deployment 的更新策略?
Kubernetes Deployment支持两种更新策略:滚动更新(RollingUpdate)和重建更新(Recreate),用户可以根据实际需求选择合适的更新策略。
2024-09-10 22:13:32
524
原创 Kubernetes中三种探针的作用你真的知道吗?
之前的一篇文章《Kubernetes中配置livenessProbe、readinessProbe和startupProbe》详细讲解了几种探针的配置方式,本文详细讲解一下几种探针的作用和关系,有很多同学可能没有深入地探究过这几种探针,相信本文会带给你很多不知道的知识。
2024-09-02 22:30:12
631
原创 揭秘密码学中的经典角色 Alice 和 Bob
在密码学和信息安全领域,Alice 和 Bob 这两个名字的出镜率那是非常的高,已经成为了标准示例角色。随着密码学的普及,Alice 和 Bob 在教学材料、科研论文、书籍和讲座中被频繁使用。下面我们将探讨为什么 Alice 和 Bob 成为了这些领域的“常客”。
2024-08-25 16:13:45
911
原创 能实现可算不可见的同态加密技术详解
同态加密(Homomorphic Encryption,HE)是一种满足密文同态运算性质的加密算法,可以在加密数据上直接执行特定的计算操作,而无需先解密数据。这种特性使得同态加密在保护数据隐私的同时,仍能进行有用的计算,非常适用于云计算和数据处理等领域。
2024-08-24 22:33:17
1881
原创 你真的应该弄清楚 URI 和 URL 的区别
URI(Uniform Resource Identifier),统一资源标识符,是一个字符串,用于唯一标识互联网上的资源。URI 主要用于标识资源,而不管资源位于何处或如何访问。一个 URI 可能包含多种类型的标识信息,包括但不限于名称、位置、对象类型等。拿书来举个例子,假设一本书的标题是《计算机网络》,可以使用一个 URI 来唯一标识这本书,如 urn:isbn:978-0132671453,这里的 “urn:isbn:” 表示这是一个国际标准书号 (ISBN) 格式的 URI。
2024-08-24 08:22:00
805
原创 Web 安全之 RCE(Remote Code Execution)攻击详解
RCE(Remote Code Execution,远程代码执行)是一种常见的网络安全攻击方式,攻击者通过利用软件中的漏洞,在目标系统主机上远程执行任意代码。RCE 攻击通常发生在应用程序处理恶意输入时候,因未能正确校验和过滤输入数据,从而导致攻击者能够注入并执行恶意代码,进而控制目标系统,能够执行任何操作,包括窃取数据、安装恶意软件、修改系统配置等。
2024-08-06 22:43:16
1050
原创 Web 安全之 OOB(Out-of-Band)攻击详解
OOB 攻击利用了系统的正常通信路径之外的途径来传递恶意数据或指令,从而绕过系统的安全防护措施。这种攻击方式使得攻击者能够在不被常规监控系统检测到的情况下,实现对目标系统的入侵和控制。OOB 攻击的名称来源于“Out-of-Band”(超出常规通信路径),表明攻击者使用了与正常通信路径不同的方式来与目标系统交互。Out-of-Band 通信:指目标系统与外部服务之间的通信,这种通信通常不会直接反映在应用程序的响应中。例如,应用程序可能会在处理请求时向外部服务器发送 DNS 查询或 HTTP 请求。
2024-07-28 20:28:09
1028
原创 Linux 中停止 Docker 服务报 warning 导致无法彻底停止问题如何解决?
使用如下命令停止 Docker执行后报的时候报了一个 warning,如下这时候使用 docker ps 命令时会发现 docker 依然在运行。这个警告之所以出现,是因为 systemd 管理的 Docker 服务不仅包括了 docker.service,还有与之相关的 docker.socket。为了更好地理解这个问题,需要简单了解下 systemd 的工作原理,以及 Docker 在 systemd 中的配置和激活机制。
2024-07-17 21:28:31
1400
原创 Web 安全之 VAPT (漏洞评估与渗透测试)详解
VAPT(Vulnerability Assessment and Penetration Testing,漏洞评估与渗透测试)是网络安全领域中的一种评估方法,结合了漏洞评估和渗透测试两种紧密相连但又有所区别的技术,以发现和评估系统中存在的漏洞和潜在的安全风险。VAPT 旨在帮助组织识别和发现系统中的安全漏洞,从而提高系统的安全性和抵御攻击的能力。
2024-07-16 20:51:43
1819
原创 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
1599
原创 链路追踪详解(六):Zipkin 和 Jaeger 的安装方法
Zipkin 和 Jaeger 是比较受欢迎并且被使用比较多的开源的分布式链路追踪工具,接下来就安装一下 Zipkin 和 Jaeger,以后的链路追踪系列文章也主要以这两个产品来举例。文章持续更新中,微信搜索【路多辛】阅读更多优质文章。
2024-07-12 20:58:30
748
原创 OpenResty程序如何连接开启了TLS的Redis?
OpenResty 是一个基于 Nginx 和 Lua 的 Web 应用框架,允许开发者通过 Lua 脚本对 Nginx 的配置和行为进行扩展。当 OpenResty 需要连接到一个开启了 TLS 的 Redis 服务器时,需要确保两个方面:一是 Redis 服务器配置了 TLS,二是 OpenResty 客户端能够使用 TLS 进行连接。
2024-07-10 21:41:55
736
原创 CentOS 7镜像列表服务下线,还想继续使用该怎么办?
CentOS 7的生命周期已经在2024年6月30日终止(End of Life,EOL),官方将不再对该版本进行问题修复、功能更新以及其他形式的维护支持。这意味着使用 CentOS 7 的用户将面临安全漏洞无法得到修补的风险,同时随着其他软件的更新,可能会出现不兼容的情况。
2024-07-04 22:01:32
3515
4
原创 软件开发中常用环境你都知道哪些?
在软件开发过程中,不同的环境用于不同的阶段,以确保软件的质量和稳定性。接下来详细介绍一些常用的环境及作用。文章持续更新中,微信搜索【路多辛】阅读更多优质文章。
2024-07-02 22:42:05
2179
原创 深入解析 gRPC 的重连机制
gRPC 重连机制是指在客户端与服务器之间的连接断开后,客户端自动尝试重新建立连接的过程。gRPC 的重连机制依赖于底层的传输层实现(如HTTP/2)和客户端库的配置。
2024-06-30 16:48:55
1970
1
原创 深度解析服务发布策略之A/B测试
A/B测试,也称为拆分测试或桶测试,是一种对比实验方法,核心思想是通过对比两个或多个版本的表现来评估某一变化的效果。一般同时运行两个或多个版本的网页、应用功能或广告等,将目标群体随机分为两组或多组,每组分别体验不同的版本,然后通过统计分析比较各版本的表现数据,以确定哪个版本更符合业务目标。实验组和对照组:实验组是接触新版本的用户群体,对照组是接触旧版本或基准版本的用户群体。独立变量:在实验中被改变的因素,如网页设计、按钮颜色等。依赖变量:实验结果的衡量标准,如点击率、转化率等。
2024-06-29 17:47:37
684
原创 链路追踪详解(五):链路传播 Header 详解
链路追踪作为分布式系统中不可或缺的一部分,可以帮助开发和运维人员了解请求在系统中的流转链路,快速定位问题和识别性能瓶颈。而链路传播 Header 是实现跨服务调用链跟踪的关键机制,通过链路传播 Header,使得跟踪信息在不同服务间的透明传递,从而构建出完整的请求链路。文章持续更新中,微信搜索【路多辛】阅读更多优质文章。
2024-06-27 22:03:31
894
原创 深度解析服务发布策略之滚动发布
滚动发布,也称为滚动更新或蓝绿部署的一种变体,是一种逐步替换旧版本应用实例的部署策略。核心思想是在不影响现有服务的情况下,逐步将流量从旧版本切入到新版本,直到所有流量都切入到新版本为止。在滚动发布过程中,系统会逐步增加新版本实例的数量,同时减少旧版本实例的数量,直到新版本完全替换旧版本。这种策略能够显著降低更新失败的风险,同时确保服务的高可用性和连续性。
2024-06-19 21:49:12
1021
原创 软件服务中的 SLA 到底是什么?
SLA 是服务提供商对客户的正式承诺,明确了服务提供商将提供何种级别的服务,旨在确保服务的可用性、响应时间、故障恢复时间等关键指标达到预定的目标。SLA 通常包含多个服务级别目标(Service Level Objectives,简称 SLO),这些目标是具体、可度量的,例如服务的可用性、性能、容量等。SLA 可以应用于各种类型的服务,包括云服务、网络服务、数据中心服务、软件服务等。在软件服务中,SLA可能包括软件的功能、性能、可用性、安全性、支持服务等。
2024-06-16 19:14:00
2080
原创 深度解析服务发布策略之金丝雀发布
金丝雀发布是通过逐渐将新版本发布到生产环境,而不是一次性全面发布,来降低风险和影响的一种策略。这种策略的名称来源于采矿业中的“金丝雀测试”,金丝雀(一种小型鸟类)被用来检测矿井空气中有害气体的浓度。如果金丝雀出现异常或死亡,说明环境存在危险。在软件领域,金丝雀发布同样扮演着“哨兵”的角色,新版本首先只对一小部分用户(金丝雀用户)进行发布,如果新版本在金丝雀用户中运行良好,没有出现问题,那么就逐渐扩大发布范围,直到所有用户都使用新版本。
2024-06-15 20:45:26
1285
原创 深度解析服务发布策略之蓝绿发布
蓝绿发布是通过使用两套完全相同的生产环境来减少系统停机时间和降低风险的一种策略。这两个环境通常被称为"蓝"和"绿",在任意时刻,只有一个环境是活动的。在蓝绿发布中,"蓝"环境通常是当前活动的生产环境,而"绿"环境是准备新版本发布的预生产环境。当新版本在"绿"环境中部署好并经过测试验证通过后,将流量从"蓝"环境切换到"绿"环境。如果在"绿"环境中发现问题,可以快速回滚到"蓝"环境。等绿环境一切功能正常无误后,再将蓝环境升级到新版本。
2024-06-14 22:11:35
1056
原创 为什么需要分布式 ID?
在现代软件架构中,分布式系统架构变得越来越流行。在这些系统中,由于组件分散在不同的服务器、数据中心甚至不同的地理位置,因此要构建高性能、可扩展的应用系统就需要一种可靠的方式来确保在整个系统中生成的 ID 是唯一的。文章持续更新中,微信搜索【路多辛】阅读更多优质文章。
2024-05-27 21:43:06
734
golang echo框架获取request body和response body方法源代码
2023-02-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人