威胁建模STRIDE框架

news2024/9/23 13:26:48

威胁建模STRIDE框架

  • 1.威胁建模框架概述
  • 2.STRIDE威胁建模框架
    • 欺骗 - 冒充某人或某物
    • 篡改 - 未经授权更改数据
    • 否认性 - 不宣称对执行的操作负责
    • 信息泄露 - 查看不应查看的数据
    • 拒绝服务 - 系统繁忙
    • 权限提升 - 拥有本不应该拥有的权限
  • 3.后续的威胁发现

1.威胁建模框架概述

威胁建模框架可帮助你生成潜在威胁的列表,并找到降低或消除风险的方法。

引入威胁建模框架目的是在开发生命周期的早期尽可能多地发现并修复问题。 等待时间越长,客户的风险就越高

一般使用 STRIDE 框架中的六个主要威胁类别来发现安全设计问题:

类别说明
欺骗冒充某人或某物
篡改未经授权更改数据
否认性不宣称对执行的操作负责
信息泄露未经许可查看数据
拒绝服务系统繁忙
权限提升拥有本不应该拥有的权限

每个威胁类别都与安全控制关联,如下:

类别安全控制描述
欺骗身份验证其身份是否如其所述
篡改完整性防止恶意修改数据
否认性不可否认性操作与用户绑定
信息泄露机密性保护数据免遭意外泄露
拒绝服务可用性系统适当处理所有请求
特权提升授权用户拥有执行请求的适当权限

2.STRIDE威胁建模框架

欺骗 - 冒充某人或某物

当恶意人员或程序成功地冒充用户或系统进行恶意活动时,就会发生欺骗。

示例包括:

1、案例1:在同一台机器上假冒一个进程或文件

如果一个攻击者在你的代码运行之前预先创建了特定的文件,而你的代码也需要创建同名的文件,那么你的代码可能会意外地使用攻击者创建的文件。这种情况下,攻击者可以控制该文件的内容,从而可能导致数据被误认为是由你的代码生成的,从而被信任和处理。

假设你的代码在 /tmp 目录下创建一个文件 data.txt 用于存储重要数据:

File file = new File("/tmp/data.txt");
if (!file.exists()) {
    file.createNewFile();
}
// 后续对文件进行读写操作

如果攻击者在你的代码运行之前,已经创建了 /tmp/data.txt 并写入了恶意数据,那么你的代码可能会使用这个文件,误以为这是你创建的文件,从而信任并处理该数据。

同样的,如果管道、本地过程调用(IPC)等用于进程间通信的文件权限没有被很好地管理,攻击者可能接管这些通信端点,欺骗或干扰与这些端点通信的进程。

假设你的代码使用 Unix 域套接字与另一个进程通信,并且套接字文件位于 /tmp 目录下:

ServerSocketChannel serverChannel = ServerSocketChannel.open();
serverChannel.socket().bind(new UnixDomainSocketAddress("/tmp/socket"));

如果没有正确设置文件权限,攻击者可以在 /tmp 目录下创建同名的套接字文件并接管通信。这样,攻击者就可以接收和发送数据,伪装成合法的通信方,欺骗你的进程。

2、案例2:假冒一台机器

ARP欺骗

攻击者在本地网络中可以发起假冒ARP(地址解析协议)请求。ARP用于将IP地址映射到物理MAC地址,攻击者可以通过发送伪造的ARP响应来篡改ARP缓存,从而将流量重定向到攻击者的设备上。

IP欺骗

攻击者可以伪造IP数据包,使其看起来像是来自另一个合法的IP地址。这种技术常用于拒绝服务(DoS)攻击或绕过基于IP地址的访问控制。

DNS欺骗

攻击者可以伪造DNS响应,篡改域名解析结果

正向DNS查询攻击:攻击者假冒DNS服务器,向客户端返回伪造的IP地址。

影响:用户被重定向到攻击者控制的恶意网站。

反向DNS查询攻击:攻击者篡改反向DNS记录,使某个IP地址解析为虚假的域名。

影响:误导性解析结果可能被用于欺骗或绕过安全措施。

中间人攻击

一旦攻击者成功假冒了一台机器,他们可以充当中间人,在客户端和服务器之间拦截并篡改通信。这种攻击可以导致信息泄露、数据篡改和身份认证信息的窃取

