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

智能汽车十大网络安全攻击场景-《智能汽车网络安全权威指南》

引言

大家都很熟悉OWASP Top 10风险报告,这个报告不但总结了Web应用程序最可能、最常见、最危险的10大安全隐患,还包括了如何消除这些隐患的建议,这个“OWASP Top 10“差不多每隔三年更新一次。目前汽车网络安全攻击威胁隐患繁多,某知名电动汽车厂商安全总监结合实际经验,在他的新书《智能汽车网络安全权威指南》中归纳总结了智能汽车10大攻击场景,以及每个场景的攻击手段和防御方法。

在20世纪50年代,汽车电子成本仅占汽车总成本的1%。然而,随着车联网技术的进步,目前汽车电子成本已经增加到了35%。预计到2030年,这一数字还将继续上升至50%。随着软件定义汽车时代的到来,汽车网络安全攻击面变得非常广泛,主要分布在10个主要模块,也被称为十大易受攻击威胁模块。这些模块包括信息娱乐系统(IVI)、车载网联通讯终端(T-BOX)、车载网关(Gateway)、统一诊断服务(Unified Diagnostic Services,UDS)、车载诊断(On-board diagnostics,OBD)、高级辅助驾驶系统(ADAS)、车载信息服务(TSP)、充电网络系统(Charging System)、汽车远程升级(Over-The-Air,OTA)以及手机端车联网应用程序(App),如图1所示。

《智能汽车十大网络安全攻击场景-《智能汽车网络安全权威指南》》

图1 车联网重点模块图

场景1:车载信息娱乐系统

车载信息娱乐系统(In-Vehicle Infotainment,IVI)指的是结合了向用户提供娱乐信息的车载系统。IVI系统使用音频/视频(A/V)接口、触摸屏、键盘和其他类型的设备来提供这些服务。车载信息娱乐系统通常具备一部分CAN总线操控能力,因此通过攻击车载信息娱乐系统可能会导致远程控制车辆。

2018年,Computest的研究人员Thijs Alkemade和Daan Keuper发现了某汽车品牌的IVI漏洞。在某些情况下,该漏洞可能允许黑客控制关键功能,这些功能包括打开和关闭汽车的麦克风,使用麦克风来收听驾驶员的谈话,以及获得对谈话历史和汽车通讯录的访问权限。最重要的是,研究人员表示,攻击者还可以通过其导航系统跟踪汽车。

IVI系统是最容易遭受到攻击的模块,一般IVI系统采用安卓系统,因此安卓系统的安全风险,在IVI上可能都会出现,如图2所示,这是IVI主要攻击面(非详尽)。

《智能汽车十大网络安全攻击场景-《智能汽车网络安全权威指南》》

图2 IVI遭受的攻击

场景2:车载网联通讯终端

车载网联通讯终端,即T-BOX,对内与车载CAN总线相连,对外通过云平台与手机端实现互联,是车内外信息交互的纽带,实现指令和信息的传递。T-BOX的结构简单示意如图3所示。

《智能汽车十大网络安全攻击场景-《智能汽车网络安全权威指南》》

图3 T-BOX的结构示意图

为了研究方便,一般我们会从车上把T-BOX拆下来,这就需要知道T-BOX在车上的位置。T-Box的安装位置因制造商而异,但一般的T-Box安装位置在仪表板内侧、油门踏板旁边、主/副驾驶座椅下方、汽车中控台内侧、手套箱内部,齿轮盖内部等。如图4所示,这是T-Box在主/副驾驶座椅下方的安装位置。

《智能汽车十大网络安全攻击场景-《智能汽车网络安全权威指南》》

图4 T-box主/副驾驶座下方安装位置

由于T-Box的安装位置不固定,拆卸应由专业修车的人员负责,所以搞汽车网络安全的团队最好有懂修车的,例如基于S32K148的T-BOX开发板如图5所示。

《智能汽车十大网络安全攻击场景-《智能汽车网络安全权威指南》》

图5 基于S32K148的T-BOX开发板

T-BOX作为车辆中的接入点,是车内最核心的模块。T-BOX常见功能包括远程控制、远程诊断、OTA、高精定位、近场控制、V2X等,T-BOX系统一般采用Linux系统,因此Linux系统的安全风险,T-BOX都具备,以下是T-BOX主要攻击面(非详尽)。

表1 T-BOX安全风险

风险分类

