【博士每天一篇文献-综述】Threats, Attacks, and Defenses in Machine Unlearning A Survey
1 介绍
年份:2024
作者:刘子耀,陈晨,南洋理工大学
期刊: 未发表
引用量:6
Liu Z, Ye H, Chen C, et al. Threats, attacks, and defenses in machine unlearning: A survey[J]. arXiv preprint arXiv:2403.13682, 2024.
本文提出了一个统一的机器遗忘工作流程,并基于此框架和威胁模型,提出了机器遗忘系统中威胁、攻击和防御的新分类法。对当前机器非遗忘中的威胁、攻击和防御进行了详细分析,并阐述了遗忘方法、攻击和防御策略之间的复杂关系。
此外,讨论了机器遗忘系统中存在的漏洞,如信息泄露和恶意遗忘请求,这些导致重大的安全和隐私问题。遗忘方法和普遍的攻击在MU系统中扮演着不同的角色。例如,遗忘可以作为从后门攻击中恢复模型的机制,而后门攻击本身可以作为遗忘有效性的评估指标。这强调了这些机制在维护系统功能和安全方面的复杂关系和相互作用。
2 创新点
- 综合性调查:提供了对机器遗忘(MU)领域的综合性调查,尤其集中在MU系统中的安全威胁、攻击手段和防御策略上。
- 新的分类法:基于对现有研究的分析,提出了一个新的威胁、攻击和防御的分类法,这有助于更好地理解MU系统中的复杂关系和相互作用。
- 统一工作流程:提出了一个统一的机器遗忘工作流程,这有助于标准化MU系统的分析和讨论。
- 深入分析:对MU系统中的威胁、攻击和防御进行了深入的分析,包括信息泄露、恶意遗忘请求、以及其他潜在的漏洞,提供了对这些威胁的详细讨论和相应的防御策略。
- 防御机制的探讨:不仅讨论了如何防御攻击,还探讨了遗忘本身如何作为一种防御机制,例如通过遗忘来恢复被后门攻击影响的模型,以及实现与人类价值观和伦理标准一致的价值对齐。
- 攻击作为评估工具:创新性地提出使用攻击手段来评估遗忘的有效性,例如通过隐私泄露审计、模型鲁棒性评估和遗忘证明来加深对遗忘系统的理解并提高其有效性。
3 相关研究
3.1 相关概念
(1)Machine Unlearning Systems(机器遗忘系统)
- 系统结构:机器遗忘系统由服务器和多个参与者组成,服务器在系统中扮演关键角色,包括模型开发和基于输入提供服务。
- 角色分类:参与者分为数据贡献者(提供训练数据)、请求用户(提交遗忘请求)和可访问用户(使用服务进行推断)。
- 工作流程:机器遗忘系统的工作流程分为三个阶段:训练阶段(使用数据贡献者提供的数据训练ML模型)、遗忘阶段(服务器响应请求用户的遗忘请求,从模型知识库中移除特定数据点的影响)和后遗忘阶段(基于遗忘模型提供推断服务)。
- MLaaS集成:在机器学习即服务(MLaaS)的背景下,服务器同时接收遗忘和推断请求,这增加了管理不同类型请求的复杂性。
(2)Threats, Attacks, and Defenses in MU Systems(机器遗忘系统中的威胁、攻击和防御)
- 系统脆弱性:机器遗忘系统在各个阶段都存在脆弱性,受到攻击者的威胁。
- 信息泄露:在训练阶段,数据贡献者恶意构造训练数据,为后续攻击做准备;在遗忘阶段,请求用户提交恶意遗忘请求;在后遗忘阶段,参与者利用对训练和遗忘模型的双重访问来揭露额外的信息泄露。
- 攻击手段:基于上述威胁,攻击者可以执行各种攻击,例如数据投毒、利用模型推断服务来提取未遗忘数据的额外信息等。
- 防御策略:探讨了针对机器遗忘系统攻击的潜在防御方法,如进行成员检查以确保请求遗忘的数据真实存在于训练数据集中,实施差分隐私来防止成员推断攻击,以及通过模型监控在遗忘阶段有效识别潜在问题。
- 遗忘的双重角色:遗忘不仅可以作为从后门攻击中恢复模型的机制,而且后门攻击本身可以作为评估遗忘有效性的指标,揭示了这些元素在维护系统安全性和功能性方面的复杂相互作用。
3.2 机器遗忘中的威胁、攻击和防御的分类
(1)威胁(Threats):指的是危害机器遗忘系统的安全和隐私的潜在风险。这些威胁源自系统内部的脆弱性或外部的恶意行为。威胁包括信息泄露(Information Leakage)和恶意遗忘(Malicious Unlearning)。
- 信息泄露(Information Leakage):未遗忘模型和遗忘模型之间的差异被用来推断敏感信息。
- 模型差异导致的泄露(Leakage from Model Discrepancy): 这种方式的信息泄露来自于训练模型和被遗忘模型之间的差异。攻击者可以利用这些差异来获取关于被遗忘数据的额外信息。具体手段可能包括:
- 成员资格推断攻击(Membership Inference Attacks):攻击者尝试确定特定的数据点是否属于被遗忘的数据,通过分析模型对数据点的响应差异。
- 数据重建攻击(Data Reconstruction Attacks):攻击者尝试根据模型的输出重建被遗忘的数据点。
- 恶意请求(Malicious Requests):恶意用户提交请求以破坏模型的安全性或性能。
- 知识依赖性导致的泄露(Leakage from Knowledge Dependency): 这种方式的信息泄露来自于模型与外部知识源之间的自然关系。这可能包括:
- 自适应请求(Adaptive Requests):连续的遗忘请求可能揭示关于其他数据点的信息,攻击者可以通过一系列请求来收集足够的知识,以确定特定数据的成员资格。
- 缓存的计算(Cached Computations):遗忘算法可能缓存部分计算以加快处理速度,这可能无意中泄露了跨多个版本中本应被删除的数据的信息。
- 模型差异导致的泄露(Leakage from Model Discrepancy): 这种方式的信息泄露来自于训练模型和被遗忘模型之间的差异。攻击者可以利用这些差异来获取关于被遗忘数据的额外信息。具体手段可能包括:
- 恶意遗忘(Malicious Unlearning)
- 直接遗忘攻击(Direct Unlearning Attacks): 这类攻击仅在遗忘阶段发生,不需要在训练阶段操纵训练数据。攻击者可能利用模型的推断服务来获取关于训练模型的知识,并使用对抗性扰动等方法来制定恶意遗忘请求。直接遗忘攻击可以是无目标的,旨在降低模型在遗忘后的整体性能,也可以是有目标的,目的是使遗忘模型对具有预定义特征的目标输入进行错误分类。
- 预条件遗忘攻击(Preconditioned Unlearning Attacks): 与直接遗忘攻击不同,预条件遗忘攻击采取更策略性的方法,在训练阶段操纵训练数据。这些攻击通常设计为执行更复杂和隐蔽的有目标攻击。预条件遗忘攻击通常通过以下步骤执行:
- 攻击者在干净数据集中插入有毒数据(Poisoned Data)和缓解数据(Mitigation Data),形成一个训练数据集。
- 服务器基于这个数据集训练机器学习模型并返回模型。
- 攻击者提交请求以遗忘缓解数据。
- 服务器执行遗忘过程并返回一个遗忘模型,该模型实际上对应于仅在有毒数据和干净数据上训练的模型。通过这种方式,遗忘过程中移除缓解数据后,模型就会对训练阶段插入的有毒数据变得脆弱。
- 其他漏洞(Other Vulnerabilities)
- “减速攻击”:一种旨在减慢遗忘过程的投毒攻击,通过策略性地在训练数据中制作有毒数据,最小化通过近似更新处理的遗忘请求的间隔或数量。
- 公平性影响:讨论了遗忘算法本身可能在特定领域应用中引入的副作用,例如在大型语言模型中影响公平性。
(2)攻击(Attacks):基于上述威胁,攻击者执行的具体行动。这些攻击发生在机器遗忘的任何阶段,包括:
- 训练阶段攻击(Training Phase Attacks):如数据投毒,攻击者在训练数据中注入恶意数据。
- 遗忘阶段攻击(Unlearning Phase Attacks):如提交设计精巧的请求以移除对模型性能至关重要的数据点。
- 后遗忘阶段攻击(Post-Unlearning Phase Attacks):利用对模型的双重访问来提取额外信息或发起更复杂的攻击。
(3)防御(Defenses):为了保护机器遗忘系统免受威胁和攻击,研究者和实践者开发了多种防御机制。这些防御包括:
- 预遗忘阶段(Pre-unlearning Stage):在遗忘过程开始之前检测恶意请求或制定遗忘规则。
- 遗忘阶段(In-unlearning Stage):监控模型变化,如果检测到异常则停止遗忘过程。
- 后遗忘阶段(Post-unlearning Stage):保护遗忘后模型的信息泄露,或恢复模型到攻击前的状态。
3.3 威胁模型
(1)攻击角色(Attack Roles)
数据贡献者 (R1):负责提供构建训练数据集的个体。
请求用户 (R2):有能力提交遗忘请求的个体。
可访问用户 (R3):能够使用模型服务进行推断的个体。攻击者在遗忘系统中可能承担多种攻击角色,例如请求用户通常也有权访问模型服务进行推断。
(2)攻击目标(Attack Goals)
无目标攻击 (G1):意图使遗忘模型产生错误预测,而不针对特定结果。
有目标攻击 (G2):旨在诱导遗忘模型产生错误预测或以特定预定方式行为。
隐私泄露 (G3):试图提取关于请求遗忘的额外信息。
其他 (G4):可能包括增加遗忘过程的计算成本、影响遗忘模型的公平性和效用等。
(3)对抗性知识(Adversarial Knowledge)
白盒 (K1):攻击者对模型架构、参数、训练和遗忘算法以及数据有全面了解。
灰盒 (K2):攻击者可以访问模型架构、参数、训练和遗忘算法或数据的部分元素,但并非全部。
黑盒 (K3):攻击者对模型一无所知,包括其架构和参数,无法访问或修改模型的训练过程。
(4)攻击阶段(Attack Phases)
训练阶段 (P1):作为数据贡献者的攻击者可能在训练阶段操纵或构造训练数据集,为后续阶段的攻击做准备。
遗忘阶段 (P2):攻击者可能提交恶意的遗忘请求来发起攻击,这些请求可能或可能不基于训练阶段的准备。
后遗忘阶段 (P3):攻击者可能利用遗忘模型以及在前几个阶段获得的信息发起攻击。
3.4 通过机器遗忘来加强防御机制
(1)模型恢复(Model Recovery)
模型恢复是指在检测到数据投毒攻击后,从受损的机器学习模型中恢复一个准确的模型的过程。机器遗忘在这一过程中扮演了关键角色,它允许针对性地移除被识别出的有毒数据:
- 后门移除:通过反转触发器来重新训练受感染的机器学习模型,或者通过梯度上升法来识别触发模式并执行遗忘。
- 模型剪枝:在执行遗忘之前先对模型进行剪枝,以简化模型并可能提高恢复过程的效率。
- 基于访问受限数据的恢复:即使只有有限的访问权限,也可以通过遗忘来恢复模型,这在实际应用中可能非常有用。
(2)价值对齐(Value Alignment)
价值对齐强调了将机器学习模型与人类价值观和伦理标准对齐的重要性,以确保AI系统的安全性和合规性:
- 属性遗忘:用于删除推荐系统中的敏感属性,以符合隐私合规性。
- 大型语言模型中的不当行为移除:使用相应的检测方法和遗忘技术来删除不当或非法的内容,包括质量差、受版权保护或有害的内容。
- 识别有害内容的数据集:通过遗忘每个数据集并评估遗忘后模型生成有害内容的影响,来识别对生成有害内容最有影响的训练数据集。
3.5 通过攻击手段来评估机器遗忘系统的有效性
(1)隐私泄露审计(Audit of Privacy Leakage)
- 目的:评估机器遗忘系统在遗忘过程中可能产生的隐私泄露。
- 方法:使用攻击手段,如推断攻击,来检测训练模型和遗忘模型之间的差异,或利用系统内部的漏洞来提取信息。
- 指标:采用诸如区域下曲线(AUC)和攻击成功率(ASR)等指标来量化隐私攻击的有效性,从而指示隐私泄露的程度。
(2)模型鲁棒性评估(Assessment of Model Robustness)
- 目的:通过恶意遗忘评估遗忘模型的鲁棒性,类似于对抗性攻击中使用的原则。
- 方法:提交被扰动的数据点进行遗忘,以改变分类器的决策边界,从而评估模型对边界附近数据点的敏感性和对挑战模型预测能力的点的影响。
- 技术:例如,在大型语言模型(LLMs)中,攻击者可能插入对抗性嵌入到提示的嵌入中,以提取模型中本应被遗忘的知识。
(3)遗忘证明(Proof of Unlearning)
- 目的:使用攻击手段来证明遗忘过程的有效性,即验证数据是否已被有效地从模型中移除。
- 方法:如果遗忘后的数据在模型中没有显示出成员资格,或者遗忘数据中的后门无法被检测到,则可以认为遗忘数据已以高概率从模型中有效移除。
- 应用:研究中使用了标准的推断攻击和后门攻击的变体,或其他对抗性攻击来检测遗忘程序的不足。
3.6 机器遗忘领域当前面临的挑战
(1)对抗恶意遗忘的防御( Defenses against Malicious Unlearning)
- 挑战:恶意遗忘请求可能对遗忘模型产生负面影响,包括降低模型性能或引入后门。
- 检测困难:直接恶意遗忘请求较易检测,但预条件恶意遗忘请求由于其数据实际属于训练数据集,因此难以识别。
- 未来方向:需要开发更强大的检测机制,以识别这些微妙且复杂的遗忘请求,保护机器遗忘系统的完整性。
(2)联邦遗忘(Federated Unlearning)
- 挑战:联邦学习的特性给机器遗忘带来了特定挑战,如通过聚合实现的知识扩散和为保护用户数据隐私而进行的数据隔离。
- 研究空白:联邦遗忘中的分布式攻击可能特别隐蔽且难以检测,这一领域目前研究较少,存在明显缺口。
- 未来方向:研究如何在不违反联邦学习隐私原则的前提下,开发符合RTBF合规要求的遗忘机制。
(3)隐私保护(Privacy Preservation)
- 挑战:现有机器遗忘系统假设待删除的数据对负责遗忘过程的服务器是可访问的,但在MLaaS环境中,模型开发者和服务提供商可能是不同的实体,这引发了隐私保护的问题。
- 技术应用:可以使用同态加密、安全多方计算或差分隐私等隐私增强技术(PETs)来促进隐私保护的机器学习。
- 未来方向:探索这些技术在机器遗忘中的权衡,特别是隐私保护、遗忘效率和模型性能之间的折衷。
(4)大型模型的遗忘(Unlearning over Large Models)
- 挑战:在大型模型上进行遗忘的研究面临效率低下、验证遗忘效果困难、大型模型的非解释性等问题。
- 研究需求:需要针对大型模型遗忘系统特有的威胁、攻击和防御进行更深入的研究。
- 未来方向:开发创新解决方案以提高大型模型遗忘的效率,并探索有效的遗忘验证方法。
4 思考
(1)遗忘方法、攻击和防御策略之间的关系是什么?
- 遗忘方法作为恢复机制:遗忘方法可以用于从后门攻击中恢复模型。通过有效地从模型中移除特定数据点,可以减少后门攻击的影响。
- 攻击作为评估指标:后门攻击和其他攻击手段可以作为评估遗忘方法有效性的指标。通过观察攻击在遗忘过程中的效果,可以评估遗忘方法的健壮性。
- 攻击对遗忘方法的挑战:恶意请求和信息泄露攻击对遗忘方法提出了挑战,要求遗忘方法不仅要有效地删除数据,还要抵御可能的攻击,确保数据的安全性和隐私性。
- 防御策略与遗忘方法的结合:防御策略可以与遗忘方法结合使用,以提高系统的安全性。例如,通过实施差分隐私或模型监控,可以在执行遗忘操作时保护模型不受攻击。
- 防御策略对攻击的缓解:防御策略如成员检查、数据扰动和访问控制等,旨在减轻由攻击引起的风险,包括恶意非学习和信息泄露。
- 攻击对防御策略的适应:攻击者可能会适应现有的防御策略,开发新的攻击手段来绕过或破坏防御。这要求防御策略不断更新以应对新的威胁。
- 遗忘方法的双重角色:遗忘方法既可以作为攻击者的工具,也可以作为防御者的手段。攻击者可能利用遗忘来破坏模型的完整性,而防御者可以使用遗忘来净化模型,消除不良影响。
- 评估工具的反馈循环:使用攻击作为评估工具可以提供对遗忘方法的反馈,帮助改进和加强防御策略,形成一个动态的反馈循环。
graph TDA[遗忘方法] -->|用于恢复| B(模型恢复)A -->|评估指标| C(攻击评估)A -->|面临挑战| D(恶意请求)A -->|结合使用| E(防御策略结合)A -->|双重角色| F(攻击者工具/防御者手段)G[攻击] -->|评估遗忘| AG -->|适应防御| H(防御策略的适应)G -->|破坏模型| I[系统完整性]J[防御策略] -->|减轻风险| DJ -->|更新应对| HJ -->|保护模型| IK[评估工具] -->|提供反馈| AK -->|评估效果| CK -->|检测攻击| H
graph TDA[遗忘方法] -->|用于恢复| B(模型恢复)A -->|评估指标| C(攻击评估)A -->|防御结合| D[防御策略]D -->|抵御| E[攻击]E -->|适应| DE -->|挑战遗忘| AA -->|反馈| CC -->|改进| D
相关文章:

【博士每天一篇文献-综述】Threats, Attacks, and Defenses in Machine Unlearning A Survey
1 介绍 年份:2024 作者:刘子耀,陈晨,南洋理工大学 期刊: 未发表 引用量:6 Liu Z, Ye H, Chen C, et al. Threats, attacks, and defenses in machine unlearning: A survey[J]. arXiv preprint arXiv:2403…...
Python数据分析实战,运输车辆驾驶行为分析,案例教程编程实例课程详解
引言 运输车辆的安全驾驶行为分析是确保道路安全、提高运输效率的重要环节。随着数据采集技术的发展和数据分析工具的普及,利用Python进行数据分析已成为这一领域的重要工具。本文将详细介绍如何使用Python进行运输车辆驾驶行为分析,涵盖数据采集、数据预处理、数据分析及结果…...
网络安全法对等级保护中的权利和义务有何规范?
在数字时代的交响乐章中,网络安全法与等级保护共同编织了一曲关于权利与义务的和谐旋律。《中华人民共和国网络安全法》作为我国网络安全领域的基本法,对等级保护提出了明确的规范,旨在构建一个安全、有序的网络空间。本文将深入解析网络安全…...

苹果清理软件:让你的设备焕然一新
随着时间的推移,无论是Mac电脑还是iOS设备,都可能会因为积累的垃圾文件、缓存、未使用的应用和其他冗余数据而开始表现出性能下降。这不仅会占用宝贵的存储空间,还可能影响设备的响应速度和电池寿命。幸运的是,有多种苹果清理软件…...
vue前端通过sessionStorage缓存字典
正常来说,一个vue项目前端需要用到的一些翻译字典对象保存方式一般有多重, 新建js文件方式保存通过vuex方式保存通过sessionStorage保存通过localStorage保存 正常以上几点的保存方式是够用了。 但是,当有字典不能以文件方式保存并且字典量…...
React Redux使用@reduxjs/toolkit的hooks
关于redux的学习过程需要几个官网,有redux官网,React Redux官网和Redux Toolkit的官网。 其中后者的中文没有找到,不过其中的使用在React Redux官网的快速入门中有介绍。 现在一般不使用connect借接口了。 对于借助Redux Toolkit的React Redu…...

