当前位置: 首页 > news >正文

云原生信息安全:筑牢数字化时代的安全防线

云原生信息安全:筑牢数字化时代的安全防线

一、云原生信息安全概述

 

云原生安全包含两层重要含义。一方面,面向云原生环境的安全,目标是防护云原生环境中的基础设施、编排系统和微服务等系统的安全。在云原生内部,安全机制多以云原生形态呈现,比如服务网格的安全通常使用旁挂串接的安全容器,微服务 API 安全通常使用微 API 网关容器,这些安全容器采用云原生的部署模式,具备云原生的特性。另一方面,具有云原生特征的安全,此类安全机制具有弹性、敏捷、轻量级、可编排等特性。

云原生是理念上的创新,通过容器化、资源编排和微服务重构传统的开发运营体系,极大地加快了业务上线和变更的速度。以 DDoS 为例,在数据中心的安全体系中,抗拒绝服务以往以硬件清洗设备为主,但存在无法应对突发大规模拒绝服务攻击的缺点。而采用云原生机制,安全厂商可通过容器镜像的方式交付容器化的虚拟清洗设备,当出现突发恶意流量时,能通过编排系统在空闲服务器中动态横向扩展,启动足够多的清洗设备以应对处理能力不足的场景。

在云原生架构中,信息安全至关重要。随着公有云和私有云的广泛部署,云计算基础设施成为企业部署新业务的首选,云原生架构也受到越来越多客户的青睐,云原生安全自然越来越受到重视。如果云原生环境的安全无法得到保障,可能会导致企业的业务遭受恶意攻击,数据泄露等严重后果,影响企业的正常运营和发展。因此,构建完善的云原生信息安全体系,是企业在云原生时代保障业务稳定发展的关键。

二、云原生安全的组成部分

(一)容器安全

容器作为云原生应用的核心载体,其安全性至关重要。在容器安全方面,容器镜像的扫描是关键的一环。据市场调查显示,72% 客户的容器规模为 100 个以上,4% 客户的容器规模超 5000 个,随着容器的流行,它也成为黑客攻击的对象。容器镜像安全扫描可以帮助用户及时发现容器镜像中的潜在漏洞和安全隐患,如弱密码、不安全的开放端口、操作系统和软件的漏洞以及潜在的恶意代码等问题。

在容器调度和编排阶段,隔离机制不可或缺。不同类型的工作负载应部署在不同的命名空间中,创建单独的命名空间是组件之间重要的第一层隔离,能使应用安全控制(如网络策略)更容易实施。同时,为了将潜在的破坏影响力限制在最小值,最好在一组专用计算机上运行敏感工作负载,降低通过共享容器运行时或主机的安全性较低的应用程序访问敏感应用程序的风险。

容器运行时的安全保护也不容忽视。可以使用容器运行时保护工具,如对启动的容器镜像进行准入检测,确保拉起的镜像符合基本的安全要求;在容器启动运行后,持续对包括容器逃逸、反弹 shell、异常进程、文件篡改、高危系统调用等在内的入侵行为进行检测与告警,实现运行时的实时检测与防护。还可以结合机器学习、人工智能等大数据分析技术,对容器的行为进行监控、画像,从行为分析角度,对容器内的行为进行异常检测。

(二)编排系统安全

容器编排工具如 Kubernetes 在云原生安全中起着关键作用。节点隔离是重要的安全措施之一,通过使用节点池(在云或本地)和 Kubernetes 命名空间、污点(taints)、容差(tolerations)和其他控件,可以将敏感工作负载与其他负载隔离开来,降低安全风险。

限制和监测容器之间的流量也非常关键。网络策略允许控制进出容器化应用程序的网络访问,对于一些托管的 Kubernetes 提供商,如 Google Kubernetes Engine(GKE),需要选择加入网络策略支持。一旦到位,可以从一些基本的默认网络策略开始,例如默认阻止来自其他命名空间的流量。