钓鱼攻击

攻击者发送伪装成合法机构(如银行)的电子邮件或创建伪造的网站。当用户点击链接并输入身份认证信息,这些信息会被发送到攻击者控制的服务器。

3、案例3:人员假冒

人员假冒 指的是攻击者伪装成其他人,通常包括两种主要形式:

  • 进入某人的账户:攻击者获取并使用别人的账户凭证(如用户名和密码),从而以该账户的身份进行操作。
  • 使用别人的账户进行伪装:攻击者创建虚假的账户,冒充某个真实存在的个人或机构,进行欺诈、操控或其他恶意活动。

在威胁建模数据流关系图中可能面临欺骗攻击风险的元素和交互是:

名称交互定义
过程 <-> 过程一个任务从任务接收数据或向任务发送
过程 <-> 数据存储一个任务向数据存储发送数据或从数据存储接收数据
过程 <-> 外部实体一个任务向外部实体发送数据或从外部实体接收数据

那么,如何防止欺骗攻击?主要的方案是使用身份验证验证用户和系统的身份是否属实

示例包括:

  • 发送和接收使用数字签名进行签名的消息,以验证来源并确保消息完整性。
  • 使用 SSL/TLS 保护数据传输,以加密信息源和目标之间的流量。
  • 使用具有时效有限的令牌、密码或多重身份验证的唯一凭据来帮助保护用户、管理员和服务帐户。

用于降低或消除风险的常用安全控制:

对于数据:

  • 哈希
  • 消息验证码
  • 数字签名

对于系统:

  • 用户身份验证
  • Cookie 身份验证
  • Kerberos
  • SSL/TLS
  • 证书
  • IPSec
  • 数字签名的数据包

IPSec(Internet Protocol Security)是一种网络安全协议,用于在IP网络上提供加密和认证服务。通过使用IPSec隧道,可以保护跨终结点的通信,确保数据在传输过程中不被窃听、篡改或伪造

IPSec隧道是通过在两个终结点之间建立一个加密的“隧道”来保护通信的。这两个终结点可以是路由器、防火墙、VPN网关或主机等设备。IPSec隧道主要使用以下两个协议来实现安全通信:

  • AH(Authentication Header):提供数据包的完整性和源认证,但不加密数据。它确保数据在传输过程中未被篡改,并验证数据包的发送者身份。
  • ESP(Encapsulating Security Payload):提供数据加密、完整性校验和认证功能。ESP不仅能验证数据包的完整性和身份,还能加密数据,确保数据的机密性。

篡改 - 未经授权更改数据

当恶意攻击者未经授权在系统中读取、修改、删除或插入数据时,就会发生篡改。

案例包括:

1、案例1:篡改文件

文件篡改

文件篡改指的是攻击者利用对文件的写入权限,恶意修改文件内容。这种攻击可以发生在多种环境下,包括本地磁盘和远程共享文件。

如果你的代码依赖于某些文件,而这些文件的写入权限被不受信任的用户或程序所控制,那么这些文件可能被篡改。攻击者可以修改文件内容来改变程序的行为或引入漏洞。

如果文件通过网络共享(例如在Web应用中,JavaScript文件可能来自远程源),攻击者可以通过破坏共享源或中间人攻击篡改文件。这可能导致恶意代码注入或其他安全问题。

链接和重定向篡改

指的是攻击者通过修改链接或重定向设置来干扰程序的正常操作。这通常涉及到篡改网页上的链接、重定向规则或其他形式的跳转。

缓存污染攻击

缓存污染攻击是指攻击者利用缓存机制的漏洞,将恶意数据插入到缓存中,从而影响后续的请求和响应。

2、案例2:篡改内存

当数据在函数或方法中按引用传递时,实际上是传递了数据的内存地址而不是数据的副本。这种方式通常用于提高性能,但也会带来安全风险。

如果攻击者能够访问或修改传递的数据的引用,他们可以在安全检查之后改变数据内容,从而影响程序的行为或绕过安全防护。

假设你有一个函数处理用户提交的数据:

public void processData(UserData data) {
    // 执行一些安全检查
    if (isValid(data)) {
        // 处理数据
        data.modify(); // 这里 data 是按引用传递的
    }
}