风险项

通讯风险

远程通讯:中间人攻击、数据监听、篡改、否认

中程通讯:中间人攻击、数据监听、篡改、否认(包括蓝牙、Wi-Fi)

CAN通讯:数据监听、篡改、否认

I2C/SPI/UART等串型总线数据监听

隐私风险

私钥提取、日志泄漏、定位数据等敏感信息泄漏

系统风险

提权、反弹Shell、缓冲区溢出等

固件风险

固件提取、固件逆向、固件篡改等

场景3:车载网关

汽车网关是一个中央枢纽,可在车辆中的许多不同网络之间安全可靠地互连和传输数据,汽车网关的核心功能是在车内安全可靠地传输数据,车辆中可能存在多个网关,它们可以是集中式网关和多个域网关。集中式网关在远程信息处理控制单元(TCU)、动力总成、车身、信息娱乐系统、智能座舱和高级辅助驾驶应用程序等域之间安全可靠地传输数据。域网关(或域控制器)具有类似的功能,实现各自域内ECU的相互通信。与域网关相比,集中式网关通常需要更高的处理性能、接口和更高带宽的网络协议。图6说明了如何在车辆中实现这两种类型的网关。

《智能汽车十大网络安全攻击场景-《智能汽车网络安全权威指南》》

图6 车辆网关类型

网关作为汽车网络系统的核心控制装置,主要功能是在车载网络和各种电子控制单元之间提供无缝通信,通过不同网络间的物理隔离和不同通信协议间的转换,在各个共享通信数据的功能域(动力总成域、底盘和安全域、车身控制域、信息娱乐域、远程信息处理域、ADAS域)之间进行信息交互。表2提供了网关关键功能的摘要(非详尽列表)。

表2 网关关键功能

网关功能

描述

协议转换

将数据和控制信息转换为不兼容的网络,以实现它们之间的通信

数据路由

在节点上路由数据以到达其预期目的地,它可能位于需要协议转换的不同网络上

诊断路由

外部诊断设备和ECU之间的诊断消息路由,可能涉及DolP和ECU等诊断协议之间的转换

防火墙

基于规则过滤入站和出站网络流量,禁止来自未经授权的源的数据传输,高级防火墙可能包括上下文感知过滤

消息镜像

从接收到的接口捕获数据,以通过另一接口传输,用于诊断或数据记录(存储)

入侵检测

监控网络流量是否存在可能表示入侵的异常

网络管理

管理网络和连接到网络的ECU的状态和配置,并支持诊断

密钥管理

安全处理和存储网络密钥和证书

OTA管理

管理车辆内通过网关访问的ECU,远程OTA固件更新

网关也是智能汽车最可能成为网络攻击的目标,网关一般是RTOS系统,能够弄清楚他的指令集是关键,网关的主要攻击面(非详尽),如表3所示。

表3 网关的攻击面

攻击入口

攻击位置

攻击结果

  

OBD-II

  

内部

CAN总线注入

访问权限

控制制动器

警示灯和安全气囊

 

USB

 

内部

USB升级

ADB调试接口

 

蓝牙

 

外部

车辆钥匙

车辆启动

 

Wi-Fi

 

外部

未授权访问

注入CAN信息

 

传感器

 

内部

激光雷达干扰

摄像头欺骗

TPSM欺骗

OTA升级

内部

签名绕过

场景4:汽车远程升级

汽车远程升级(Over the Air Technology,OTA)是指替代本地连接方式,通过无线传输方式进行软件下载和软件更新的过程,更新的速度和安全性至关重要。OTA是实现软件定义汽车的必备基础,是智能网联汽车系统及其应用的唯一远程升级通道。作为安全的最后一道防线,OTA常见类型包括SOTA、FOTA,实现对动力域、底盘域、辅助驾驶域、信息娱乐域和车身域在内的重大功能更新。

  •     FOTA:Firmware OTA,固件升级,面向车端上的固件升级
  •     SOTA:Software OTA,应用软件升级,面向车载端上应用软件升级。

通过OTA能够为车端添加新功能、修复漏洞等,传统更新汽车软件的做法是到4S店通过UDS对相应的ECU进行软件升级,通过USB等接口对信息娱乐系统进行升级。伴随着智能汽车的发展,本地升级已不再适应高速变化的车载生态,OTA流程如图7所示。