对 API 服务器使用第三方认证机制也是一种最佳安全实践。例如,Kubernetes 支持多种请求认证方式,包括 X509 证书认证、Bearer Tokens(JSON Web Tokens)、Service Account、OpenID Connect、Webhooks 等。这些认证方式可以提高 API 服务器的安全性,防止非法用户访问集群。

(三)云原生应用安全

云原生应用安全涵盖多个方面。微服务安全方面,需要注意数据泄露、未授权访问、被拒绝服务等风险。可以采用传统的防护方式或微服务治理框架进行防护,具体措施包含认证服务、授权服务、数据安全防护等。例如,基于 JWT 的认证或基于 Istio 的认证可以确保认证服务的有效性。

无服务安全方面,需要关注无服务计算模式下的安全机制与传统应用的不同,采取相应的防护措施。

服务网格安全方面,通过服务网格形成的点对点连接模式,需要考虑相关的安全机制变化,确保数据安全传输。

零信任体系在云原生应用安全中也非常重要,通过全面有效的身份权限管理以及持续的检测与响应来实现对云原生应用的安全防护。

API 安全方面,应加强对微服务间 API 通信的安全防护,包括 API 的访问控制、身份管理,调用链异常分析等。

同时,宿主机安全等传统安全内容也不能忽视。确保主机安全且配置正确,控制对敏感端口的网络访问,最小化对 Kubernetes 节点的管理访问等措施可以提高宿主机的安全性。

三、云原生安全最佳实践

(一)强化身份与访问管理

在云原生环境中,身份验证和权限控制对于维护网络安全至关重要。应确保身份验证机制的严格性,例如采用强密码策略,密码长度至少为 8 位,包含大小写字母、数字和特殊字符。同时,配置合理的角色和策略,根据不同的用户需求和工作职能,分配相应的权限。例如,开发人员可能只需要对代码仓库和开发环境有特定的访问权限,而运维人员则需要对服务器和容器编排系统有不同的权限。

集成多因素认证能有效降低未经授权的访问风险。多因素认证可以包括密码、手机短信验证码、指纹识别等多种方式。据统计,采用多因素认证可以降低 90% 以上的未经授权访问风险。通过严格的身份验证机制、合理的角色和策略以及多因素认证,可以确保只有合法用户能够访问云原生环境中的资源。

(二)加固容器安全

容器是云原生应用的核心载体,保障容器的安全至关重要。对容器镜像进行定期的扫描,以检测已知漏洞。例如,每周对容器镜像进行一次全面扫描,及时发现并修复潜在的安全问题。可以使用开源的镜像扫描工具,如 Clair,它能够快速检测出容器镜像中的漏洞,并提供详细的报告。

在容器调度和编排阶段采取隔离机制,如 Kubernetes 的网络策略,来限制容器之间的通信。通过设置网络策略,可以确保只有特定的容器能够相互通信,减少攻击面。例如,可以设置只允许数据库容器与应用服务器容器之间的通信,而其他容器之间的通信则被禁止。

容器运行时的安全性也需要通过使用安全上下文、最小化容器权限等方式加以保护。例如,使用非 root 用户运行容器,限制容器对主机资源的访问权限,降低容器被攻击后对主机的影响。

(三)持续监测与应对

云原生环境的动态特性要求安全监控必须是实时的。监控应覆盖云基础设施、容器、服务以及应用程序代码。可以使用 Prometheus 和 Grafana 等工具,实时监控云原生环境中的各种指标,如 CPU 使用率、内存使用率、网络流量等。

检测到异常行为后,应及时应对,包括自动化响应机制和及时的安全事件通知。例如,当检测到异常的网络流量时,自动启动防火墙规则,阻止可疑的流量。同时,及时通知安全团队,进行进一步的调查和处理。

(四)实施 DevSecOps

将安全措施集成至持续集成 / 持续部署(CI/CD)管道中,确保安全是开发生命周期的一部分。在代码提交阶段,使用自动化的测试工具能在代码提交的早期就发现潜在风险。例如,使用 SonarQube 进行代码静态分析,检测代码中的安全漏洞和质量问题。