在这种情况下,如果攻击者能够访问 data 的引用,他们可以在 isValid 检查之后直接修改 data 对象,从而绕过检查

3、案例3:篡改网络

网络篡改是指攻击者通过控制网络流量来修改数据,这包括中间人攻击、数据包篡改和注入攻击。随着无线通信技术的发展,特别是SDR(软件定义无线电是一种无线通信技术,它利用软件而不是硬件来处理无线信号)的出现,攻击者能够更容易地拦截和篡改无线数据流。(现代SDR单元价格相对较低,使得更多的攻击者能够使用这种技术进行恶意操作,攻击者可以通过SDR分析和破解无线协议,从而获取或修改传输的数据)

在威胁建模数据流关系图中可能面临篡改攻击风险的元素和交互是:

名称交互定义
过程 <-> Data store 数据存储一个任务向数据存储发送数据或从数据存储接收数据
数据流 <-> 信任边界通过 Internet 将数据从受信任的环境传输给某人(反之亦然)

那么,如何防止篡改攻击?

示例包括:

  • 验证输入以防止处理恶意的数据
  • 使用数字签名对消息进行签名,以确保消息不被篡改
  • 使用访问控制列表应用权限
  • 使用 SSL/TLS 保护传输
  • 创建 IPSec 隧道,以保护终结点之间的通信

用于降低或消除风险的常用安全控制有:

  • 操作系统完整性控制
  • 访问控制列表 (ACL)
  • 数字签名
  • 消息验证码

否认性 - 不宣称对执行的操作负责

当有人出于恶意或无意采取某个操作,但他不承认时就会发生否认性威胁

示例包括:

  • 拒绝承认修改了包含敏感操作的日志。
  • 使用其他人的帐户以避免被抓。
  • 声称没有删除数据库记录。

系统日志是攻击者的金矿,不仅可用于操纵,还可用于收集有关用户、环境和弱点的数据。

可能面临否认性攻击风险的元素和交互:

名称交互定义
过程 <-> 过程一个任务向其他任务发送数据或从其他任务接收数据
过程 <-> 外部实体一个任务向用户发送数据或从用户接收数据
过程 <-> 数据存储一个任务向数据存储发送数据或从数据存储接收数据

那么,如何防止否认性威胁?

一般来讲,不可否认性通过创建和保护安全日志来确保每个操作都可以追溯到其来源。

用于降低或消除风险的常用安全控制:

  • 强身份验证
  • 安全日志记录和监视
  • 数字签名
  • 安全时间戳

信息泄露 - 查看不应查看的数据

向未经授权的个人公开敏感数据时,会发生信息泄漏。 无论是在有意或无意的情况下,都有可能发生信息泄露。

示例包括:

1、案例1:进程信息泄露

进程信息泄露是指攻击者通过各种途径获取关于正在运行的进程的敏感信息。这种泄露可能会导致系统安全性严重下降。以下是一些常见的泄露方式及其影响

泄漏内存地址

攻击者通过泄露进程的内存地址,可以获得关于进程内存布局的信息。这种信息对绕过一些防御机制(如地址空间布局随机化 ASLR)尤其重要,ASLR 是一种安全机制,它通过随机化进程的内存地址布局来阻止攻击者猜测地址。泄露内存地址可能使攻击者能够绕过 ASLR,从而进行精确的攻击。如果攻击者知道了内存中某个函数的确切位置,他们可以利用这点来执行代码注入攻击。

泄露秘密信息

泄露包括但不限于数据库连接字符串、密码口令等敏感信息,这些信息的泄露可能导致进一步的攻击。

泄露设计细节

泄露系统设计的细节(如反欺诈规则)可以帮助攻击者理解系统的防御机制,从而找到绕过这些机制的方法

2、案例2:数据存储信息泄露

不合理的安全机制使用

如果文件或目录的权限设置不当,可能导致未授权的用户访问敏感数据。例如,公开可读的文件或目录可能被任何人访问

加密密钥泄露

加密密钥是保护数据的核心。如果加密密钥泄露,攻击者可以解密保护的数据,从而访问敏感信息

文件名泄露

文件名本身可能包含敏感信息。例如,一个名为“2013年5月裁员/Alice辞退信.docx”的文件,文件名就透露了文件内容的信息