《智能汽车十大网络安全攻击场景-《智能汽车网络安全权威指南》》

图7 OTA流程图

OTA主要分为云端和车端,云端包括SBOM管理、任务调度、打包升级、软件分发、升级审批、升级通知、升级日志、升级包上传、版本控制、升级监控与统计等。车端包括定时检查更新、手动检查更新、安全下载、断点续传、订阅升级消息、升级包签名验证、ECU刷写、升级日志上报等。可以看出OTA的难点在于保证安全和传输效率,以下是OTA攻击面,如图8所示。

《智能汽车十大网络安全攻击场景-《智能汽车网络安全权威指南》》

图8 OTA攻击面示意图

场景5:车载信息服务

车载信息服务(TelematicsServiceProvider,TSP)在车联网系统中以云的形式向用户侧与车辆侧提供以下服务:用户信息维护、车辆定位、状态监控等。TSP功能如图9所示。

《智能汽车十大网络安全攻击场景-《智能汽车网络安全权威指南》》

图9 TSP功能示意图

TSP是重要的车联网云服务,一般云服务存在的安全风险,TSP同样存在,可以参考OWASP Top 10。云端主要靠提供应用程序编程接口(API)与其他端进行通信,API位于应用程序之间或者充当处理系统之间数据传输的中间层,它提供了一个简单而高效的接口,用于扩展功能和改善联网汽车体验。API安全不是汽车网络安全独有的,更多API安全可以参考OWASP API安全十大漏洞,如表4所示。

表4 OWASP API安全十大漏洞

API 1:损坏的对象级授权

API 6:批量分配

API 2:认证失败

API 7:安全配置错误

API 3:过度数据暴露

API 8:注入

API 4:缺乏资源和速率限制

API 9:资产管理不当

API 5:损坏的功能级别身份验证

API  10:记录和监控不足

场景6:车载诊断

车载诊断(On-Board Diagnostics,OBD)系统是一台计算机,负责通过一系列传感器监控汽车的状态,在典型的乘用车中,可以在汽车驾驶员侧的仪表板下方找到OBD-II端口,根据车辆类型,端口可能具有16针、6针或9针,如图10所示。

《智能汽车十大网络安全攻击场景-《智能汽车网络安全权威指南》》

图10 车辆中的OBD-II端口

OBD包含OBD-I和OBD-II,OBD-I是自1991年起适用于为加利福尼亚制造的车辆的车载诊断标准,以控制该州的车辆排放,所有在该地区销售的汽车都必须配备OBD-I以检测发动机问题并报告故障代码。OBD-II于1996年成为美国的全国标准,并沿用至今。与OBD-I不同,配备OBD-II的汽车都支持相同类型的扫描仪,故障代码本身也已标准化,尽管制造商会定制一些额外的特定信息。随着汽车计算机变得越来越复杂,汽车制造商也为其汽车的OBD-II系统添加了越来越多的功能,可以使用OBD-II扫描仪查看实时诊断数据、连接汽车计算机等,如图11所示,通过OBD-II不仅可以实现为外部测试工具(OFF Board)提供诊断服务,还可以实现车辆在运行过程中的自我诊断。

《智能汽车十大网络安全攻击场景-《智能汽车网络安全权威指南》》

图11 OBD-II诊断

从OBD-I到OBD-II,最显著的改进是所有OBD-II汽车都有相同类型的端口,以相同的方式发送相同类型的数据。换句话说,可以购买一台OBD-II扫描仪,并从任何制造商生产的任何汽车中获取有用的信息。

OBD-II包括一系列标准化的故障诊断代码,即DTC。DTC是当OBD-II系统指示故障时由动力总成控制模块(PCM)生成和存储的代码。简而言之,当您的汽车系统诊断出问题时,它会发送一个代码来指示具体故障。根据汽车工程师协会(SAE)发布的故障手册,就可以通过DTC代码查看问题出在哪里,同时有许多工具可用于插入OBD-II连接器并访问DTC,如图12所示。

《智能汽车十大网络安全攻击场景-《智能汽车网络安全权威指南》》

图12 手持式扫描工具

现在的远程诊断功能也可以基于OBD-II的诊断数据,如发动机转数、车速、故障代码等信息,然后通过T-BOX等远程信息处理设备将这些数据上传到云端,再使用这些信息来对车辆进行监控和远程诊断。前面也提到了2021年OBD-II接口攻击占比5.4%,OBD-II的攻击路径如图13所示,后续会深入介绍。