通过容器镜像扫描、应用程序依赖项检查、Code Signing 等手段来强化安全。在容器镜像构建过程中,进行镜像扫描,确保镜像中没有包含已知的漏洞。同时,对应用程序的依赖项进行检查,确保依赖项的安全性。在代码签名阶段,使用数字签名技术,确保代码的完整性和真实性。

(五)保证数据安全与合规

加密是数据安全的关键部分,应确保数据在传输和静态时均以加密方式存储。在数据传输过程中,使用 SSL/TLS 协议进行加密,确保数据在网络传输过程中的安全性。在数据存储方面,使用磁盘加密技术,对静态数据进行加密存储。

同样,备份是关键数据保护策略。确保备份的完整性、保密性和可用性。定期对数据进行备份,并将备份存储在安全的位置。例如,可以使用云存储服务进行数据备份,并设置严格的访问控制策略,确保只有授权人员能够访问备份数据。

此外,鉴于云服务的全球性质,合规性也极其重要,需遵守所有适用的本地和国际法律法规。例如,对于涉及个人数据的应用,需要遵守 GDPR 等数据保护法规,确保用户数据的安全和隐私。

(六)构筑恢复能力和灾难应对计划

灾难恢复(DR)是确保业务连续性的重要组成部分。实施灾难应对计划包括定期的备份、在多区域部署关键组件以及设计和测试恢复流程。

定期进行数据备份,并将备份存储在不同的地理位置,以防止单一地点的灾难导致数据丢失。例如,每周进行一次全量备份,每天进行一次增量备份,并将备份存储在不同的数据中心。

在多区域部署关键组件,确保在一个区域出现故障时,其他区域的组件能够继续提供服务。例如,可以在不同的云服务提供商的数据中心部署应用程序的副本,以提高系统的可用性。

设计和测试恢复流程,确保在出现灾难时,能够迅速恢复服务。定期进行灾难恢复演练,模拟各种灾难场景,检验恢复流程的有效性。

(七)人员培训与安全文化建设

受训的员工能够识别潜在的安全威胁,并对如何在云原生环境下操作有全面的理解。安全意识培养与持续教育能够有效降低因操作不当引致的风险。

开展定期的安全培训课程,向员工传授云原生安全知识和最佳实践。例如,每月组织一次安全培训,介绍最新的安全威胁和应对措施。同时,通过案例分析和实际操作,让员工更好地理解安全问题的严重性和应对方法。

安全文化的内化能促进团队在日常工作中自然地关注和执行安全最佳实践。建立安全奖励机制,鼓励员工发现和报告安全问题。例如,对于发现重大安全漏洞的员工给予奖励,提高员工的安全意识和积极性。

四、云原生安全面临的挑战

(一)容器安全问题

容器的高弹性和敏捷特性虽然为云原生应用带来了诸多优势,但也带来了一系列安全挑战。一方面,容器共享操作系统内核,若内核存在漏洞,攻击者可能利用这些漏洞进行容器逃逸攻击,获取主机权限,进而攻击容器所在主机甚至其他容器。例如,CVE-2019-5736 漏洞就曾导致 Docker 在特定版本下允许恶意容器覆盖宿主机上的 RunC 二进制文件,使攻击者能够以根用户身份在宿主机上执行任意命令。另一方面,容器镜像的安全性也是一个关键问题。开发者通常基于现有镜像创建新镜像,若现有镜像存在安全缺陷或被攻击者上传恶意镜像,那么基于此创建的镜像也将不安全。此外,开发者使用的软件库代码或软件如果存在漏洞或恶意代码,一旦被制作成镜像,也会影响容器安全。而且,容器镜像在存储和使用过程中可能被篡改,如被植入恶意程序或修改内容,一旦使用被恶意篡改的镜像创建容器,将会影响容器和应用程序的安全。

(二)云原生等保合规问题