Rejetto HFS 服务器存在严重漏洞受到攻击
AhnLab 报告称 ,黑客正在针对旧版本的 Rejetto HTTP 文件服务器 (HFS) 注入恶意软件和加密货币挖矿程序。 然而,由于存在错误, Rejetto 警告用户不要使用 2.3 至 2.4 版本。 2.3m 版本在个人、小型团队、教育机构和测试网络文件共享的开发…...
Electron开发 - 如何在主进程Main中让node-fetch使用系统代理
背景 开发过程中,用户设置的系统代理是不同的,比如公司内的服务器,所以就要动态地使用系统代理来访问,但是主进程默认为控制台级别的请求,不走系统代理,除非你指定系统代理配置,这个就就有了这…...

vue2 webpack使用optimization.splitChunks分包,实现按需引入,进行首屏加载优化
optimization.splitChunks的具体功能和配置信息可以去网上自行查阅。 这边简单讲一下他的使用场景、作用、如何使用: 1、没用使用splitChunks进行分包之前,所有模块都揉在一个文件里,那么当这个文件足够大、网速又一般的时候,首…...
深入理解 Docker 容器技术
一、引言 在当今的云计算和软件开发领域,Docker 容器技术已经成为了一项不可或缺的工具。它极大地改变了应用程序的部署和运行方式,为开发者和运维人员带来了诸多便利。 二、Docker 容器是什么? Docker 容器是一种轻量级、可移植、自包含的…...