程序和系统的敏感数据

日志、临时文件和交换区:这些存储区域可能会包含敏感数据。如果没有正确保护,攻击者可以从中提取信息

操作系统和用户设备的安全性

如果攻击者可以控制用户的操作系统,他们可以从设备中提取敏感数据

数据彻底删除

普通删除操作可能不会彻底清除硬盘上的数据,数据可能被恢复。使用专业的数据擦除工具或物理破坏硬盘,确保数据被彻底销毁。

3、案例3:数据流中的信息泄露

数据在网络上传输的风险

当信息在网络上传输时,数据流特别容易遭受信息泄露攻击。攻击者可以通过多种手段截获或读取网络数据流中的信息。攻击者可以利用伪造的网络控制协议将流量重定向到他们自己的设备上,从而查看原本不会传输到他们设备的数据。这种攻击可以在攻击者不在数据流路径上的情况下进行。

共享计算环境的风险

当计算资源在云端共享,或者一台服务器由多个不信任的用户共享时,数据流的安全性面临更高的风险。不同用户可能会互相干扰,或在共享环境中进行信息窃取。即使在单一机器上,如果该机器上有多个用户或进程,也可能存在数据流泄露的风险。例如,恶意用户可能会监视或干扰其他用户的通信。

加密流量的风险

即使数据流量经过加密,攻击者也可能通过其他方式获取信息。例如,攻击者可能会分析加密流量的元数据,或者使用侧信道攻击来推断加密数据的内容。

社交网络分析

攻击者可以通过社交网络分析获取信息,包括查看DNS记录、社交媒体(如LinkedIn)的活动等。这些信息可能帮助攻击者理解目标的行为模式、社交圈以及潜在的攻击路径

可能面临信息泄漏风险的元素和交互:

名称交互定义
过程 -> 过程一个任务将数据发送到另一个任务
过程 <-> 外部实体外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传一个任务向用户发送数据或从用户接收数据
过程 <-> 数据存储外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传一个任务向数据存储发送数据或从数据存储接收数据
数据流 <-> 信任边界通过 Internet 将数据从受信任的环境传输给某人(反之亦然)

那么,如何防止信息泄露威胁呢?

示例包括:

  • 应用访问控制列表,以确保合适的用户可以访问适当的数据。
  • 加密静态数据、传输中数据和正在使用的数据。
  • 强制实施 SSL/TLS 以保护传输。
  • 使用 IPSec 隧道保护跨终结点的通信。

用于降低或消除风险的常用安全控制:

  • 加密
  • 访问控制列表 (ACL)

拒绝服务 - 系统繁忙

当攻击者导致系统不可用时,将发生拒绝服务。

示例包括:

  • 向网络发送大量请求。
  • 占用内存和 CPU 进程。
  • 请求数量过多导致数据存储崩溃。

拒绝服务攻击的分类:

1、攻击者正在攻击 vs. 持续攻击

  • 正在攻击:这是指攻击者在某个时刻进行攻击。例如,攻击者可能通过填满网络带宽或发送大量请求来使系统瘫痪。这种攻击会在攻击者停止攻击时结束,除非系统有持久性漏洞。
  • 持续攻击:这种攻击会持续存在,甚至在系统重启后依然能继续攻击。例如,攻击者可能使用 while(1){fork();}(不断创建进程)来耗尽系统资源,或者填满磁盘空间,使系统无法正常运作。

2、放大型攻击 vs. 非放大型攻击

  • 放大型攻击:这种攻击方式是攻击者通过较小的努力产生大的影响。通常,攻击者利用某些服务或协议的特性,使得少量的数据或请求就能对目标造成严重影响。
  • 非放大型攻击:这种攻击方式需要攻击者付出更多的努力或资源来对目标造成影响。例如,通过直接耗尽系统资源或带宽进行攻击,可能需要更多的攻击者或资源投入来产生显著效果。

可能面临拒绝服务风险的元素和交互:

名称交互定义
过程 -> 过程一个任务将数据发送到另一个任务
过程 <-> 外部实体一个任务向用户发送数据或从用户接收数据
过程 <-> 数据存储一个任务向数据存储发送数据或从数据存储接收数据
数据流 <-> 信任边界通过 Internet 将数据从受信任的环境传输给某人(反之亦然)

