零信任网络架构与实现技术的研究与思考
目前,国外已有较多有关零信任网络的研究与实践,包括谷歌的 BeyondCorp、BeyondProd,软件定义边界(Software Defined Perimeter,SDP) 及盖特提出的“持续自适应风险与信任评估”等。国内也有不少安全厂商积极投身零信任市场,包括360、安恒信息等,并推出了相应的零信任产品和解决方案。这些研究与实践对零信任网络的落地应用带来了积极影响。
但同时也应该看到,目前,零信任网络的推广难度较大。系统设计人员在实际应用中主要面临以下几个方面的难题:
(1)不清楚零信任思想本质,容易走入堆砌技术和产品的歧途;
(2)不清楚零信任的功能架构,容易“照顾不周”“顾此失彼”,导致安全防护功能出现短板,或者出现某一方面能力特别突出的情况,整个系统能力不佳;
(3)没有掌握零信任网络实现技术,难以将功能落地。
本文针对上述问题开展了研究,期望找到适合的应对措施,为想要提升网络安全防护能力的各类组织提供参考。
1、零信任思想的本质
零信任思想的本质是基于动态的信任度赋予适度的访问权限,其关键点在于摈弃无端或超出合理范围的信任,对实体、环境等进行持续评估,并根据反馈结果及时修正策略,从而将静态的防御转换为动态的防御。
2、零信任网络功能架构
零信任网络功能架构可分解为 5 个基本功能,分别是:
(1)网络身份管理:提供对网络实体全生命周期的管理,确保所有实体来源可信、安全可控。
(2)网络身份认证:确保网络实体在发起网络行为时向相关对象证明其身份可信。
(3)网络访问授权:实现基于网络实体的身份对网络访问进行无特权的权限管控和访问控制,保证所有访问都必须得到授权。
(4)传输安全保障:实现访问数据在网络传输过程中的安全可信,确保数据访问不可抵赖、内容不被窃取等。
(5)行为安全监控:对网络实体的运行状态和网络行为的持续监测,并抑制网络攻击对系统的影响。
3、零信任网络实现技术
3.1 网络身份管理
网络身份管理的目标是在网络空间中产生网络行为的网络实体的全生命周期内,掌握网络实体与现实实体之间的映射关系,并记录其变更过程。由于网络行为均由应用软件和设备发起,还可能来自操作应用的用户,故网络身份管理的对象既可以是用户,也可以是应用和设备。在某些场合,可将一个网络中的网络实体视为一个整体,从而实现简化管理,故网络身份管理的对象还可以是网络。
人员管理主要包括身份注册、安全审查、安全培训、身份变更处理和身份注销处理几个方面。其中,身份注册的主要目的是为可信度评估提供基础,用户信息分为基本信息和高级信息。用户基本信息包括姓名、生日、年龄等;用户高级信息包括身份证号、生物特征和住址等。根据系统的安全等级选择是否需要录入高级信息,录入的信息越多,掌握的信息越全面,判断人员可信度的参数则越多。完成可信度初始评估后,还需对人员进行安全审查,包括对其信用信息、履历和犯罪记录等的调阅和审查。在安全审查通过之前,需要限制人员对网络进行所有或者部分访问。当人员正式成为员工或者客户时,至少应该在开放访问前对其进行安全培训或提示。在高安全等级系统中,为了防止出现人为安全漏洞,需要在系统使用过程中不断进行安全提示和必要的强化培训。当人员身份信息和安全审查相关信息发生改变时需要及时更新。当人员不再使用信息系统时需要及时关闭其所有权限,进行注销处理。在发生身份注销时,应该根据信息系统的保密程度,考虑是否对人员要求签署保密条款。
设备的管理方面,应结合资产管理系统对设备的采购来源、用途等基本信息,以及 IP 地址、证书的状态进行登记和随时更新,并记录相关的变更日志。根据网络安全等级要求,应选择记录良好、资本构成符合要求的供应商进行供货,并考虑是否对供应商进行背景调查。根据网络安全等级要求,考虑是否监管供应商生产供应过程,包括元器件采购、加工、装备、检验等,以提升产品安全性,一般适用于高安全网络。接收设备时,应对设备进行系统安全检测,比如病毒扫描、漏洞扫描,掌握设备的安全风险状态。在设备上线前和运行过程中,应及时对设备进行安全加固,包括病毒查杀、修补漏洞、升级病毒库等。若设备不再接入网络使用,则应下线处理,对于安全要求高的组织机构,应该强制要求拆除设备硬盘,或者擦除硬盘数据,最后才能将设备转作他用或者报废。
应用的身份管理主要关注应用的开发、测评和部署 3 个阶段。在应用开发阶段,至少应先明确安全性需求,并明确是否允许使用高风险数据库或者第三方插件等。在应用开发完成后,应组织专业机构对应用安全性进行测评,包括是否存在已知漏洞、是否符合安全性设计要求等。在应用部署阶段,应对应用进行上线审批,建立软件白名单,通过终端管控软件控制设备允许运行的软件。
网络安全等级越高,评估的因素就越多,要求掌握的信息就越丰富。在建立身份管理系统、资产管理系统、软件白名单和网络组织清单时,信息采集应满足法律的要求,如果是采集个人信息,应该得到个人的授权,并且数据的生成、传递和保存必须采用制度和技术保护,保证数据的保密、真实和完整。
3.2 网络身份认证
网 络 身 份 认 证 时, 不 同 实 体 选 用 不 同 的 认证方式。人员认证方法有基于口令、生物特征或者私人持有的基于硬件的可信处理模块(Trusted Processing Module,TPM)等的方法。设备和应用的认证方法有通过软数字证书或者设备绑定的 TPM来认证的方法。网络的认证可以通过网络代理设备或软件代理网络整体对外认证,从而不用对网络中多个实体分别认证,在某些对计算或网络开销比较敏感的场合可以考虑使用。
身份认证方法的选择通常根据风险高低决定。当环境风险小到一定程度时,身份认证可以通过传递身份标识(如 IP、端口等)实现,如同新认识的朋友相互交换名字就知道对方是谁。但当环境风险不够高时,身份认证必须采用更安全的方式。一般来说,首先使用非常强的认证手段保证一定是该实体;其次生成一个可验证的身份断言用于基本业务,即“初始强认证”与“使用时弱认证”结合,可兼顾安全性和便利性。“初始强认证”一般在系统开设、业务开通阶段进行,比如用户到银行开户需要本人到柜台出示身份证,新员工入职时公司对员工进行安全审查,此工作可以与网络身份管理的身份录入和信息审查合并进行。经过“初始强认证”后,进入“使用时弱认证”阶段,银行颁发给用户一张银行卡,并让用户设置一个口令,允许用户通过银行卡和口令办理存取款业务;公司也给员工办理一张员工证,允许员工凭该证出入工作环境。但用户银行卡和口令必须经过 ATM 机在线验证,员工证也必须经过公司门卫手工验证或者刷卡机在线验证。
采用可变强度的身份认证。当环境风险发生变化时,身份认证强度应该及时调整。比如首次使用新设备风险较高,需要使用强认证、设置口令并绑定设备,后续允许使用口令进行操作,但再次更换新设备时,需要再次使用强认证、设置口令并绑定设备。在进行高风险操作时,也需要提高认证强度。
必须警惕口令不当使用。某些系统可能必须多人使用同一账户操作业务,造成口令知悉范围较大,没有与人绑定;某些系统口令复杂度要求低,抗攻击能力弱。上述不当的口令使用会带来很多风险,应该设法降低风险。在无法与人绑定账户的系统中,应增强环境准入控制或用其他方法保证使用者的合法性,在口令复杂度要求低的系统中,应强制提升密码复杂度要求。
使用的数字证书应当定期更新。相当多的系统使用数字证书方式进行认证,却忽视了数字证书有效期的限制。为提升安全性,其证书需要强制定期更新。此外,证书更新途径是否安全、更新周期是否得到控制等因素都会影响可信度。
充分利用信任传递技术来构建信任链 。如图 1所示,信任传递是指当 B 在一定程度上信任 C 时,A 依赖于对 B 的信任而一定程度地信任 C。比如员工与公司门卫并不熟识,但员工因公携带物品离开公司大门,若向公司门卫出具部门领导签署的审批单,公司门卫可依据审批单对其放行。上述例子中,A 对 B 和 B 对 C 的信任称为直接信任,而 A 对 C的信任称为间接信任。A 基于 B 从而对 C 的信任形成信任链。在信任链上,相邻实体间不都是绝对信任,所以信任度会随着信任传递次数的增加而减小。此外,A 对 C 的信任程度与 A 对 B 和 B 对 C 的信任程度正相关,但不一定线性。特别的,若 A 不再信任 B 或 B 不再信任 C,则 A 也不再信任 C。信任传递用途很广,只要两个实体能够借助其他实体生成一个信任链,就可以计算出信任度。
3.3 网络访问授权
一般情况下,应采用基于身份的访问控制技术,或者相应的人机结合的管理方式来进行网络授权。很多情况下,网络实体的标识不会固定不变,比如对于移动环境或者使用动态主机配置协议(Dynamic Host Configuration Protocol,DHCP)技术的局域网,如果基于固定网络标识进行访问控制,则无法快速调整策略以适应动态的网络标识变化,给访问控制策略维护带来极大负担。这时候应该配置基于身份的访问控制策略,通过认证过程跟踪网络访问标识的动态变化,随时自动更新策略,提高策略的安全性和适应性。