《智能汽车十大网络安全攻击场景-《智能汽车网络安全权威指南》》

图13 OBD-II攻击路径

场景7:统一诊断服务

今天行驶在路上的汽车包含多达几百个ECU,每个都执行特定的功能,这增加了系统的复杂性,需要更有效的方法在发生故障时测试和诊断车辆系统。统一诊断服务(Unified diagnostic services,UDS)与OBD最大的区别就在于“统一”,具体来说,它是面向整车所有UDS的,而OBD是面向排放系统诊断系统的。随着时间的推移,已经开发了许多诊断协议,例如KWP 2000、ISO 15765和K-Line,用于车辆诊断。因此,为确保通用兼容性,原始设备制造商和供应商同意依赖名为统一诊断服务协议的标准协议。UDS用于诊断全球车辆的最新汽车车辆诊断协议,UDS协议遵从ISO-14229标准。

UDS不仅应用于远程诊断,还可以应用ECU刷写,这在OTA升级非智能ECU时经常使用。UDS刷写也就是通过UDS将服务实现软件ECU放在非易失性存储器中,ECU包含启动管理器(Boot Manager)、应用软件(Application Software)、重新编程软件(Reprogramming Software),可以参考ISO 14229-1给出的ECU刷写执行流程如图14所示。

《智能汽车十大网络安全攻击场景-《智能汽车网络安全权威指南》》

图14 基于UDS的ECU刷写执行流程

OTA的快速发展,对ECU刷写提出了更高的要求,要能适应各种极端情况,因此安全性会更加重要,如果安全措施不到位,ECU将会遭受攻击,例如欺骗攻击、密码暴力破解、会话劫持、中间人攻击以及权限提升等。

场景8:高级辅助驾驶系统

安全性是高级辅助驾驶系统(ADAS)和自动驾驶系统(ADS)的关键设计目标,本书讨论的范围仅限于ADAS,ADAS的开发人员需要确保他们已经考虑和分析了问题的所有方面,并且提供可衡量的证据来证明他们的功能是安全的,而即将出台的标准和法规没有描述任何特定的方法。由于ADAS暴露出巨大的攻击面,因此网络安全漏洞可能会造成毁灭性的后果,汽车网络安全不仅是一项关键要求,还是ADAS和ADS的关键先决条件,通用ADAS的分层架构如图15所示。

《智能汽车十大网络安全攻击场景-《智能汽车网络安全权威指南》》

图15 ADAS的分层架构

确保ADAS和ADS的网络安全是一项具有挑战性的任务,因为任何无线接口都可能成为潜在的攻击媒介。ADAS基于复杂的硬件和软件的混合,通常集成了车辆与V2X通信。高级驾驶辅助系统和自动驾驶汽车部署了各种传感器,如超声波、雷达、摄像头和激光雷达等。比如,摄像头传感器应用了许多图像分析、传感器融合、感知的算法,而尤其是那些基于神经网络、深度学习系统的算法,很容易受到网络攻击。ADAS攻击面如图16所示。

《智能汽车十大网络安全攻击场景-《智能汽车网络安全权威指南》》

图16 ADAS的攻击面

场景9:充电网络系统

里程焦虑是现在购买电动车的用户最大的顾虑,也是电动汽车行业要重点解决的问题。随着充电站市场的发展,不同公司专注于充电生态系统的特定领域,充电生态系统如图17所示。

《智能汽车十大网络安全攻击场景-《智能汽车网络安全权威指南》》

图17 充电生态系统

充电生态系统由这些部分组成:汽车制造商(OEM)、电动汽车(EV)、电动汽车充电桩(EVCS)、充电点运营商(CPO)、电动汽车服务提供商(eMSP)。

为了更好地了解充电系统安全,我们必须要先了解充电相关的技术,图18可以让我们更直观地感受电流如何在电动汽车中进行转换。

《智能汽车十大网络安全攻击场景-《智能汽车网络安全权威指南》》

图18 电动汽车中电流转换的简化框图(图片来源:Keysight E-Mobility Design and Test Technologies)

要搞清楚上图的原理,可能需要明白以下问题,这些部分将在本书中详细介绍。

  • 充电电流如何输送到电动汽车?

  • 充电过程如何控制?

  • 充电站如何通信及其通信协议?

  • 如何进行接线和安装?