等级保护 2.0 标准在编写时主要考虑的是虚拟化场景,未充分考虑容器化、微服务、无服务等云原生场景,因此不能完全保证适用于目前的云原生环境。在云计算安全扩展要求中,访问控制方面需要检测主机账号安全,设置不同账号对不同容器的访问权限,以保证容器在构建、部署、运行时访问控制策略随其迁移。例如,企业可以通过建立完善的账号管理系统,对不同用户的权限进行精细划分,确保只有授权用户能够访问特定容器。对于入侵防范控制点,需要可视化管理,绘制业务拓扑图,对主机入侵进行全方位防范,控制业务流量访问,检测恶意代码感染及蔓延情况。同时,还需要对镜像和快照进行保护,保障容器镜像的完整性、可用性和保密性,防止敏感信息泄露。可以采用加密技术对镜像和快照进行加密存储,确保其安全性。

(三)宿主机安全

宿主机的配置对容器运行安全有着重要影响。如果宿主机安装了有漏洞的软件,可能会导致任意代码执行风险;端口无限制开放可能会导致任意用户访问的风险。为了解决这些问题,需要部署主机安全及微隔离安全平台。例如,通过主机安全(德迅卫士)及微隔离安全平台,可以提供主机资产管理、主机安全加固、风险漏洞识别、防范入侵行为、失陷主机网络隔离等功能,对主机进行全方位的安全防护。这样可以协助用户及时定位已经失陷的主机,响应已知、未知威胁风险,避免内部大面积主机安全事件的发生。

(四)安全与合规洞察的缺乏

云环境相比本地环境在安全与合规性方面存在显著差距。在公有云环境中,用户需要能够查看和控制另一个物理空间的数字资产。随着云原生技术的广泛应用,如无服务器应用等,维护这些数据和访问数据的服务变得日益复杂。为了解决这一问题,需要第一时间自动检测新创建的数字资产并持续跟踪其变更。例如,可以利用云原生安全解决方案中的机器学习技术,构建一个关于正常使用情形的全面配置文件,自动识别偏差并就可疑活动发出警报。同时,保持适当的上下文以改进风险识别也非常重要。通过深入、实时、可以帮助调查和集中管理的可视性,能够进一步帮助企业提高生产效率。

(五)多租户环境下的安全隔离

在云计算环境中,不同用户的数据和应用需要得到有效的隔离。在容器多变的环境中,确保不同用户之间的数据不会相互干扰,防止数据泄露和滥用是云原生安全必须解决的问题。可以采用多种技术手段来实现安全隔离,例如网络策略(Network Policies)、命名空间(Namespaces)、服务网格(Service Mesh)等。通过定义网络策略,可以控制不同 Pod 间的网络通信;利用命名空间可以提供逻辑上的隔离;而服务网格组件则可以提供细粒度的流量管理和安全策略实施。此外,还可以使用多租户存储解决方案,确保每个租户的数据独立且受保护,避免数据混杂或被其他租户访问。

(六)容器周期及成本问题

容器的生命周期很短,对容器的全生命周期防护会带来高成本的投入。对成千上万容器中的进程行为进行检测和分析,会消耗宿主机处理器和内存资源;日志传输会占用网络带宽;行为检测会消耗计算资源。当环境中容器数量巨大时,对应的安全运营成本就会急剧增加。为了降低成本,可以采用一些优化措施。例如,利用自动化工具进行批量检测和分析,提高效率;优化日志传输机制,减少网络带宽占用;采用分布式计算架构,提高行为检测的性能。同时,企业也可以根据自身的业务需求和安全风险评估,合理调整安全防护策略,在保证安全的前提下降低成本。

五、云原生安全的重要性

(一)数据隐私保护

在当今数字化时代,数据已成为企业的核心资产之一。云原生应用通常需要处理大量敏感数据,如用户的个人信息、财务数据、商业机密等。确保这些数据在云中的安全性至关重要。如果数据泄露,不仅会对用户的隐私造成严重影响,还可能导致企业面临法律诉讼、声誉受损等严重后果。

据统计,全球每年因数据泄露造成的经济损失高达数百亿美元。在云原生环境中,数据的存储、传输和处理更加复杂,安全风险也相应增加。例如,容器化应用可能会在不同的节点之间频繁迁移数据,这增加了数据被窃取或篡改的风险。此外,云原生应用通常采用分布式架构,数据可能存储在多个不同的位置,这也给数据隐私保护带来了挑战。