那么,如何防止拒绝服务攻击呢?

可用性确保系统为用户启动且正常运行。 示例包括:

  • 使用网络访问控制列表控制传入和传出的流量,ACLs 可以基于 IP 地址、端口号或协议类型来限制访问,确保只有授权的流量能够进入或离开网络。
  • 使用弹性资源管理不断增加或减少的系统资源(根据系统负载自动增加或减少计算资源,或使用负载均衡)。
  • 监视系统以检测是否出现异常(使用监控工具如 Prometheus、Grafana、Nagios来实时监测系统性能指标如 CPU 使用率、内存消耗、网络流量等。设置告警以在性能异常时通知管理员)。
  • 启用操作系统标志来处理内存和 CPU 进程。(通过操作系统的调度器设置进程优先级,确保关键进程获得足够的 CPU 资源;启用操作系统的内存管理功能如 Linux 的虚拟内存管理)

用于降低或消除风险的常用安全控制:

  • 访问控制列表
  • 筛选
  • 配额
  • 授权
  • 高可用性

权限提升 - 拥有本不应该拥有的权限

个人未经许可访问资源时,就会发生权限提升。 示例包括:

1、案例1:通过崩溃进程提升权限

崩溃进程通常指的是程序在运行时由于错误或攻击而中断或停止工作。攻击者可能通过触发这些错误来干扰程序的正常操作或利用程序的崩溃状态进行进一步的攻击。

例如:攻击者可能使用粉碎堆栈、利用栈或堆上的数据等技术来实现这些攻击。粉碎堆栈指的是通过溢出或其他手段破坏栈的内容,从而影响程序的控制流或数据流。

攻击者可以通过栈溢出或堆溢出攻击来覆盖程序的控制数据(如返回地址)或数据,导致程序行为异常或执行攻击者的代码。

2、案例2:通过授权失效提升权限

在某些程序中,可能存在路径上的权限检查遗漏,即某些操作在执行之前没有进行适当的权限验证。

如果程序有多个功能模块,其中某些模块在访问资源时没有验证用户的权限,那么攻击者可以利用这些模块进行未授权的操作。比如,一个文件管理程序在某些操作上没有检查用户是否有权限访问特定文件,那么攻击者可能会利用这个漏洞访问或修改不该访问的文件。

可能面临权限提升风险的元素和交互:

名称交互定义
过程 <-> 过程一个任务将数据发送到另一个任务
过程 <- 外部实体外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传任务接收来自用户的数据
过程 <- 数据存储任务接收来自数据存储的数据

那么,如何防止权限提升威胁呢?

授权确保用户拥有适当的权限。 示例包括:

  • 实现授权机制以验证对数据和资源的权限。
  • 应用安全控制,以使用最少的访问权限运行服务。
  • 监视访问以检测异常和未经授权的访问尝试。

用于降低或消除风险的常用安全控制:

  • 访问控制列表 (ACL)
  • 基于角色的访问控制 (RBAC)
  • 基于组的访问
  • 权限
  • 输入验证

3.后续的威胁发现

使用STRIDE对威胁分类后,可以使用威胁树分析程序中的威胁和漏洞

攻击树和攻击库:https://www.yuque.com/dahezhiquan/vyd91w/qornbrccqqf87ayr

用根节点表示系统所面临威胁的抽象描述,逐层细化威胁的细节信息,直到用叶节点表示具体攻击方式

建立威胁树后,就可以对威胁进行量化评估,评定其严重程度,可以使用DREAD方法来完成。

DREAD方法是以下单词的首字母缩写,分别从五个方面描述威胁的危害程度

在 DREAD 模型里,每个因素都可以分为高、中、低三个等级,分别用 3、2、1 的分数代表其权重值,可以具体计算出某一个威胁的风险值

等级高(3)中(2)低(1)
Damage Protential获取完全验证权限;执行管理员操作;非法上传文件泄露敏感信息泄露其他信息
Reproducibility攻击者可以随意再次攻击攻击者可以重复攻击,但有时间限制攻击者很难重复攻击过程
Exploitability初学者在短期内能掌握攻击方法熟练的攻击者才能完成这次攻击漏洞利用条件非常苛刻
Affected users所有用户,默认配置,关键用户部分用户,非默认配置极少数用户,匿名用户
Discoverability漏洞很显眼,攻击条件很容易获得在私有区域,部分人能看到,需要深入挖掘漏洞发现该漏洞极其困难