充电设备通常通过云平台和移动应用程序进行控制,因此具有可远程访问且易受攻击的API。Upstream对2022年初以来100多起公开报道的汽车网络相关事件的分析中得出结论,电动汽车充电被确定为头号新兴攻击媒介。这些安全漏洞可能会影响电动汽车充电网络的所有组成部分,根据上述漏洞,总结电动汽车充电设备的安全风险分类如下。

  • 身份伪造

  • 植入木马

  • 固件更新

  • 固件劫持

  • 重放攻击

  • 移动应用

  • 物理接入

  • 协议安全

场景10:手机端车联网应用程序

前面已经描述了手机App操纵汽车的过程,目前多数车联网汽车厂商会向车主提供车联网移动应用程序,使用移动应用程序可以通过Wi-Fi、蓝牙、蜂窝网络控制车门开关、调节车窗等,移动应用程序的使用场景如图19所示,可以通过手机App查询车辆的实时位置以及历史轨迹等。

《智能汽车十大网络安全攻击场景-《智能汽车网络安全权威指南》》

图19 手机App使用场景

手机App本身的安全问题不仅在车联网中存在,而且车联网场景下允许通过手机控制车辆,这样会将安全危害放大,必须要重视起来。以下是手机端车联网应用程序攻击面。

  • 数据泄露

  • 蓝牙钥匙

  • 不安全的Wi-Fi

  • 网络钓鱼攻击

  • 恶意软件

  • 逆向伪造应用程序

  • 会话处理不当

从上述可以看到汽车网络安全涉及Web安全、协议安全、无线安全、内核安全、移动端安全、固件安全、硬件安全等,任何一方都可能会是薄弱点,所以保护汽车网络安全更重要的是将安全基础打牢,避免出现安全短板。随着汽车行业创新的加速,智能汽车正在转向自动驾驶,新技术正在为扩大攻击面铺平道路,这是一个日益受到关注的问题。朝着该目标的每一次新进展,都可能会引入一个新的攻击面,需要持续的安全投入。

想要了解更多关于汽车网络安全的内容,请大家关注《智能汽车网络安全权威指南》或者autosrc公众号。

转载自autosrc公众号:https://mp.weixin.qq.com/s/K2xjLmpmlsyjUXWWSHtivA

相关文章:

智能汽车十大网络安全攻击场景-《智能汽车网络安全权威指南》

引言 大家都很熟悉OWASP Top 10风险报告,这个报告不但总结了Web应用程序最可能、最常见、最危险的10大安全隐患,还包括了如何消除这些隐患的建议,这个“OWASP Top 10“差不多每隔三年更新一次。目前汽车网络安全攻击威胁隐患繁多&#xff0c…...

递归方法来计算二叉树的双分支节点个数

1.递归方法来计算二叉树的双分支节点个数 首先&#xff0c;你需要定义二叉树的节点结构&#xff0c;然后编写递归函数 #include <stdio.h> #include <stdlib.h>// 定义二叉树的节点结构 struct TreeNode {int value;struct TreeNode* left;struct TreeNode* righ…...

INFLOW:用于检测隐藏服务器的反向网络流水印

文章信息 论文题目&#xff1a;INFLOW: Inverse Network Flow Watermarking for Detecting Hidden Servers 期刊&#xff08;会议&#xff09;&#xff1a;IEEE INFOCOM 2018 - IEEE Conference on Computer Communications 时间&#xff1a;2018 级别&#xff1a;CCF A 文章链…...

社区物联网云服务架构设计

文章目录 1 摘要2 架构图2.1 社区物联网云服务网络拓扑图2.2 社区物联网云服务通讯流程图2.3 社区远程开锁功能流程图 3 应用场景 1 摘要 随着社区管理越来越智能化&#xff0c;社区物联网升级与改造的市场空间也越来越大。社区物联网包含楼宇对讲、门禁门锁、通道闸等等设备系…...

Linux - 文件系统 - 理解目录 - 理解 软/硬链接

前言 在上篇博客当中&#xff0c;我们对 文件系统 和 inode 做了初步了解&#xff0c;本博客将在上篇博客的基础之上&#xff0c;对于 文件系统当中的目录进行进步一阐述。 Linux - 进一步理解 文件系统 - inode - 机械硬盘-CSDN博客 目录 一个文件有一个 inode&#xff0c;…...