为了保护数据隐私,云原生应用需要采取一系列安全措施。例如,使用加密技术对数据进行加密存储和传输,确保即使数据被窃取,也无法被解密。同时,加强对数据的访问控制,只有授权用户才能访问敏感数据。此外,还可以采用数据脱敏技术,对敏感数据进行处理,使其在不影响业务的前提下,无法被识别。

(二)抵御恶意攻击

云环境因其开放性和复杂性,成为了网络攻击者的主要目标之一。云原生应用的复杂性进一步增加了攻击面,使得攻击者有更多的机会入侵系统。一旦遭受恶意攻击,可能会导致数据泄漏、服务中断等严重安全问题,给企业带来巨大的损失。

近年来,云原生环境中的安全事件不断发生。例如,2019 年,某知名云服务提供商遭受了大规模的 DDoS 攻击,导致其部分客户的服务中断。2020 年,某企业的云原生应用被黑客入侵,大量敏感数据被窃取。这些事件表明,云原生应用面临着严峻的安全挑战,需要采取有效的安全措施来抵御恶意攻击。

为了防范恶意攻击,云原生应用需要建立多层次的安全防护体系。首先,要加强对基础设施的安全防护,如防火墙、入侵检测系统等。其次,要对应用层进行安全加固,如采用安全的编码规范、进行漏洞扫描等。此外,还可以采用零信任安全模型,对所有的访问请求进行严格的身份验证和授权,确保只有合法用户才能访问系统。

(三)满足合规性要求

不同国家和行业都有特定的法规和合规性要求,涉及到数据存储、访问控制、审计等方面。云原生应用作为一种新兴的技术,也需要满足这些合规性要求,否则可能面临法律责任。

例如,在欧盟,通用数据保护条例(GDPR)对企业的数据保护提出了严格的要求。企业必须采取有效的安全措施,确保用户数据的安全和隐私。在美国,健康保险携带和责任法案(HIPAA)对医疗行业的数据保护也有明确的规定。如果云原生应用涉及到这些行业,就必须满足相应的合规性要求。

为了满足合规性要求,云原生应用需要从设计、开发、部署到运维的各个阶段都考虑安全和合规性因素。例如,在设计阶段,要考虑数据的分类和分级,制定相应的安全策略。在开发阶段,要采用安全的编码规范,进行代码审查和漏洞扫描。在部署阶段,要确保基础设施的安全配置符合要求。在运维阶段,要进行定期的安全审计和风险评估,及时发现和解决安全问题。

(四)保障业务连续性

云应用的高可用性是业务连续性的关键因素。如果云应用受到攻击或故障,可能会导致业务中断,对组织造成重大损失。云原生安全可以通过建立完善的安全防护体系,防止攻击和故障的发生,保障业务的连续性。

例如,在金融行业,业务连续性至关重要。如果银行的云原生应用出现故障,可能会导致客户无法进行交易,给银行带来巨大的经济损失和声誉风险。因此,银行需要采取一系列安全措施,如冗余备份、灾难恢复等,确保云原生应用的高可用性和业务连续性。

为了保障业务连续性,云原生应用需要建立全面的灾难恢复计划。首先,要进行定期的数据备份,确保在发生灾难时能够快速恢复数据。其次,要在多区域部署关键组件,提高系统的可用性。此外,还可以采用自动化故障转移技术,在主节点出现故障时,自动切换到备用节点,确保业务的连续性。

六、云原生安全解决方案

云原生安全面临诸多挑战,而 CWPP、CSPM、CASB、CNAPP 等云安全解决方案从不同角度为云原生安全提供了有力保障。