DREAD比较主观,会在很多情况下产生奇怪的结果。因此,到2010年,微软 SDL团队不再推荐使用DREAD

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2122194.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何通过内网穿透实现Pycharm远程服务器编译项目与服务器代码同步

文章目录 前言一、前期准备1. 检查IDE版本是否支持2. 服务器需要开通SSH服务 二、Pycharm本地链接服务器测试1. 配置服务器python解释器 三、使用内网穿透实现异地链接服务器开发1. 服务器安装Cpolar2. 创建远程连接公网地址 四、使用固定TCP地址远程开发 前言 本文主要介绍如…

Flex布局最后一行元素的对齐的解决方案

问题的产生 使用Flex布局&#xff0c;设置justify-content: space-between;让元素在主轴上两队对齐。 <div class"box"><div class"item">1</div><div class"item">2</div><div class"item">3&l…

考试:软件工程(01)

软件开发生命周期 ◆软件定义时期&#xff1a;包括可行性研究和详细需求分析过程&#xff0c;任务是确定软件开发工程必须完成的总目标&#xff0c; 具体可分成问题定义、可行性研究、需求分析等。 ◆软件开发时期&#xff1a;就是软件的设计与实现&#xff0c;可分成概要设计…

【PPT】文字突然变成方框

文章目录 前言一、问题描述二、解决方案参考文献 前言 在 ppt 画图时遇到的问题 一、问题描述 在 ppt 使用过程中&#xff0c;同一字体&#xff0c;有些变成了方框&#xff0c;有些没有变&#xff08;排除字体缺失问题&#xff09; 二、解决方案 如果是页数多了&#xff0…

【用map解决高频单词问题】返回前k个高频单词

目录 1.前言2.题目简介3.求解思路4.示例代码4.1换个稳定排序解决4.2用仿函数强行进行控制 1.前言 ok&#xff0c;好久不写博客了&#xff0c;这里简单的来写一写用到关于容器map来解决前k个高频单词的问题。 当然&#xff0c;这个问题也可以用优先级队列(堆)来解决&#xff0c…

免费扫描试卷的软件有哪些?5个软件帮助你轻松进行试卷扫描

免费扫描试卷的软件有哪些&#xff1f;5个软件帮助你轻松进行试卷扫描 扫描试卷的软件可以帮助你将纸质试卷转化为电子版&#xff0c;方便保存、分享和编辑。以下是五款免费的试卷扫描软件&#xff0c;它们功能强大且易于使用&#xff0c;能够帮助你轻松完成试卷扫描。 试卷…

【精彩瞬间】2024外滩大会回顾

9月8号&#xff0c;为期3天的“2024 inclusion外滩大会”在上海黄浦圆满落下帷幕。本届大会&#xff0c;共吸引了5.2万人到场参观&#xff0c;无论是参会规模还是国际嘉宾的数量都创下历史新高。 500位演讲嘉宾分别在1场开幕主论坛、36场见解分论坛上聚焦“ai产业新实践”“科技…

基于STM32的保温水壶控制器设计

文章目录 前言资料获取设计介绍功能介绍设计源码具体实现截图参考文献设计获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师&#xff0c;一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设…

【MATLAB】矩阵的合并

矩阵的合并是指将两个或者多个矩阵合并到一起构成一个新的矩阵。矩阵标识符方括号 [ ]&#xff0c;不仅可以用来创建新的矩阵&#xff0c;还可以用来将若干个矩阵合并到一起。表达式 C [A B] 将矩阵A和B在水平方向上合并到一起&#xff0c;而表达式C[A;B]则将矩阵A和B在竖直方…

java反射(reflection)的基本理解和使用

目录 一、什么是反射 二、反射的主要用途&#xff1f; 三、什么情况下使用反射 四、反射有什么优点&#xff1f; 1、增加程序的灵活性 2、避免将固有的逻辑程序写死到代码里 3、提高代码的复用率 4、支持动态代理和动态配置 5、支持自动化测试和代码生成 6、自由度高…

ABAP EXCEL宏函数应用