Springboot websocket前端无法访问到,Websocket因AOP代理 前端无法请求到

Springboot websocket前端无法访问到&#xff0c;Websocket因AOP代理 前端无法请求到 问题出现 在我后端springboot启动后&#xff0c;前端无法请求websocket请求连接到我们websocket服务器。 想要的效果 在我后端springboot启动后&#xff0c;前端可以请求到我们websocket…...

基于高质量训练数据,GPT-4 Turbo更出色更强大

11月7日消息&#xff0c;OpenAI在首届开发者大会上正式推出了GPT-4 Turbo。 与GPT-4相比&#xff0c;GPT-4 Turbo主要有6方面的提升&#xff1a; 1、扩展下文对话长度&#xff1a;GPT4最大只能支持8k的上下文长度&#xff08;约等于6000个单词&#xff09;&#xff0c;而GPT-4…...

jenkins + gitlab 自动部署(webhook)

Jenkins是一个流行的开源CI/CD工具&#xff0c;可以与Git等版本控制系统集成&#xff0c;实现自动构建、测试和部署。Webhook是一种机制&#xff0c;可以在Git仓库中设置&#xff0c;在代码提交或合并请求时触发Jenkins构建任务&#xff0c;以完成自动化部署。 实操 设备信息 …...

【数据集】全网最全的常见已公开医学影像数据集

目录 一&#xff0c;极市医学数据集汇总 1.CT 医学图像 ​编辑 2.恶性与良性皮肤癌 3.白内障数据集 4.胸部 X 光图像&#xff08;肺炎&#xff09; 5.用于图像增强的内窥镜真实合成曝光过度和曝光不足帧 6.医学家 7.乳房组织病理学图像 8.皮肤癌 MNIST&#xff1a;HA…...

图形数据库的实战应用:如何在 Neo4j 中有效管理复杂关系

关系数据库管理系统( RDBMS ) 代表了最先进的技术&#xff0c;这在一定程度上要归功于其由周边技术、工具和广泛的专业技能组成的完善的生态系统。 在这个涵盖信息技术(IT) 和运营技术(OT) 的技术革命时代&#xff0c;人们普遍认识到性能方面出现了重大挑战&#xff0c;特别是…...

Linux内核中的overlay文件系统

一、简介 Docker 内核实现容器的功能用了linux 内核中的三个特性 Namespace、Cgroup、UnionFs&#xff0c;今天我们来说一下UnionFs。 linux UnionFs 实现的是overlay 文件系统 OverlayFs 文件系统分为三层&#xff0c; lower 是只读层 Upper 是可读写 Merged 是 lower 和U…...

archery修改为不能自提自审核上线SQL

目录 背景修改代码效果参考 背景 我和同事都可以提交上线SQL&#xff0c;但是不能自己提交的SQL自己去审核通过。目前的情况是可以自提自审。 修改代码 找到/opt/archery/sql/utils/workflow_audit.py文件 ...省略...# 判断用户当前是否是可审核staticmethoddef can_revie…...

如何处理git多分支

本篇文章主要处理以下两种多分支问题 如何将自己在本地的修改上传到一个新的Git分支&#xff08;比如用于测试&#xff0c;不合并进main分支&#xff09;&#xff1f;如何在一个新的本地仓库拉取一个项目的非main分支&#xff0c;并处理他们关联关系&#xff1f; 1. 将自己在…...

Proteus仿真--基于DS1302与数码管设计的可调电子钟

本文主要介绍基于51单片机的DS1302的可调式电子钟实验&#xff08;完整仿真源文件及代码见文末链接&#xff09; 仿真图如下 其中数码管显示电子钟时间信息&#xff0c;按键用于调节时间&#xff0c;时间芯片选用DS1302芯片 仿真运行视频 Proteus仿真--基于DS1302与数码管设…...

ESP32网络开发实例-远程Web串口监视器

远程Web串口监视器 文章目录 远程Web串口监视器1、应用介绍2、软件准备3、硬件准备4、代码实现在本文中,我们将构建一个 ESP32 网络服务器,用作远程串行监视器。 基于 Web 的串行监视器的工作方式与通常用于调试目的的 Arduino IDE 串行监视器的工作方式相同。 1、应用介绍 …...

xadmin后台在每一行记录增加一个复制链接按钮