CWPP(云工作负载保护平台):为所有类型的工作负载(包括物理服务器、虚拟机、容器和无服务器工作负载)提供以工作负载为中心的安全保护解决方案。它包含八层控制,如强化、配置和漏洞管理、网络防火墙、可见性和微分段、系统完整性保证、应用程序控制和许可清单、漏洞利用防护和内存保护、服务器工作负载 EDR、行为监控以及威胁检测和响应、具有漏洞屏蔽功能的基于主机的 IPS、反恶意软件扫描等。CWPP 能够在 CI/CD 流程中更早地识别漏洞,更快地检测漏洞利用和活动威胁,以及在响应事件时具有更大的上下文和调查能力。

CSPM(云安全配置管理):从外部保护工作负载,通过评估云平台控制平面的安全且合规的配置,提供一组工具支持合规性监视、与 DevOps 流程的集成、事件响应、风险评估和风险可视化。CSPM 解决方案可识别整个组织整个云资产中的未知风险或过度风险,提供持续的合规性监视、配置漂移预防和安全运营中心调查。组织可以使用 CSPM 产品监视策略,自动检查云环境是否符合法规遵从性和安全性违规,并提供自动步骤进行补救。

CASB(云访问安全代理):本质上是用于云服务的防火墙,提供安全策略实施网关,确保用户的操作得到授权并符合公司的安全策略。CASB 可以识别组织使用的所有云服务,包括影子 IT,并在必要时发出警报。它具有审核和报告工具,可用于法规遵从性,包括云存储的数据。CASB 还提供威胁防护,保护授权用户和应用程序的云服务,并提供反网络钓鱼、帐户接管、URL 过滤、恶意软件检测和沙箱保护等功能。

CNAPP(云原生应用保护平台):由 Gartner 创造的术语,结合了 CWPP 和 CSPM 的功能,可扫描开发中的工作负载和配置并在运行时对其进行保护。保护云原生应用程序涉及到一系列连续的过程,集中于识别、评估、确定优先级并适应云原生应用程序、基础架构和配置中的风险。CNAPP 工具可为 SecOps 和 DevOps 团队提供统一的可见性、响应威胁和安全的功能,以及漏洞和错误配置补救措施的自动化功能。

相关文章:

云原生信息安全:筑牢数字化时代的安全防线

云原生信息安全:筑牢数字化时代的安全防线 一、云原生信息安全概述 云原生安全包含两层重要含义。一方面,面向云原生环境的安全,目标是防护云原生环境中的基础设施、编排系统和微服务等系统的安全。在云原生内部,安全机制多以云原…...

双击就可以打开vue项目,而不用npm run dev

右键点击桌面或其他位置,选择“新建” -> “快捷方式”,在“对象的位置”处直接输入“npm run dev”,然后下一步 自定义一个快捷方式名称 完成后,桌面会创建一个快捷方式,右键快捷方式选择属性,可以看…...

大数据时代的等保测评:数据安全与隐私保护

在大数据时代,等保测评(信息安全等级保护测评)对于数据安全与隐私保护具有至关重要的意义。随着大数据技术的飞速发展,数据已成为企业最宝贵的资产之一,但同时也带来了前所未有的安全挑战。以下是对大数据时代等保测评…...

SpringCloud (1) 服务拆解