【应用场景】 1. excel导出项目及对应的分期,楼栋的各个产品类型对应的各个面积指标数据, 分项目/分期/楼栋三个SHEET页签。当用户在楼栋层级编辑完产品类型对应的面积指标时,可以 通过宏函数自下往上先汇总到相同产品类型+面积指标的分期层级,再自动汇总到项目层级面积…

万龙觉醒免费辅助脚本:VMOS云手机助力物资获取与养成!

在《万龙觉醒》中&#xff0c;资源获取和英雄养成是游戏的重要组成部分&#xff0c;而使用VMOS云手机可以为玩家带来更高效的游戏体验。通过使用VMOS云手机&#xff0c;玩家可以轻松实现24小时不间断的游戏辅助&#xff0c;无需反复安装或更新游戏&#xff0c;因为VMOS云手机自…

upload-labs通关教程

一.第一关&#xff08;前端绕过&#xff09; 首先准备一个php小马 <?php phpinfo();?>这是调用phpinfo这个函数&#xff0c;查看php的配置信息 首先上传1.php发现 使用BP抓不到包&#xff0c;猜测被前端验证了&#xff0c;查看网页源代码 可以看到下面有一段js代码过…

国内超声波清洗机哪个品牌好?非常好用的超声波清洗机

在当今社会快速生活的节奏下&#xff0c;个人健康与生活品质成为了焦点话题。面对传统清洁方法的局限性和可能对物品造成的伤害&#xff0c;人们愈发倾向于探索更高效、安全的清洁方案。超声波清洗技术恰逢其时地步入大众视野&#xff0c;凭借其高效清洁力与环保特性&#xff0…

鸿蒙开发(API 12 Beta6版)【P2P模式】 网络WLAN服务开发

概述 无线局域网&#xff08;Wireless Local Area Networks&#xff0c;WLAN&#xff09;&#xff0c;是通过无线电、红外光信号或者其他技术发送和接收数据的局域网&#xff0c;用户可以通过WLAN实现结点之间无物理连接的网络通讯。常用于用户携带可移动终端的办公、公众环境…

打造无死角安防网:EasyCVR平台如何助力智慧警务实现视频+AI的全面覆盖

一、背景概述 随着科技的飞速发展&#xff0c;智慧城市建设已成为提升社会治理能力、增强公共安全水平的重要途径。在警务领域&#xff0c;智慧警务作为智慧城市的重要组成部分&#xff0c;正通过融合视频监控技术与人工智能&#xff08;AI&#xff09;解决方案&#xff0c;实…

数据库中的主码、候选码、主属性、非主属性

参考链接 候选码、主码、全码、外码、主属性、主键、主关键字、非主属性清晰总结 - 知乎 (zhihu.com) 1.码&#xff1a; 能够标识一条记录的属性或者属性集 2.候选码 能够标识一条记录的最小属性集 任一候选键的任何真子集都不能唯一标识一个记录&#xff08;比如在成绩表…

诸葛io:消费金融行业智能运营与数智化经营模型构建

规范化的快速发展已成为消费金融行业的主旋律&#xff0c;消金公司亟待制定数智化转型战略&#xff0c;建设自主营销与精细化运营能力&#xff0c;以找到存量时代的全新增长密码。 容联云旗下诸葛智能公司作为数智化经营领域的杰出代表&#xff0c;凭借数据技术先进性、金融业…

将esp32-s3-eye做为USB网络摄像头(UVC设备)

官方网址&#xff1a;usb_webcam 支持UVC同步、批量传输模型只支持MJPEG传输格式支持板上LCD动画esp32-s3-eye&#xff08;IDF v5.0或更高版本&#xff09; 硬件要求 官方默认的USB WebCam config就是乐鑫带摄像头OV2604的esp32-s3-eye&#xff0c;其他的开发板可以参考官方网…

仿微信QQ聊天系统源码设计开发

一、引言 随着移动互联网的快速发展&#xff0c;即时通讯软件已成为人们日常生活中不可或缺的一部分。仿微信QQ聊天系统作为一种模仿主流聊天软件功能的应用&#xff0c;旨在为用户提供高效、便捷的沟通方式。本文将从系统架构、功能模块等方面详细介绍仿微信QQ聊天系统的设计…