xadmin后台在每一行记录增加一个复制链接按钮 1、效果 点击复制后,自动把url链接复制到粘贴板,按Ctrl+v即可显示复制内容。 2、实现代码 adminx.py # 用户管理 class UserWhiteListAdmin(object):search_fields = [name, mobile] # 检索字段list_display...

LVS+Keepalived 高可用群集

一、一.Keepalived工具介绍 专为LVS和HA设计的一款健康检查工具 • 支持故障自动切换&#xff08;Failover&#xff09; • 支持节点健康状态检查&#xff08;Health Checking&#xff09; • 官方网站&#xff1a;http://www.keepalived.org/ 二、Keepalived工作原理 • …...

数据传输的思考

Wi-Fi&#xff1a;Wi-Fi是一种无线网络技术&#xff0c;可以用于无线互联网接入、局域网通信和数据传输等。Wi-Fi基于IEEE 802.11标准&#xff0c;通过无线信号传输数据&#xff0c;提供高速的无线网络连接。Wi-Fi可用于连接设备与路由器或者设备之间的直接通信&#xff0c;可以…...

ETL-使用kettle批量复制sqlserver数据到mysql数据库

文章标题 1、安装sqlserver数据库2、下载kettle3、业务分析4、详细流程&#xff08;1&#xff09;转换1&#xff1a;获取sqlserver所有表格名字&#xff0c;将记录复制到结果&#xff08;2&#xff09;转换2&#xff1a;从结果设置变量&#xff08;3&#xff09;转换3&#xff…...

交流充电桩与直流充电桩的区别

1、背景 直流充电桩的学名是非车载充电机&#xff0c;是相对于交流充电桩而言的。交流充电桩是采用传导方式为具备车载充电机的电动汽车提供交流电能的专用装置。 2、交流充电桩和直流充电桩 1.1、交流充电桩 交流充电桩包括单相和三相交流充电桩。 图一是交流充电桩原理框…...

XCTF-web-easyupload

试了试php&#xff0c;php7&#xff0c;pht&#xff0c;phtml等&#xff0c;都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接&#xff0c;得到flag...

【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15

缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下&#xff1a; struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...

Opencv中的addweighted函数

一.addweighted函数作用 addweighted&#xff08;&#xff09;是OpenCV库中用于图像处理的函数&#xff0c;主要功能是将两个输入图像&#xff08;尺寸和类型相同&#xff09;按照指定的权重进行加权叠加&#xff08;图像融合&#xff09;&#xff0c;并添加一个标量值&#x…...

oracle与MySQL数据库之间数据同步的技术要点

Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异&#xff0c;它们的数据同步要求既要保持数据的准确性和一致性&#xff0c;又要处理好性能问题。以下是一些主要的技术要点&#xff1a; 数据结构差异 数据类型差异&#xff…...

2021-03-15 iview一些问题

1.iview 在使用tree组件时&#xff0c;发现没有set类的方法&#xff0c;只有get&#xff0c;那么要改变tree值&#xff0c;只能遍历treeData&#xff0c;递归修改treeData的checked&#xff0c;发现无法更改&#xff0c;原因在于check模式下&#xff0c;子元素的勾选状态跟父节…...

Keil 中设置 STM32 Flash 和 RAM 地址详解

文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...

前端开发面试题总结-JavaScript篇(一)

文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包&#xff08;Closure&#xff09;&#xff1f;闭包有什么应用场景和潜在问题&#xff1f;2.解释 JavaScript 的作用域链&#xff08;Scope Chain&#xff09; 二、原型与继承3.原型链是什么&#xff1f;如何实现继承&a…...

SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)

上一章用到了V2 的概念&#xff0c;其实 Fiori当中还有 V4&#xff0c;咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务)&#xff0c;代理中间件&#xff08;ui5-middleware-simpleproxy&#xff09;-CSDN博客…...

Java + Spring Boot + Mybatis 实现批量插入

在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法&#xff1a;使用 MyBatis 的 <foreach> 标签和批处理模式&#xff08;ExecutorType.BATCH&#xff09;。 方法一&#xff1a;使用 XML 的 <foreach> 标签&#xff…...

NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合

在汽车智能化的汹涌浪潮中&#xff0c;车辆不再仅仅是传统的交通工具&#xff0c;而是逐步演变为高度智能的移动终端。这一转变的核心支撑&#xff0c;来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒&#xff08;T-Box&#xff09;方案&#xff1a;NXP S32K146 与…...