XSS漏洞靶场---(复现)
XSS漏洞靶场—(复现)
反射型 XSS 的特点是攻击者诱导用户点击包含恶意脚本的 URL,服务器接收到请求后将恶意脚本反射回响应页面,浏览器执行该脚本从而造成攻击,恶意脚本不会在服务器端存储。
Level 1(反射型XSS)


此漏洞主要源于代码对用户输入未进行充分的过滤和转义处理。在 PHP 代码里,通过 $_GET["name"] 接收用户从 URL 传递过来的 name 参数,接着直接将该参数输出到 HTML 页面中。若攻击者在 name 参数里注入恶意的 JavaScript 代码,当页面加载时,这些恶意代码就会被浏览器执行,进而达成 XSS 攻击。
通过分析源码,可在name参数上尝试用简单的JS代码进行XSS攻击,看到下面代码执行成功

攻击示例:
http://127.0.0.1/xss-labs-master/level1.php?name=<script> alert("攻击成功")</script>
修复建议:
为了防止 XSS 攻击,需要对用户输入进行过滤和转义处理。在 PHP 中,可以使用 htmlspecialchars 函数将特殊字符转换为 HTML 实体,从而避免恶意代码被执行
解释
htmlspecialchars($str, ENT_QUOTES, 'UTF-8'):该函数把字符串中的特殊字符(如<、>、"、'等)转换为 HTML 实体(如<、>、"、'等),如此一来,即使攻击者注入了恶意的 JavaScript 代码,这些代码也会以文本形式显示,而不会被浏览器执行。
<!DOCTYPE html><!--STATUS OK--><html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<script>
window.alert = function()
{ confirm("完成的不错!");window.location.href="level2.php?keyword=test";
}
</script>
<title>欢迎来到level1</title>
</head>
<body>
<h1 align=center>欢迎来到level1</h1>
<?php
ini_set("display_errors", 0);
$str = $_GET["name"];
// 对用户输入进行转义处理
$escapedStr = htmlspecialchars($str, ENT_QUOTES, 'UTF-8');
echo "<h2 align=center>欢迎用户".$escapedStr."</h2>";
?>
<center><img src=level1.png></center>
<?php
// 对用于计算长度的字符串也可以考虑进行必要的验证
$lengthStr = htmlspecialchars($str, ENT_QUOTES, 'UTF-8');
echo "<h3 align=center>payload的长度:".strlen($lengthStr)."</h3>";
?>
</body>
</html>
Level 2(反射型XSS)


虽然代码在部分输出时使用了 htmlspecialchars 函数对用户输入进行了处理,但在表单输入框的 value 属性赋值时,没有对用户输入进行足够的转义处理。攻击者可以通过构造特殊的输入,绕过这种部分防护,使得恶意的 JavaScript 代码在页面中被执行,从而实现 XSS 攻击。
在上述代码里,$str 是从 $_GET["keyword"] 获取的用户输入,在 <input> 标签的 value 属性中直接使用了 $str,而没有进行合适的转义。
在h2标签之中的恶意代码被htmlspecialchars编码了。其中<、>都被编码成了html字符实体,恶意代码被编码了,只能从属性值中的恶意代码处进行突破了,,只需要将属性的引号和标签先闭合就可以了。
攻击示例:
http://127.0.0.1/xss-labs-master/level2.php?keyword="><script>alert('XSS 攻击成功!')</script><"

修复建议
为了防止这种 XSS 攻击,需要对表单输入框 value 属性中的用户输入也进行转义处理。可以继续使用 htmlspecialchars 函数。
<!DOCTYPE html><!--STATUS OK--><html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<script>
window.alert = function()
{ confirm("完成的不错!");window.location.href="level3.php?writing=wait";
}
</script>
<title>欢迎来到level2</title>
</head>
<body>
<h1 align=center>欢迎来到level2</h1>
<?php
ini_set("display_errors", 0);
$str = $_GET["keyword"];
// 对输出到 h2 标签中的内容进行转义
$escapedStrH2 = htmlspecialchars($str, ENT_QUOTES, 'UTF-8');
// 对输出到 input 标签 value 属性中的内容进行转义
$escapedStrInput = htmlspecialchars($str, ENT_QUOTES, 'UTF-8');
echo "<h2 align=center>没有找到和".$escapedStrH2."相关的结果.</h2>".'<center>
<form action=level2.php method=GET>
<input name=keyword value="'.$escapedStrInput.'">
<input type=submit name=submit value="搜索"/>
</form>
</center>';
?>
<center><img src=level2.png></center>
<?php
// 对用于计算长度的字符串也进行必要的验证
$lengthStr = htmlspecialchars($str, ENT_QUOTES, 'UTF-8');
echo "<h3 align=center>payload的长度:".strlen($lengthStr)."</h3>";
?>
</body>
</html>
Level 3(反射型XSS)

尝试Level 2 的攻击方法后未能成功


代码中对 $str 进行了 htmlspecialchars 处理,在大部分情况下能防止常见的 XSS 攻击。不过,当攻击者利用 HTML 事件属性时,仍可能构造出能执行恶意脚本的情况。在 HTML 标签的属性中,如果输入包含事件处理函数(如 onclick、onload 等),即使使用了 htmlspecialchars 转义了引号,攻击者依然可以通过构造合适的输入绕过部分防护。

echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>"."<center>
<form action=level3.php method=GET>
<input name=keyword value='".htmlspecialchars($str)."'>
<input type=submit name=submit value=搜索 />
</form>
</center>";
虽然对 value 属性的值进行了转义,但如果攻击者输入的是包含事件处理函数的内容,可能会引发 XSS 攻击
攻击示例:
http://127.0.0.1/xss-labs-master/level3.php?writing='onmouseover='alert("XSS")
'οnmοuseοver='alert(“XSS”)
onmouseover :
当用户将鼠标悬停在输入框上时,onmouseover 事件触发,恶意脚本 alert("XSS") 就会被执行

修复建议:
为了更安全地处理用户输入,除了使用 htmlspecialchars 对普通字符进行转义,还需要对可能的 HTML 事件属性进行过滤和验证,或者采用更严格的白名单机制来允许的字符和属性。另外,在现代 Web 开发中,可以考虑使用 htmlentities 函数来进行更全面的转义。
<!DOCTYPE html><!--STATUS OK--><html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<script>
window.alert = function()
{ confirm("完成的不错!");window.location.href="level4.php?keyword=try harder!";
}
</script>
<title>欢迎来到level3</title>
</head>
<body>
<h1 align=center>欢迎来到level3</h1>
<?php
ini_set("display_errors", 0);
$str = $_GET["keyword"];
// 更全面的转义处理
$escapedStr = htmlentities($str, ENT_QUOTES, 'UTF-8');
echo "<h2 align=center>没有找到和".$escapedStr."相关的结果.</h2>"."<center>
<form action=level3.php method=GET>
<input name=keyword value='".$escapedStr."'>
<input type=submit name=submit value=搜索 />
</form>
</center>";
?>
<center><img src=level3.png></center>
<?php
// 对用于计算长度的字符串也进行转义
$lengthStr = htmlentities($str, ENT_QUOTES, 'UTF-8');
echo "<h3 align=center>payload的长度:".strlen($lengthStr)."</h3>";
?>
</body>
</html>
Level 4 (反射型XSS)


漏洞分析
- 过滤不彻底
代码尝试通过 str_replace 函数去除输入中的 < 和 > 字符,以防止用户注入 HTML 标签。然而,攻击者可以利用 HTML 实体编码绕过这种过滤。HTML 实体编码允许将特殊字符用特定的编码表示,例如 < 可以用 < 表示,> 可以用 > 表示。当页面输出时,浏览器会将这些实体编码解析为对应的字符。
- 部分输出转义问题
虽然在 <h2> 标签中使用了 htmlspecialchars 对输出进行转义,但在 <input> 标签的 value 属性中,使用的是经过 str_replace 处理后的 $str3,没有再次进行全面的转义,这就给攻击者留下了可乘之机。
攻击示例:
http://127.0.0.1/xss - labs - master/level4.php?keyword="onfocus=javascript:alert('xss') "
当用户点击该 URL 时,浏览器会向服务器发送请求,服务器端代码通过 $_GET["keyword"] 获取到 keyword 参数的值为 "onfocus=javascript:alert('xss') "。
原代码中处理逻辑:
$str = $_GET["keyword"];
$str2 = str_replace(">", "", $str);
$str3 = str_replace("<", "", $str2);
这里代码只是简单地去除了 < 和 > 字符,而攻击者输入的内容中并没有直接使用 < 和 > 来包裹脚本,所以这种过滤方式对该恶意输入无效,$str3 仍然是 "onfocus=javascript:alert('xss') "。
修复建议:
为了防止此类 XSS 攻击,需要对用户输入进行更严格的过滤和转义处理。可以使用 htmlspecialchars 或 htmlentities 函数对输出进行全面转义,确保特殊字符被正确处理
<!DOCTYPE html><!--STATUS OK--><html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<script>
window.alert = function()
{ confirm("完成的不错!");window.location.href="level5.php?keyword=find a way out!";
}
</script>
<title>欢迎来到level4</title>
</head>
<body>
<h1 align=center>欢迎来到level4</h1>
<?php
ini_set("display_errors", 0);
$str = $_GET["keyword"];
// 对输入进行全面的 HTML 实体编码转义
$escapedStr = htmlentities($str, ENT_QUOTES, 'UTF-8');
echo "<h2 align=center>没有找到和".$escapedStr."相关的结果.</h2>".'<center>
<form action=level4.php method=GET>
<input name=keyword value="'.$escapedStr.'">
<input type=submit name=submit value=搜索 />
</form>
</center>';
?>
<center><img src=level4.png></center>
<?php
// 对用于计算长度的字符串也进行转义
$lengthStr = htmlentities($str, ENT_QUOTES, 'UTF-8');
echo "<h3 align=center>payload的长度:".strlen($lengthStr)."</h3>";
?>
</body>
</html>
Level 5(反射型XSS)


在这段代码中,$str 变量接收用户输入的 keyword 参数,经过一系列处理后存储在 $str3 中,而 $str3 被直接嵌入到 HTML 表单的 input 标签的 value 属性中,没有进行足够的 HTML 实体转义,这就为 XSS 攻击提供了可能。
攻击原理:
攻击者通过构造恶意的 keyword 参数,将包含 JavaScript 代码的字符串注入到页面中。当页面加载时,浏览器会执行注入的 JavaScript 代码,从而实现攻击目的。例如,使用如下 URL:
http://127.0.0.1/xss-labs-master/level5.php?keyword="><a href=javascript:alert("攻击成功")>"点这"</a>
在这个 URL 中,keyword 参数的值为 "><a href=javascript:alert("攻击成功")>"点这"</a>。当页面加载时,这个恶意代码会被嵌入到 input 标签的 value 属性中,导致浏览器执行 alert("攻击成功") 代码,显示一个提示框,表明攻击成功。

代码中存在问题的部分:
echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center>
<form action=level5.php method=GET>
<input name=keyword value="'.$str3.'">
<input type=submit name=submit value=搜索 />
</form>
</center>';
在上述代码中,$str3 直接被嵌入到 input 标签的 value 属性中,没有进行足够的 HTML 实体转义,使得攻击者可以通过构造恶意的 keyword 参数注入 JavaScript 代码。
修复建议:
为了防止 XSS 攻击,需要对用户输入的数据进行充分的 HTML 实体转义。可以使用 htmlspecialchars 函数对 $str3 进行转义,修改后的代码如下:
echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center>
<form action=level5.php method=GET>
<input name=keyword value="'.htmlspecialchars($str3, ENT_QUOTES, 'UTF-8').'">
<input type=submit name=submit value=搜索 />
</form>
</center>';
在这个修改后的代码中,htmlspecialchars 函数将 $str3 中的特殊字符(如 <、>、" 等)转换为 HTML 实体,从而避免了 JavaScript 代码的注入。ENT_QUOTES 参数表示同时转换单引号和双引号,'UTF-8' 表示使用 UTF-8 编码。
Level 6(反射型)


代码尝试对一些常见的用于 XSS 攻击的关键词进行替换,例如将 <script 替换为 <scr_ipt,将 on 替换为 o_n 等。但这种过滤方式存在严重缺陷:
- 大小写绕过:过滤操作是基于小写关键词进行的,攻击者可以使用大小写混合的方式绕过过滤。例如,在攻击 payload
"><a hRef=javascript:alert(1)>test</a>中,使用hRef而不是href,就绕过了对href的替换。 - 不完整过滤:只对部分关键词进行了替换,攻击者可以利用其他未被过滤的 HTML 属性和事件来注入恶意脚本。
echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center>
<form action=level6.php method=GET>
<input name=keyword value="'.$str6.'">
<input type=submit name=submit value=搜索 />
</form>
</center>';
这是漏洞的关键所在。虽然对 $str 进行了 htmlspecialchars 处理,但在将 $str6 嵌入到 input 标签的 value 属性时,没有对其进行充分的 HTML 实体转义。这意味着攻击者构造的恶意代码会被直接插入到 HTML 页面中。
攻击示例:
http://127.0.0.1/xss-labs-master/level6.php?keyword="><a hRef=javascript:alert(1)>test</a>
当用户访问包含恶意 keyword 参数的 URL 时,浏览器会解析并执行嵌入在页面中的恶意脚本。例如,对于 "><a hRef=javascript:alert(1)>test</a> 这个 payload,当页面加载后,input 标签的 value 属性会被提前闭合,后面插入的 <a> 标签会正常显示。当用户点击这个链接时,浏览器会执行 javascript:alert(1) 代码,弹出一个警告框,表明攻击成功。

Level 7(反射型)


$str2 = str_replace("script", "", $str);
$str3 = str_replace("on", "", $str2);
$str4 = str_replace("src", "", $str3);
$str5 = str_replace("data", "", $str4);
$str6 = str_replace("href", "", $str5);
代码尝试对一些常见的用于 XSS 攻击的关键词进行过滤,将它们替换为空字符串。但这种过滤方式存在明显缺陷:
- 过滤不全面:只对部分关键词进行了过滤,攻击者可以使用其他未被过滤的 HTML 属性和事件来注入恶意脚本。
- 可绕过过滤:攻击者可以通过一些技巧绕过这些过滤,例如使用大小写混合、重复关键字等方式。比如构造
javascscriptript绕过对script的过滤,当过滤操作移除script后,仍能形成有效的javascript。
echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center>
<form action=level7.php method=GET>
<input name=keyword value="'.$str6.'">
<input type=submit name=submit value=搜索 />
</form>
</center>';
这是漏洞的关键所在。在将处理后的 $str6 嵌入到 input 标签的 value 属性时,没有对其进行充分的 HTML 实体转义。这意味着攻击者构造的恶意代码会被直接插入到 HTML 页面中,当浏览器解析该页面时,就会执行恶意脚本。
攻击示例:
http://127.0.0.1/xss-labs-master/level7.php?keyword="><a hrhrefef=javascscriptript:alert(1)>test</a>

攻击者构造的 keyword 参数为 "><a hrhrefef=javascscriptript:alert(1)>test</a>。通过重复关键字符(如 hrhrefef 和 javascscriptript),使得过滤函数在移除 href 和 script 后,依然能保留有效的可执行代码。经过过滤后,hrhrefef 变成 href,javascscriptript 变成 javascript,最终在页面中形成有效的 <a href="javascript:alert(1)">test</a> 代码,当用户点击链接时,就会触发 alert(1) 弹出警告框。
修复建议:
为了防止 XSS 攻击,需要对最终输出到页面的内容进行充分的 HTML 实体转义。可以使用 htmlspecialchars 函数对 $str6 进行处理,修改后的代码如下:
$str = strtolower($_GET["keyword"]);
$str2 = str_replace("script", "", $str);
$str3 = str_replace("on", "", $str2);
$str4 = str_replace("src", "", $str3);
$str5 = str_replace("data", "", $str4);
$str6 = str_replace("href", "", $str5);
$escaped_str6 = htmlspecialchars($str6, ENT_QUOTES, 'UTF-8');
echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center>
<form action=level7.php method=GET>
<input name=keyword value="'.$escaped_str6.'">
<input type=submit name=submit value=搜索 />
</form>
</center>';
通过 htmlspecialchars 函数将特殊字符(如 <、>、"、' 等)转换为 HTML 实体,这样即使攻击者构造了恶意的 keyword 参数,也无法在页面中执行恶意脚本。
相关文章:
XSS漏洞靶场---(复现)
XSS漏洞靶场—(复现) 反射型 XSS 的特点是攻击者诱导用户点击包含恶意脚本的 URL,服务器接收到请求后将恶意脚本反射回响应页面,浏览器执行该脚本从而造成攻击,恶意脚本不会在服务器端存储。 Level 1(反射型XSS) 此漏…...
基于ssm的电子病历系统(全套)
一、系统架构 前端:jsp | bootstrap | jquery 后端:spring | springmvc | mybatis 环境:jdk1.8 | mysql | maven | tomcat | idea 二、代码及数据库 三、功能介绍 01. 登录 02. 主页 03. 管理员-个人中心-修改密码…...
Linux-数据结构-线性表-单链表
一.链表的概念 【1】线性表的链式存储 解决顺序存储的缺点,插入和删除,动态存储问题。 【2】特点: 线性表链式存储结构的特点是一组任意的存储单位存储线性表的数据元素,存储单元可以是连续的,也可以不连续。可以被存…...
基于SpringBoot的Mybatis和纯MyBatis项目搭建的区别
【由于之前学习MyBatis的时候是跟着视频敲的纯MyBatis项目,以至于在突然看到别人在SpringBoot项目里搭建MyBatis方式的时候很懵比…特此文字形式记录一下区别(应该还有好多种其他方式是我不知道的,主要应该就是要知道关键的流程步骤ÿ…...
通过 Python 爬虫提高股票选股胜率
此贴为Python爬虫技术学习贴 在股票中,即便有了选股规则,从5000多只股票中筛选出符合规则的股票也是十分困难的,于是想通过爬虫来实现自动化的快速选股。全文用GP代替股票 实现方案 1、指定两套规则,第一套弱约束,第…...
OpenEuler20.3 安装 Elasticsearch7.17
1、下载elasticsearch wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.17-linux-x86_64.tar.gz wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.17-linux-x86_64.tar.gz.sha512 shasum -a 512 -c elasticsea…...
大数据学习(68)- Flink和Spark Streaming
🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言📝支持一…...
Fastdata极数:中国民宿行业发展趋势报告2025
2024年,中国游客出行次数大幅上涨,旅游相关支出也复苏强劲。2025年中国旅游业还将持续稳健的复苏及增长。同时,中国旅游业将见证一场深刻的变革,这场变革的推动力是消费者对旅游期望的转变,经济因素和年轻人全新价值观…...
图论——广度优先搜索实现
99. 岛屿数量 题目描述 给定一个由 1(陆地)和 0(水)组成的矩阵,你需要计算岛屿的数量。岛屿由水平方向或垂直方向上相邻的陆地连接而成,并且四周都是水域。你可以假设矩阵外均被水包围。 输入描述 第一行包含两个整数 N, M,表示矩阵的行数和列数。 后续 N 行,每行…...
【FAQ】HarmonyOS SDK 闭源开放能力 —Map Kit(6)
1.问题描述: 使用华为内置的MapComponent, 发现显示不出来。查看日志, MapRender底层有报错。 解决方案: 麻烦按以下步骤检查下地图服务,特别是签名证书指纹那部分。 1.一般没有展示地图,可能和没有配置…...
【MySQL】B树和B+树的区别?MySQL为什么选用B+树作为索引数据结构?
B树和B树的区别: 结构方面: 1.节点存储内容: B树: 节点同时存储索引和数据。B树:只有叶子节点存储数据记录或指向数据记录的指针,非叶子节点只存键值,用于索引。 B 树的非叶子节点可以存储更…...
鸿蒙路由 HMrouter 配置及使用一
1、学习链接 HMRouter地址 https://gitee.com/hadss/hmrouter/blob/dev/HMRouterLibrary/README.md 2、工程配置 下载安装 ohpm install hadss/hmrouter 添加编译插件配置 在工程目录下的build-profile.json5中,配置useNormalizedOHMUrl属性为true (我这项目创…...
ERC-6909 最小多代币标准
ERC-6909 Token标准是 ERC-1155 Token标准的一种简化替代方案。 ERC-1155 标准引入了一种多Token接口,使得单个智能合约能够结合可替代的和不可替代的Token(即,ERC20 和 ERC721)。 ERC-1155 解决了多个挑战,例如降…...
各省水资源平台 水资源遥测终端机都用什么协议
各个省水资源平台 水资源遥测终端机 的建设大部分从2012年开始启动,经过多年建设,基本都已经形成了稳定的通讯要求;河北瑾航科技 遥测终端机,兼容了大部分省市的通讯协议,如果需要,可以咨询和互相学习&…...
需求分析、定义、验证、变更、跟踪(高软47)
系列文章目录 需求分析、定义、验证、变更、跟踪 文章目录 系列文章目录前言一、需求分析二、需求定义三、需求验证四、需求变更五、需求跟踪六、真题总结 前言 本节讲明需求分析、定义、验证、变更、跟踪相关知识。 一、需求分析 二、需求定义 三、需求验证 四、需求变更 五、…...
从零开始 | C语言基础刷题DAY3
❤个人主页:折枝寄北的博客 目录 1.打印3的倍数的数2.从大到小输出3. 打印素数4.打印闰年5.最大公约数 1.打印3的倍数的数 题目: 写一个代码打印1-100之间所有3的倍数的数字 代码: int main(){int i 0;for (i 1; i < 100; i){if (i % …...
PostreSQL指南-内幕探索-学习笔记-01-数据库集簇的逻辑与物理结构
目录 一、环境信息 二、参考内容 三、逻辑结构概念 四、物理结构概念 五、逻辑映射关系 1、数据库与oid映射关系 2、堆表对象与oid映射关系 五、物理映射关系 1、数据库与oid映射关系 2、堆表对象与oid映射关系 六、数据库文件布局 1、表格 2、postmaster.pid文件解…...
docker入门篇
使用docker可以很快部署相同的环境,这也是最快的环境构建,接下来就主要对docker中的基础内容进行讲解.Docker 是一个用于开发、交付和运行应用程序的开源平台,它可以让开发者将应用程序及其依赖打包到一个容器中,然后在任何环境中运行这个容器࿰…...
Unity Shader - UI Sprite Shader之简单抠图效果
Sprite抠图效果: 前言 在PhotoShop中我们经常会用到抠图操作,现在就用Shader实现一个简单的抠图效果。 实现原理: 使用当前像素颜色与需要抠掉的颜色相减作比较,然后与一个指定的阈值比较以决定是否将其显示出来; U…...
本地仓库设置
将代码仓库初始化为远程仓库,主要涉及在服务器上搭建 Git 服务,并将本地代码推送到服务器上。以下是详细的步骤: 1. 选择服务器 首先,你需要一台服务器作为代码托管的远程仓库。服务器可以是本地服务器、云服务器,甚…...
30、Vuex 为啥可以进行缓存处理
Vuex 状态管理基础与缓存的关联 Vuex 的核心概念: Vuex 主要由五个部分组成:state、mutations、actions、getters和modules。其中,state是存储数据的地方,类似于一个全局的数据仓库。在这个菜谱 APP 的例子中,缓存的数…...
ngx_http_conf_ctx_t
定义在 src/http/ngx_http_config.h typedef struct {void **main_conf;void **srv_conf;void **loc_conf; } ngx_http_conf_ctx_t; ngx_http_conf_ctx_t 是 Nginx 中用于管理 HTTP 配置上下文的核心结构体,其设计体现了 Nginx 多级配置&…...
vllm-openai多服务器集群部署AI模型
服务器配置是两台ubantu系统电脑,每台电脑安装两张4090-48G显存的显卡,共计192G显存。 服务器1 服务器2 准备工作: 1.两台电脑都已经安装了docker 2.两台电脑都已经安装了nvidia驱动 参考vllm官方资料 https://docs.vllm.ai/en/latest/serving/distributed_serving.html…...
Cluster Computer(SCI1区)投稿常见问题
Cluster Computer(SCI1区)投稿常见问题 目录 Cluster Computer(SCI1区)投稿常见问题怎么查询sci投稿的详细时间节点怎么查看sci投稿期刊邀请几个审稿人,几个审稿接受邀请**一、格式问题:作者简介与照片添加****二、审稿周期长:催稿邮件模板****三、查重超标(阈值通常20…...
在Spring Boot项目中接入DeepSeek深度求索,感觉笨笨的呢
文章目录 引言1. 什么是DeepSeek?2. 准备工作2.1 注册DeepSeek账号 3.实战演示3.1 application增加DS配置3.2 编写service3.3 编写controller3.4 编写前端界面chat.html3.5 测试 总结 引言 在当今快速发展的数据驱动时代,企业越来越重视数据的价值。为了…...
STM32---FreeRTOS事件标志组
一、简介 事件标志位:用一个位,来表示事件是否发生 事件标志组:一组事件标志位的集合,可以简单的理解时间标志组,就是一个整体。 事件标志租的特点: 它的每一个位表示一个时间(高8位不算&…...
Word 小黑第40套
对应大猫43 主题 -浏览主题 -选择W样式标准文件就行 1级段落和2级段落(用项目符号不影响原本段落文字符号 颜色修改为自动) 整段变红的 不是把光标定位到红色字体那里 要选择几个红色字体 再创建样式 插入的空白页一定要是下一页,不能插空白…...
【Linux我做主】浅谈Shell及其原理
浅谈Linux中的Shell及其原理 Linux中Shell的运行原理github地址前言一、Linux内核与Shell的关系1.1 操作系统核心1.2 用户与内核的隔离 二、Shell的演进与核心机制2.1 发展历程2.2 核心功能解析2.3 shell的工作流程1. 用户输入命令2. 解析器拆分指令3. 扩展器处理动态内容变量替…...
【JDK17】开源应用服务器大比对
接着 next-public 源代码分析,Java 应用服务器选用 jetty。但是之前普遍使用 Tomcat,那为什么要用 jetty 么,除了这两个,Java 应用服务器开源现状并不了解,故而又是一篇科普性的笔记,以下是 又小又快的 Jav…...
CI/CD构建与注意事项
1. CI/CD 概述 1.1 定义 CI(Continuous Integration,持续集成):是一种软件开发实践,开发团队成员频繁地将代码集成到共享的代码仓库中。每次集成都会通过自动化的构建(包括编译、打包等)和测试…...