redis并发、穿透、雪崩
Redis如何实现高并发 首先是单线程模型:redis采用单线程可以避免多线程下切换和竞争的开销,提高cpu的利用率,如果是多核cpu,可以部署多个redis实例。基于内存的数据存储:redis将数据存储在内存中,相比于硬…...
【架构设计】-- ACK 机制
1、ACK 机制的定义 ACK(全称:acknowledgement) 机制是一种确认机制,起源于TCP报文到达确认(ACK)机制(参考:TCP报文到达确认(ACK)机制_tcp接收方在收到一个报文…...

这些网络安全知识,请务必牢记!
#网络安全# 随着“互联网”时代的到来,人们的生活变得更加便利,但电信诈骗、信息泄露、恶意软件等也随之而来。面对网络这把双刃剑,如何绷紧思想“安全弦”,正确安全使用网络呢?今天,让我们跟随泰顺网信IP…...
学习笔记——交通安全分析11
目录 前言 当天学习笔记整理 4信控交叉口交通安全分析 结束语 前言 #随着上一轮SPSS学习完成之后,本人又开始了新教材《交通安全分析》的学习 #整理过程不易,喜欢UP就点个免费的关注趴 #本期内容接上一期10笔记 #最近确实太懒了,接受…...
Python 3 编程第一步
Python 3 编程第一步 Python 是一种广泛使用的高级编程语言,以其简洁明了的语法和强大的功能而闻名。Python 3 是该语言的最新版本,它在许多方面对早期的 Python 2 进行了改进和更新。本篇文章将作为 Python 3 编程的入门指南,带你迈出编程的第一步。 Python 3 的安装 首…...

【eMTC】eMTC 窄带以及带宽的关系
1 概述 eMTC 传输进行通信时,一般采用1.4M带宽,在和LTE小区联合部署时,需要将LTE的带宽分割成以1.4M带宽为粒度的单位,这个单位在协议上叫做窄带。 2 窄带定义 3 参考文献 36.211...

【MySQL】mysqldumpslow工具 -- 总结慢查询日志文件
1. 作用 在平时使用MySQL数据库时,经常进行查询操作,有些查询语句执行的时间非常长,当执行时间超过设定的阈值时,我们称这个查询为慢查询,慢查询的相关信息通常需要用日志记录下来称为慢查询日志,mysqldum…...

【mindspore进阶】02-ResNet50迁移学习
Mindspore 应用(2)ResNet50迁移学习 在实际应用场景中,由于训练数据集不足,所以很少有人会从头开始训练整个网络。普遍的做法是,在一个非常大的基础数据集上训练得到一个预训练模型,然后使用该模型来初始化…...
智能决策的艺术:揭秘决策树的奇妙原理与实战应用
引言 决策树(Decision Tree)是一种常用的监督学习算法,适用于分类和回归任务。它通过学习数据中的规则生成树状模型,从而做出预测决策。决策树因其易于理解和解释、无需大量数据预处理等优点,广泛应用于各种机器学习任…...

基于AOP的数据字典实现:实现前端下拉框的可配置更新
作者:后端小肥肠 创作不易,未经允许严禁转载。 目录 1. 前言 2. 数据字典 2.1. 数据字典简介 2.2. 数据字典如何管理各模块的下拉框 3. 数据字典核心内容解读 3.1. 表结构 3.2. 核心代码 3.2.1. 根据实体类名称获取下属数据字典 3.2.2. 数据字…...
Linux链表操作全解析
Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表?1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...

无法与IP建立连接,未能下载VSCode服务器
如题,在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈,发现是VSCode版本自动更新惹的祸!!! 在VSCode的帮助->关于这里发现前几天VSCode自动更新了,我的版本号变成了1.100.3 才导致了远程连接出…...
Objective-C常用命名规范总结
【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...
基于Uniapp开发HarmonyOS 5.0旅游应用技术实践
一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架,支持"一次开发,多端部署",可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务,为旅游应用带来…...

React19源码系列之 事件插件系统
事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...

MySQL 8.0 OCP 英文题库解析(十三)
Oracle 为庆祝 MySQL 30 周年,截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始,将英文题库免费公布出来,并进行解析,帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...
大数据学习(132)-HIve数据分析
🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言Ǵ…...
Typeerror: cannot read properties of undefined (reading ‘XXX‘)
最近需要在离线机器上运行软件,所以得把软件用docker打包起来,大部分功能都没问题,出了一个奇怪的事情。同样的代码,在本机上用vscode可以运行起来,但是打包之后在docker里出现了问题。使用的是dialog组件,…...
【Java学习笔记】BigInteger 和 BigDecimal 类
BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点:传参类型必须是类对象 一、BigInteger 1. 作用:适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...

HarmonyOS运动开发:如何用mpchart绘制运动配速图表
##鸿蒙核心技术##运动开发##Sensor Service Kit(传感器服务)# 前言 在运动类应用中,运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据,如配速、距离、卡路里消耗等,用户可以更清晰…...