图 1 任链关系及基于信任链的信任度
基于动态信任度和风险的访问控制可极大增强访问控制的安全性。零信任思想之所以更安全,是因为其根据信任度做出是否允许访问的决策。因为身份证明并不代表对方是安全的,所以大量系统仅通过身份认证就开放安全策略的方式存在诸多安全漏洞。判断是否开放安全策略的依据应该是对方是否可信,以及是否具有高风险。信任度和风险评估可从第三方获取,也可基于交互行为与预期的对比不断积累形成。
统一权限管控解决全网权限的一致性问题,确保不因权限差异导致访问受阻或产生权限漏洞。统一权限管控的高效架构是树形分级架构,该架构从主干到分支每一级管辖本级策略,并逐级细化,分支仅在主干约束范围下定制详细策略。如图 2 所示,A 分支到 B 分支的主干路径上的策略,只管理整个A 分支能否访问整个 B 分支,但 A 分支入口和 B 分支入口的策略则管理 A 分支的实体 a 能否访问 B 分支的实体 b 的约束。这样的管理架构有利于降低主干策略压力,分支策略虽受限于主干策略的限制,但有一定自主灵活度。
图 2 树形分级的权限管控架构
权限同步一般分为管理流驱动和业务流驱动两类。管理流驱动是指权限在各个策略管控节点之间进行同步,需要占用带宽,且每个策略管控节点需要存储大量的权限(无法事先判断权限是否有用),处理访问时本地已经有策略,处理延迟小。业务流驱动无须各个权限管控节点之间进行同步,访问者访问时向策略控制点提供权限信息,策略控制点验证权限真实性并进行生成策略,需要花费更多时间,处理延迟大。权限同步方案的选择需要根据具体需求进行。
3.4 传输安全保障
因为数据在传输时可能受到窃取、伪造、篡改和重放攻击,所以必须考虑数据传输受到上述攻击时系统是否有安全风险。
常见的数据传输安全保护技术包括互联网安全协 议(Internet Protocol Security,IPSEC)、 安 全 接口层(Secure Socket Layer,SSL)等。IPSEC 由操作系统在网络层为应用程序统一提供基于 IP 的安全性能,对应用程序是透明的。SSL 为应用层提供标准安全接口,需要应用程序进行适配实现。IPSEC和 SSL 属于网络认证和加密,可以部署在路径网关上,也可以部署在端点上。在带宽和处理能力允许的情况下,两种技术可以同时运用,进一步增强数据传输的安全性。
数据安全的传输通道构建可以因地制宜,比如在两个局域网之间的数据传输中,可以在各自网络的出口架设实体网关,对经过网关的数据进行保护,也可以在对外提供服务的数据服务器上部署代理软件,或者在其物理接口处部署实体网关,接管出入服务器的数据流。至于局域网内部流量是否加密不应一概而论,需要综合考虑网络安全需求、环境威胁、安全脆弱性等多方面因素。
3.5 行为安全监控
行为安全监控通过分析网络实体的各种攻击和异常行为的活动,可以及早发现威胁并进行风险控制,对实体信任度进行动态评价。主要方法包括网络攻击抑制、异常行为监测。
网络攻击抑制用于检测并抑制网络中已知攻击,从而对网络进行保护。网络攻击检测方法主要有两种:一种是通过检测流量是否满足某种已知特征来发现攻击,即基于流量特征匹配的攻击检测方法,这种方法对拒绝服务(Deny of Service,DoS)和 分 布 式 拒 绝 服 务(Distributed Deny of Service,DDoS)等流量攻击有效 ;另一种是通过检测网络包内容是否满足某种已知特征来发现攻击,即基于内容特征匹配的攻击检测方法,这种方法对于漏洞利用、恶意代码等攻击有效 。当发现攻击后,可以对攻击进行抑制,但很多情况下,攻击检测设备难以识别正常访问和攻击访问。攻击监测分析人员不断地深入分析攻击特征,对匹配规则进行完善,但总会出现滞后,这正是零日攻击的突破口。在数据中心,攻击检测通常搭配流量清洗工作,当发现攻击后,攻击检测设备联动网络交换设备进行引流清洗,经过清洗后,正常访问流量被导回网络继续转发。
异常行为监测用于进一步检测超越使用习惯的高风险操作,发现各种未知攻击,比如后台木马程序借用用户和终端身份发起越级访问。异常行为监测与纯粹的基于行为的网络攻击检测不同,基于行为的网络攻击检测主要通过事先把攻击模式和特征进行总结成为模型,再通过抓取流量进行分析,检查是否存在匹配相似的网络流量,从而判断是否存在攻击行为;而网络行为安全检测是评估用户行为超出正常习惯是否带来信任度降低的方法。网络行为安全检测通过不断收集正常业务的习惯,进行用户、流量、包长、时刻、间隔等多维的分析和总结归纳,形成正常业务习惯模型。有了正常业务习惯模型后,再对新流量进行分析,评估是否符合正常业务习惯特征,最终给出相应的可信度一维评价。网络行为安全检测使用人工辅助机器学习或深度学习技术,对此,研究者们提出了很多理论方法,如文献 [10] 提出了在静态的身份认证之上,通过对用户行为的实时评估,引入奖惩因子和时间因子,实现动态的信任度评价;文献 [11] 提出了一种基于灰色关联度的信任模型,对节点进行细粒度的信任评估,抑制不诚实的节点的访问行为;文献 [12] 提出了一种基于隐式反馈控制的用户行为度量模型,构建用户的状态和行为基线,并根据基线评估用户的可信度,进而实施动态的信任度评价。
4、零信任网络推广应用的突破点
利用零信任提升网络安全防护能力不能仅依靠优化网络拓扑、提升点位产品的功能,还需要在制度、架构及配套上进行相应的改变与提升。
(1)在管理方面,需要引导相关行业分步细化和落实《信息安全等级保护管理办法》等国家标准和配套的顶层制度,逐步提升全行业中涉及信息网络领域的整体安全管理水平。
(2)在业务融合方面,需要引导相关行业认识到安全能力的提升对业务能力增强的积极意义,以及两者相辅相成的关系,促进其做好充分的思想和物质准备去迎接变革。
(3)在成本方面,建立市场促进机制,推动相关行业通过市场手段共享成果,降低成本,为提升网络能力构建基础。
5、结 语
本文针对零信任网络在现实中推广存在的诸多难题,从体系架构、技术方法、管理制度等多角度进行了多方面的分析。结果表明,充分认识零信任思想本质,结合实际情况,采用契合业务和网络特点的技术方法,各行各业都能够利用零信任思想加强网络防御能力,有效降低网络安全风险。
相关文章:
零信任网络架构与实现技术的研究与思考
目前,国外已有较多有关零信任网络的研究与实践,包括谷歌的 BeyondCorp、BeyondProd,软件定义边界(Software Defined Perimeter,SDP) 及盖特提出的“持续自适应风险与信任评估”等。国内也有不少安全厂商积极…...
Unity 性能优化二:内存问题
目录 策略导致的内存问题 GFX内存 纹理资源 压缩格式 Mipmap 网格资源 Read/Write 顶点数据 骨骼 静态合批 Shader资源 Reserved Memory RenderTexture 动画资源 音频资源 字体资源 粒子系统资源 Mono堆内存 策略导致的内存问题 1. Assetbundle 打包的时候…...
JavaScript与TypeScript的区别
JavaScript和TypeScript是两种不同的编程语言,在一些方面有一些区别。 1. 类型系统:JavaScript是一种动态类型语言,变量的类型是在运行时确定的,并且可以随时更改。而TypeScript引入了静态类型系统,可以在编译时检查代…...
【NetCore】05-使用Autofac增强容器能力
文章目录 1.什么情况下需要引入第三方容器组件2.如何集成Autoface 1.什么情况下需要引入第三方容器组件 基于名称的注入属性注入子容器基于动态代理的AOP 核心扩展点:IServiceProviderFactory 第三方注入容器均使用这个类作为扩展点,将其注入到框架中…...
sparksql参数
Spark参数场景配置 参数类型 参数 参数说明 平台默认值 场景与建议 资源申请 spark.executor.memory Executor Java进程的堆内存大小 即Executor Java进程的Xmx值 2g 默认设置,或者同时等比例增大,最高不超过默认值的3倍,超过的单独拿出来看下 (注意作业是否数据倾斜&…...
STM32读写内部Flash
参考:https://blog.csdn.net/Caramel_biscuit/article/details/131925715 参考:https://blog.csdn.net/qq_36075612/article/details/124087574?spm1001.2014.3001.5502 目录 内存映射内部Flash的构成对内部Flash的写入过程查看工程内存的分布ROM加载空…...
golang文件锁,目录锁,syscall包的使用
先说结论 1. golang提供了syscall包来实现文件/目录的加锁,解锁 2. syscall包属于文件锁,是比较底层的技术,并不能在所有操作系统上完全实现,linux上实现了,windows下面就没有 3. 加锁时调用syscall.Flock(fd&#…...
数据库数据恢复-Syabse数据库存储页底层数据杂乱的数据恢复案例
数据库恢复环境: Sybase版本:SQL Anywhere 8.0。 数据库故障: 数据库所在的设备意外断电后,数据库无法启动。 错误提示: 使用Sybase Central连接后报错: 数据库故障分析: 经过北亚企安数据恢复…...
移远通信推出新一代高算力智能模组SG885G-WF,为工业和消费级IoT应用带来全新性能标杆
2023年7月24日,全球领先的物联网整体解决方案供应商移远通信宣布,正式推出其新一代旗舰级安卓智能模组SG885G-WF。该智能模组具有高达48 TOPS 的AI综合算力、强大性能及丰富的多媒体功能,非常适用于需要高处理能力和多媒体功能的工业和消费者…...
微信小程序开发,小程序类目符合,线上版本无权限申请wx.getLocation接口
我开发 的小程序类目符合wx.getLocation接口的申请标准 但是却还是显示无权限申请 后来研究好久才发现,小程序需要在发布线上版本时提交用户隐私保护指引 如未设置也可以在 设置-服务内容声明-用户隐私保护指引-声明处理用户信息项并补充填写后提交用户隐私协议审核…...
vue2企业级项目(五)
vue2企业级项目(五) 页面适配、主题切换 1、适配 项目下载插件 npm install --save-dev style-resources-loader vue-cli-plugin-style-resources-loader修改vue.config.js部分内容 const path require("path");module.exports {pluginOpt…...
【HTML5】拖放详解及实现案例
文章目录 效果预览代码实现 效果预览 代码实现 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>一颗不甘坠落的流星</title><style>#div1,#div2 {float: left;width: 100px;height: 27px;margin: 10px;paddin…...
Codeforces Round 888 (Div. 3)(视频讲解全部题目)
[TOC](Codeforces Round 888 (Div. 3)(视频讲解全部题目)) Codeforces Round 888 (Div. 3)(A–G)全部题目详解 A Escalator Conversations #include<bits/stdc.h> #define endl \n #define INF 0x3f3f3f3f using namesp…...
MySQL之深入InnoDB存储引擎——物理文件
文章目录 一、参数文件二、日志文件三、表结构定义文件四、InnoDB 存储引擎文件1、表空间文件2、重做日志文件 一、参数文件 当 MySQL 实例启动时,数据库会先去读一个配置参数文件,用来寻找数据库的各种文件所在位置以及指定某些初始化参数。在默认情况…...
Jquery操作html常用函数
1. text() 获取元素的文本内容:$("#element").text(); 设置元素的文本内容:$("#element").text("New Text"); 2. html() 获取元素的 HTML 内容:$("#element").html(); 设置元素的 HTML 内容&am…...
【Lua学习笔记】Lua进阶——Table,迭代器
文章目录 官方唯一指定数据结构--tabletable的一万种用法字典和数组 迭代器ipairs()pairs() 回到Table 在【Lua学习笔记】Lua入门中我们讲到了Lua的一些入门知识点,本文将补充Lua的一些进阶知识 官方唯一指定数据结构–table 在上篇文章的最后,我们指出…...
重庆市北斗新型智慧城市政府项目
技术栈:使用vue2JavaScriptElementUIvuexaxiosmapboxcesium 项目描述:重庆市北斗新型智慧城市政府项目是基于千寻孪界开发的一款智慧城市项目,包含车辆实时位置定位,智能设备的报警,基础设施的部设等等功能 工作内容&a…...
FANUC机器人SRVO-217故障报警原因分析及参考解决办法
FANUC机器人SRVO-217故障报警原因分析及参考解决办法 如下图所示,示教器提示:SRVO-217紧急停止电路板未找到, 查阅手册可以看到以下的报警说明: 故障原因: 通电时未能识别紧急停止电路板或者增设的安全I/O装置。连接有多个安全I/O装置的系统中,在报警信息的最后,会显示发…...
统信UOS安装mysql数据库(mariadb)-统信UOS安装JDK-统信UOS安装nginx(附安装包)
统信UOS离线全套安装教程(手把手教程) 银河麒麟的各种离线全套安装教程: https://blog.csdn.net/ACCPluzhiqi/article/details/131988147 1.统信UOS桌面系统安装mysql(mariadb) 2.统信UOS桌面系统安装JDK 3.统信UOS桌…...
上门小程序开发|上门服务小程序|上门家政小程序开发
随着移动互联网的普及和发展,上门服务成为了许多人生活中的一部分。上门小程序是一种基于小程序平台的应用程序,它提供了上门服务的在线平台,为用户提供了便捷的上门服务体验。下面将介绍一些适合开发上门小程序的商家。 家政服务商家&am…...
基于大模型的 UI 自动化系统
基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...
超短脉冲激光自聚焦效应
前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应,这是一种非线性光学现象,主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场,对材料产生非线性响应,可能…...
调用支付宝接口响应40004 SYSTEM_ERROR问题排查
在对接支付宝API的时候,遇到了一些问题,记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...
边缘计算医疗风险自查APP开发方案
核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...
FastAPI 教程:从入门到实践
FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,支持 Python 3.6。它基于标准 Python 类型提示,易于学习且功能强大。以下是一个完整的 FastAPI 入门教程,涵盖从环境搭建到创建并运行一个简单的…...
【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...
Nginx server_name 配置说明
Nginx 是一个高性能的反向代理和负载均衡服务器,其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机(Virtual Host)。 1. 简介 Nginx 使用 server_name 指令来确定…...
基于Docker Compose部署Java微服务项目
一. 创建根项目 根项目(父项目)主要用于依赖管理 一些需要注意的点: 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件,否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...
3-11单元格区域边界定位(End属性)学习笔记
返回一个Range 对象,只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意:它移动的位置必须是相连的有内容的单元格…...
4. TypeScript 类型推断与类型组合
一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式,自动确定它们的类型。 这一特性减少了显式类型注解的需要,在保持类型安全的同时简化了代码。通过分析上下文和初始值,TypeSc…...