1 服务拆解和治理 1.1 服务拆解 微服务的核心就是服务拆分,将传统的大项目拆分为多个微型服务(服务或微服务),实现服务之间"高内聚(微服务职责单一),低耦合(微服务功能相对独立)"的目的 (1) 水平(横向)拆分:先搭出拆分框架,比如【公共服务】(比如:common服务,client…...

STM32F407单片机编程入门(十) IWDG独立看门狗详解及实战含源码

文章目录 一.概要二.独立看门狗介绍1.独立看门狗基本介绍2.独立看门狗功能描述3.独立看门狗复位时间 三.CubeMX配置一个独立看门狗IWDG例程四.CubeMX工程源代码下载五.小结 一.概要 什么是单片机看门狗 看门狗(WDT)是一个定时器,开启看门狗定…...

solana项目counter,测试过程中执行报错记录分享

跟随HackQuest部署counter项目,使用 Solana 官方提供的 playgroud 。这个平台让我们的部署和测试过程变得更加简便高效。 合约代码 lib.rs中复制以下代码 use anchor_lang::prelude::*; use std::ops::DerefMut;declare_id!("CVQCRMyzWNr8MbNhzjbfPu9YVvr97…...

[Unity Demo]重启项目之从零开始制作空洞骑士Hollow Knight第一集:导入素材以及建立并远程连接git仓库

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、导入素材二、使用步骤 1.建立并远程连接git2.github和仓库连接总结 前言 好久没来CSDN看看,突然看到前两年自己写的文章从零开始制作空洞骑士只…...

单链表(c语言简单实现)

单链表是一种常见的数据结构 一、结构特点 1. 由一系列节点组成,每个节点包含数据域和指向下一个节点的指针域。 2. 最后一个节点的指针域为 null,表示链表的结尾。 二、主要操作 1. 插入节点:可以在链表的头部、尾部或特定位置插入新节点。…...

三菱变频器Modbus-RTU 通讯规格

能够从变频器的 RS-485 端子使用 Modbus-RTU 通讯协议,进行通讯运行和参数设定。 NOTE: 1、使用 Modbus-RTU 通讯协议时,请设定Pr.549 协议选择 “1” 2、从主机按地址0(站号0)进行hodbus-RTU通讯时,为广播通讯,变频器不向主机发…...

PyQt5库学习之QFileDialog.getOpenFileName函数

PyQt5库学习之QFileDialog.getOpenFileName函数 一、简介 QFileDialog.getOpenFileName 是 PyQt5 中的一个函数,它提供了一个标准的文件选择对话框,允许用户选择一个文件。这个函数是 QFileDialog 类的一部分,通常用于打开文件时让用户选择文…...

如何理解变量提升和函数提升

在 JavaScript 中,变量提升和函数提升是指在代码执行之前,变量和函数声明会被提升到其所在作用域的顶部。这意味着你可以在声明之前使用它们,但它们的行为有所不同。 变量提升 变量提升是指变量声明(使用 var)会被提…...

monorepo基础搭建教程(从0到1 pnpm+monorepo+vue)

monorepo 前言1、搭建空项目并配置pnpm-workspace.yamlpnpm initpnpm-workspace.yaml 2.配置packages测试文件配置相关内容 3.引入packages内容至公共package.json4.创建测试项目,并引入公共包结语 前言 有个项目要引入一个第三方库,但是第三方库下载下…...

使用Docker Compose一键部署

文章目录 使用Docker Compose一键部署一、引言二、环境准备1、安装Docker和Docker Compose1.1、安装Docker1.2、安装Docker Compose 2、验证安装 三、编写Docker Compose文件1、创建目录结构2、编写Dockerfile3、编写docker-compose.yml 四、部署项目1、构建镜像2、启动服务3、…...

【GVINS】

【GVINS】 1. GVINS的系统特点2. GVINS的融合导航存在问题3. GVINS的信号的组成4. GVINS的信号的组成 原理推导知乎 1. GVINS的系统特点 概述了一种名为GVINS的系统,它旨在解决视觉-惯性里程计(VIO)在长时间运行时出现的漂移问题。GVINS通过…...

Linux 给 vmlinux 添加符号

文章目录 前言一、centos7 给 vmlinux 添加符号二、ubuntu22.04 给 vmlinux 添加符号 前言 使用内核源码下的script文件:scripts/extract-vmlinux 可以从/boot/vmlinuz 提取出来 内核镜像文件vmlinux: # ./extract-vmlinux vmlinuz-3.10.0-693.el7.x86…...

【mac】MacOS无法打开XXX文件,因为无法验证开发者的问题解决

博主介绍: 大家好,我是想成为Super的Yuperman,互联网宇宙厂经验,17年医疗健康行业的码拉松奔跑者,曾担任技术专家、架构师、研发总监负责和主导多个应用架构。 技术范围: 目前专注java体系,以及…...

Docker 无法拉取雷池 WAF 的解决方法

引言: 近日,许多用户反映在使用 Docker 命令拉取雷池 WAF 镜像时遇到了困难,主要表现为连接超时错误。本文将为大家提供解决此问题的有效方法。 问题描述: 当尝试通过 Docker 命令拉取雷池 WAF 镜像时,部分用户遇到…...

进制转换,原码,反码,补码,二进制位运算及应用

进制转换 2B(0--1),8O(0--7),10D,16H(0——9,A——F) 8位二进制数,左边高位,右边低位 2,8,16 -> 10进制整数,小数 整数:从后往…...

node.js居家养老服务系统—计算机毕业设计源码35247

目 录 摘要 1 绪论 1.1选题的背景 1.2研究的意义 1.3国内外居家养老信息化管理现状分析 1.4 express框架介绍 1.5node.js功能模块 1.6论文结构与章节安排 2 居家养老服务系统系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1数据增加流程 2.2.2数据修改流程 2.2.…...

OpenHarmony(鸿蒙南向开发)——小型系统芯片移植指南(二)

往期知识点记录: 鸿蒙(HarmonyOS)应用层开发(北向)知识点汇总 鸿蒙(OpenHarmony)南向开发保姆级知识点汇总~ OpenHarmony(鸿蒙南向开发)——轻量系统芯片移植指南(一) Op…...

微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】

微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...

Linux简单的操作

ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...

精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南

精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南 在数字化营销时代,邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天,我们将深入解析邮件打开率、网站可用性、页面参与时…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码

目录 一、👨‍🎓网站题目 二、✍️网站描述 三、📚网站介绍 四、🌐网站效果 五、🪓 代码实现 🧱HTML 六、🥇 如何让学习不再盲目 七、🎁更多干货 一、👨‍&#x1f…...

MySQL JOIN 表过多的优化思路

当 MySQL 查询涉及大量表 JOIN 时,性能会显著下降。以下是优化思路和简易实现方法: 一、核心优化思路 减少 JOIN 数量 数据冗余:添加必要的冗余字段(如订单表直接存储用户名)合并表:将频繁关联的小表合并成…...

【Linux】Linux安装并配置RabbitMQ

目录 1. 安装 Erlang 2. 安装 RabbitMQ 2.1.添加 RabbitMQ 仓库 2.2.安装 RabbitMQ 3.配置 3.1.启动和管理服务 4. 访问管理界面 5.安装问题 6.修改密码 7.修改端口 7.1.找到文件 7.2.修改文件 1. 安装 Erlang 由于 RabbitMQ 是用 Erlang 编写的,需要先安…...

一些实用的chrome扩展0x01

简介 浏览器扩展程序有助于自动化任务、查找隐藏的漏洞、隐藏自身痕迹。以下列出了一些必备扩展程序,无论是测试应用程序、搜寻漏洞还是收集情报,它们都能提升工作流程。 FoxyProxy 代理管理工具,此扩展简化了使用代理(如 Burp…...

在RK3588上搭建ROS1环境:创建节点与数据可视化实战指南

在RK3588上搭建ROS1环境:创建节点与数据可视化实战指南 背景介绍完整操作步骤1. 创建Docker容器环境2. 验证GUI显示功能3. 安装ROS Noetic4. 配置环境变量5. 创建ROS节点(小球运动模拟)6. 配置RVIZ默认视图7. 创建启动脚本8. 运行可视化系统效果展示与交互技术解析ROS节点通…...

MySQL体系架构解析(三):MySQL目录与启动配置全解析

MySQL中的目录和文件 bin目录 在 MySQL 的安装目录下有一个特别重要的 bin 目录,这个目录下存放着许多可执行文件。与其他系统的可执行文件类似,这些可执行文件都是与服务器和客户端程序相关的。 启动MySQL服务器程序 在 UNIX 系统中,用…...

【汇编逆向系列】六、函数调用包含多个参数之多个整型-参数压栈顺序,rcx,rdx,r8,r9寄存器

从本章节开始,进入到函数有多个参数的情况,前面几个章节中介绍了整型和浮点型使用了不同的寄存器在进行函数传参,ECX是整型的第一个参数的寄存器,那么多个参数的情况下函数如何传参,下面展开介绍参数为整型时候的几种情…...