文件上传漏洞3
1. 例题:文件上传限制
1)上传漏洞靶场介绍
- 项目名称: upload-labs
- 开发语言: 使用PHP语言编写
- 功能定位: 专门收集渗透测试和CTF中遇到的各种上传漏洞的靶场
- 关卡数量: 目前共21关,每关包含不同上传方式
- 注意事项:
- 每关没有固定通关方法,不要自限思维
- 提供的writeup仅供参考,鼓励分享个人通关思路
- 没有思路时可查看提示
- 黑盒情况下实在做不出可查看源码
2)白名单与黑名单机制
- 白名单机制:
- 定义: 只允许特定格式文件上传
- 比喻: 类似机关大院停车场,只有放通行证的车辆才能进入
- 示例: 本关只允许上传jpg/png/gif类型文件
- 黑名单机制:
- 定义: 禁止特定危险格式文件上传
- 比喻: 类似办公大楼"衣冠不整者禁止入内"的告示
- 示例: 禁止上传php/asp/jsp等脚本文件
- 组合使用: 白名单和黑名单机制可以结合使用
3)绕过前端JS校验的方法
- 禁用JavaScript
- 方法原理: 前端校验依赖JavaScript执行,禁用后校验失效
- 操作步骤:
- 浏览器地址栏输入about:config
- 搜索javascript.enabled
- 将值从true改为false
- 注意事项:
- 修改浏览器配置可能影响性能和安全性
- 禁用后许多网站功能会失效
- 修改客户端代码
- 操作步骤:
- 按F12打开开发者工具
- 定位到表单提交事件(如checkFile函数)
- 删除onsubmit事件绑定
- 优势: 比完全禁用JavaScript更精准,不影响其他功能
- 操作步骤:
4)实战演示
- 验证方法:
- 上传webshell文件(shell.php)
- 通过浏览器直接访问上传文件
- 使用中国蚁剑等工具连接验证
- 异常现象解释:
- 图片裂开是因为系统尝试将非图片文件作为图片解析
- 不影响webshell功能正常使用
5)其他绕过技巧
- 浏览器插件:
- 使用油猴脚本等插件禁用特定网站的JavaScript
- 复制限制案例:
- 以360doc网站为例说明前端检测机制
- 类比上传校验的绕过思路
2. 例题:文件上传限制
1)MIME类型基础
- 定义: MIME(Multipurpose Internet Mail Extensions)是多用途互联网邮件扩展类型,用于标记互联网通信和文件传输场景中的文件类型。
- 生成机制: 由浏览器根据文件扩展名自动生成,如.jpg文件对应image/jpeg类型。
- 常见类型:
- 图片: image/jpeg, image/png, image/gif
- 文本: text/html, text/plain
- 数据: application/json
- 二进制: application/octet-stream
- 官方标准: IANA是MIME媒体类型的官方注册机构,维护所有官方MIME类型列表。
- 默认类型:
- text/plain: 文本文件默认值
- application/octet-stream: 其他情况的默认值
2)应用案例
- 例题:浏览器请求头的contentType
- 客户端用法:
- Content-Type: 在POST请求头中指定上传文件类型
- Accept: 告诉服务端允许接收的响应类型
- 服务端用法:
- 响应头Content-Type: 告知客户端响应数据类型
- 实战观察:
- 百度响应头包含Content-Type: text/html
- 请求头包含Accept字段声明可接收类型
- 文件上传时会自动生成Content-Type字段
- 客户端用法:
3)Burp代理抓包环境配置
- JDK要求: Burp Suite需要JDK 9+,推荐使用JDK 11
- 常见问题:
- 版本冲突:与冰蝎/哥斯拉工具所需的JDK 8可能冲突
- 解决方案:修改JAVA_HOME环境变量切换版本
4)Burp代理使用
- 配置步骤:
- 启动Burp监听8080端口
- 浏览器配置代理插件(如FoxyProxy)
- 切换代理到Burp
- 实战操作:
- 拦截文件上传请求
- 修改Content-Type为合法图片类型(如image/jpeg)
- 绕过服务端MIME类型检查
- 验证方法:
- 观察是否返回上传成功提示
- 检查服务器目录确认文件存在
- 注意文件名是否被重命名
3. 例题:文件扩展名拦截
- 拦截机制:无论前端还是后端校验,都有机会被修改绕过
- 关键点:不能仅依赖浏览器自动生成的MIME类型进行校验
- 源码分析:需要检查文件扩展名的处理逻辑
4. 等价扩展名
- 黑名单机制:通过数组匹配禁止上传的扩展名(.asp/.aspx/.php/.jsp)
- 处理流程:
- 获取文件扩展名并进行多重处理(删除末尾点、转小写、去除特殊字符等)
- 最终与黑名单数组进行比对
- 绕过思路:利用黑名单不完整的特点,尝试使用等价扩展名
1)常见等价扩展名
- ASP:.asa, .cer, .cdx
- ASPX:.ashx, .asmx, .ascx
- PHP:.php2, .php3, .php4, .php5, .phps, .phtml
- JSP:.jspx, .jspf
- 产生原因:程序语言版本发展过程中衍生的扩展名
2)例题:文件上传尝试
- 实践步骤:
- 将webshell.php改为webshell.php3
- 上传后访问时出现下载框(需配置服务器解析)
- 成功连接中国蚁剑进行管理
- 服务器配置:
- 修改Apache的httpd.conf文件
- 添加AddType application/x-httpd-php .php .phtml .php3 .php5
- 确保服务器能解析这些等价扩展名
- 题目解析
- 关键突破点:利用黑名单未包含的PHP等价扩展名
- 环境要求:需要配置服务器解析这些特殊扩展名
- 文件重命名:上传后系统会自动重命名文件(基于时间戳+随机数)
- 连接验证:通过中国蚁剑成功连接验证webshell有效性
5. 例题:文件扩展名拦截
1)黑名单过滤机制
- 过滤逻辑:通过检查文件扩展名是否在黑名单中决定是否允许上传,黑名单包含".php",".php5",".php4"等常见PHP扩展名。
- 处理流程:
- 删除文件名末尾的点
- 转换为小写
- 去除字符串"::$DATA"
- 收尾去空
- 漏洞原因:黑名单不全面,存在遗漏的PHP变种扩展名。
2)黑名单强化
- 新增拦截项:".pHp3",".pHp2",".Html",".Htm",".pHtml",".jsp",".jspa"等
- 防御效果:基本覆盖了所有常见的PHP变种扩展名,使简单的扩展名修改攻击失效。
3)绕过方法探索
- 思路转变:当无法通过修改扩展名绕过时,尝试上传伪装成图片的PHP文件。
- 实施步骤:
- 将PHP文件扩展名改为.jpg等图片格式
- 成功上传后文件实际内容仍是PHP代码
- 限制:虽然能上传成功,但服务器不会将图片文件当作PHP代码执行。
4).htaccess文件利用
- 功能:Apache服务器的配置文件,可改变文件扩展名、配置重定向等。
- 攻击应用:通过上传.htaccess文件强制服务器将特定文件(如.jpg)当作PHP解析。
- 实现原理:添加"AddType application/x-httpd-php .jpg"指令。
5)完整攻击链
- 步骤:
- 上传伪装成图片的PHP文件
- 上传自定义的.htaccess文件
- 访问图片URL触发PHP代码执行
- 使用中国蚁剑等工具连接webshell
- 关键点:需要服务器允许.htaccess文件覆盖配置。
6)防御建议
- 白名单机制:仅允许特定安全的文件类型
- 文件内容检查:验证文件实际内容与扩展名是否匹配
- 禁用.htaccess:在Apache配置中禁止覆盖
- 权限控制:上传目录禁止脚本执行
6. 应用案例
1)例题:伪静态网站文件查看
- 动态网站架构:Discuz论坛使用PHP搭建,属于动态网站,通过PHP文件处理请求并从数据库获取数据动态生成页面内容。
- 伪静态原理:实际URL应为动态形式如"thread.php?id=xxx&page=1",但通过.htaccess重写规则伪装成静态HTML路径"thread-xxx-1-1.html"。
- SEO优化目的:搜索引擎更偏好静态内容,伪静态可提高收录率。真实路径仍保持动态特性,仅URL显示为静态形式。
- 技术实现:通过服务器配置文件.htaccess实现URL重写,将静态形式URL映射到真实PHP处理程序。
- 数据获取方式:页面内容(标题、正文、评论、用户信息等)均从数据库动态获取,PHP文件仅作为处理框架。
- 路径伪装示例:看似独立HTML文件"thread-1530418-1-1.html",实际由thread.php处理参数id=1530418和page=1。
2)例题:图片文件伪装
- 文件解析控制:通过.htaccess的SetHandler指令可指定特定文件类型按PHP解析。
- 精确控制方法:使用<Files>指令限定仅特定文件(如a.jpg)按PHP处理,避免全局影响。
- 实际应用:将恶意代码存入图片文件,配合.htaccess使服务器将其作为PHP执行,实现Webshell功能。
- 防御措施:服务器应限制.htaccess使用权限,禁止用户上传此类配置文件。
- 多功能性:除URL重写外,.htaccess还可实现IP限制、访问控制等安全功能。
- 执行验证:成功上传.htaccess后,访问伪装图片(a.jpg)会触发PHP解析执行,证明配置生效。
二、知识小结
知识点 | 核心内容 | 考试重点/易混淆点 | 难度系数 |
文件上传漏洞原理 | 通过伪造文件类型绕过前端/后端校验,上传恶意脚本(如Web Shell) | 前端JS校验可被禁用或篡改,后端校验需关注MIME类型与扩展名黑名单 | ⭐⭐ |
MIME类型绕过 | HTTP请求头中的Content-Type字段可被篡改(如将application/x-php改为image/jpeg) | 浏览器自动生成MIME类型,需通过代理工具(如Burp Suite)拦截修改 | ⭐⭐⭐ |
黑名单与白名单机制 | 白名单仅允许指定格式(如.jpg/.png),黑名单禁止危险扩展名(如.php/.asp) | 等价扩展名绕过(如.php3/.phtml需服务器配置支持) | ⭐⭐⭐ |
.htaccess文件利用 | 通过自定义Apache配置强制将特定文件(如.jpg)解析为PHP | 需服务器允许覆盖配置,且文件需与恶意脚本同目录 | ⭐⭐⭐⭐ |
动态与伪静态网站 | 动态网站通过参数查询数据,伪静态伪装路径以优化SEO(如Discuz论坛) | .htaccess实现重定向与解析规则覆盖 | ⭐⭐ |
工具链使用 | Burp Suite改包、浏览器禁用JS、F12开发者工具篡改前端代码 | 环境依赖问题(如JDK版本冲突需切换) | ⭐⭐⭐ |
相关文章:
文件上传漏洞3
1. 例题:文件上传限制 1)上传漏洞靶场介绍 项目名称: upload-labs开发语言: 使用PHP语言编写功能定位: 专门收集渗透测试和CTF中遇到的各种上传漏洞的靶场关卡数量: 目前共21关,每关包含不同上传方式注意事项: 每关没有固定通关方法,不要自限…...
一洽智能硬件行业解决方案探索与实践
一、智能硬件行业发展现状剖析 在数字化浪潮推动下,智能硬件行业呈现蓬勃发展态势。软硬件一体化的深度融合,构建起智能化服务的核心架构,而移动应用作为连接用户与设备的重要桥梁,其作用愈发关键。深入研究该行业,可…...
什么是snmp协议?在优雅草星云智控AI物联网监控系统中如何添加设备进行监控【星云智控手册01】-优雅草卓伊凡
什么是snmp协议?在优雅草星云智控AI物联网监控系统中如何添加设备进行监控【星云智控手册01】-优雅草卓伊凡 优雅草星云智控物联网设备 本产品即将在5月15日在优雅草科技的承办下召开产品发布会,本产品需要报名参加可以通过活动行搜索星云智控进行报名…...
神经网络权重优化秘籍:梯度下降法全解析(五)
引言 在神经网络的训练过程中,权重更新是提升模型性能的关键环节,而梯度下降法及其优化算法则是实现这一关键环节的核心工具。理解并掌握这些方法,对于打造高效的神经网络模型至关重要。本文将深入剖析梯度下降法在神经网络权重更新中的应用…...
输入框仅支持英文、特殊符号、全角自动转半角 vue3
需求:封装一个输入框组件 1.只能输入英文。 2.输入的小写英文自动转大写。 3.输入的全角特殊符号自动转半角特殊字符 效果图 代码 <script setup> import { defineEmits, defineModel, defineProps } from "vue"; import { debounce } from "…...
Python简介与入门
目录 Python初始 Python的优势 Python 的特性 Linux下安装Python windows 系统安装python Python的语法基础 标识符 注释 语句与缩进 Python 常用的数据类型 数字 字符串 列表 列表的定义 列表的取值 重复列表 元组 元组的操作 字典 字典的创建 字典的取值操作 字典的添加、…...
C++学习笔记(三十六)——STL之排序算法
一、STL 算法 C的STL(Standard Template Library) 提供了一组高效、通用的算法,这些算法适用于各种容器(如 vector、list、set、map)。 这些算法主要位于 <algorithm> 和 <numeric> 头文件中。 通用性&a…...
G1 人形机器人软件系统架构与 Python SDK
如果说人形机器人的硬件是它的“身体”,那么软件系统就是它的“大脑”和“神经系统”,负责接收信息、进行决策并控制身体行动。理解 G1 机器人的软件架构,特别是如何通过编程接口与其交互,是进行机器人开发的核心。本节将剖析 G1 …...
Redis在SpringBoot中的使用
在SpringBoot项目中使用redis存储数据作为字典 本项目使用jdk1.8 一、添加依赖 <!-- spring boot redis缓存引入 --> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId>…...
SuperMap GIS基础产品FAQ集锦(20250421)
一、SuperMap iDesktopX 问题1:iDesktopX怎么根据对数据集中的每条记录进行批量布局出图? 11.3.0 【解决办法】打开地图系列设置功能,勾选启用并设置索引地图,索引图层和索引字段等参数,打印地图册,设置输出路径&am…...
Linux学习笔记2
1.man man指令相当于一个在线手册 使用q可以退出指令运行 例如,使用 man ls 指令可以得到以下运行结果: 在查找的时候还可以使用数字,使用 man man 指令,对应每个数字所表示的内容: 在Linux下,一切皆是文件…...
电脑安装adb并且连接华为手机mate60pro后查看设备
1.下载adb工具 下载地址: https://developer.android.google.cn/tools/releases/platform-tools?hlzh-cn#downloads 根据需要下载自己系统需要的安装包 下载后解压 2.配置adb工具环境变量 添加ADB_HOME D:\softwares\platform-tools-latest-windows\platform-…...
EAL4+与等保2.0:解读中国网络安全双标准
EAL4与等保2.0:解读中国网络安全双标准 在当今数字化时代,网络安全已成为各个行业不可忽视的重要议题。特别是在金融、政府、医疗等领域,保护信息的安全性和隐私性显得尤为关键。在中国,EAL4和等级保护2.0(简称“等保…...
树莓派学习专题<8>:使用V4L2驱动获取摄像头数据--获取摄像头支持的分辨率
树莓派学习专题<8>:使用V4L2驱动获取摄像头数据--获取摄像头支持的分辨率 1. 获取摄像头支持的分辨率2. 代码分析3. 树莓派实测 1. 获取摄像头支持的分辨率 使用如下代码获取摄像头支持的输出分辨率。 struct v4l2_frmsizeenum stFrameSize …...
CSS预处理器对比:Sass、Less与Stylus如何选择
引言 CSS预处理器已成为现代前端开发的标准工具,它们通过添加编程特性来增强纯CSS的功能,使样式表更加模块化、可维护且高效。在众多预处理器中,Sass、Less和Stylus是三个最流行的选择,它们各自拥有独特的语法和功能特点。本文将深…...
Vue3集成sass
安装依赖 pnpm add -D sass-embedded配置全局变量 新建文件 src/styles/variables.scss配置Vite 修改 vite.config.ts variables.scss $base-color: bluevite.config.ts // https://vite.dev/config/ export default defineConfig({plugins: [vue(),],resolve: {alias: {:…...
超越Dify工作流:如何通过修改QwenAgent的Function Call及ReAct方法实现对日期时间的高效意图识别
在构建复杂的AI应用时,意图识别是一个至关重要的环节。传统上,许多开发者会使用Dify工作流来完成这一任务,但在处理复杂意图时,这种方法往往需要大模型进行多级反复识别,从而带来较高的时间成本。 本文将介绍如何通过修改QwenAgent框架中的FnCallAgent和ReActChat类,实现…...
Lua 第8部分 补充知识
8.1 局部变量和代码块 Lua 语言中的变量在默认情况下是全局变量 ,所有的局部变量在使用前必须声明 。 与全局变量不同,局部变量的生效范围仅限于声明它的代码块。一个代码块( block )是一个控制结构的主体,或是一个函…...
Lua 第7部分 输入输出
由于 Lua 语言强调可移植性和嵌入性 , 所以 Lua 语言本身并没有提供太多与外部交互的机制 。 在真实的 Lua 程序中,从图形、数据库到网络的访问等大多数 I/O 操作,要么由宿主程序实现,要么通过不包括在发行版中的外部库实现。 单就…...
Java 中 == 和 equals() 的区别
1. 运算符 是 Java 中的比较运算符,用于比较两个变量的值是否相等,但具体行为取决于变量的类型: 类型 比较的内容基本类型直接比较值是否相等(如 int a 5; int b 5; a b 返回 true)引用类型比较内存地址&#x…...
Redis新节点加入集群会发生什么(面试题)
新加入主节点:会发生槽位数据重新分配迁移, 新加入从节点,会发生主从同步,全量同步和增量同步 当一个新节点加入 Redis 集群时,会触发一系列操作以确保集群的稳定性和数据的一致性。以下是新节点加入 Redis 集群时的详…...
dmncdm达梦新云缓存数据库主从集群安装部署详细步骤说明
dmncdm达梦新云缓存数据库主从集群安装部署详细步骤说明 1 环境介绍2 安装部署dmncdm2.1 196部署cdm环境2.2 197部署cdm环境2.3 190部署cdm环境 3 主备集群/主从集群配置4 部署主备集群/主从集群5 部署日志6 更多达梦数据库全方位指南:安装 优化 与实战教程 1 环境介绍 cpu x8…...
docker容器,mysql的日志文件怎么清理
访问问题 你的问题是因为在当前路径 /home/ictrek/data/ragflow-mysql 下没有名为 data 的子目录。以下是详细分析和解决方法: 错误原因 路径不存在 当前目录 /home/ictrek/data/ragflow-mysql 下没有名为 data 的子目录,执行 cd data/ 时会报错 No suc…...
kafka auto.offset.reset详解
在 Kafka 中,auto.offset.reset latest 的含义及行为如下: 1. 核心定义 当消费者组首次启动或无法找到有效的 offset(例如 offset 过期、被删除或从未提交)时,消费者会从分区的最新位置…...
设备制造行业如何避免项目管理混乱?
项目常因进度延误、成本超支或部门协作不畅而陷入混乱? 这不仅拖累项目交付,还可能损害客户信任和企业利润。设备制造行业的项目管理复杂多变,从需求获取到生产交付再到售后运维,每一个环节都可能成为效率的瓶颈。 如何破解这一…...
kubernetes》》k8s》》删除命名空间
使用 kubectl delete ns 命名空间 --force --grace-period0 如果还删除不掉 需要 kubectl get namespace 命名空间 -o json > x.json vim x.json kubectl replace --raw “/api/v1/namespaces/命名空间/finalize” -f ./x.json...
【深度学习新浪潮】新视角生成的研究进展调研报告(2025年4月)
新视角生成(Novel View Synthesis)是计算机视觉与图形学领域的核心技术,旨在从单张或稀疏图像中生成任意视角的高保真图像,突破传统多视角数据的限制,实现对三维场景的自由探索。作为计算机视觉与图形学的交叉领域,近新视角生成年来在算法创新、应用落地和工具生态上均取…...
55、Spring Boot 详细讲义(十一 项目实战)springboot应用的登录功能和权限认证
项目文档:springboot应用的登录功能和权限认证 一、项目概述 1. 项目简介 本项目是在一个基于Spring Boot的Web应用中实现登录功能和权限认证。要求实现登录功能,用户登录成功以后,会给前台返回当前登录用户可以访问的权限菜单,比如超级管理员可以访问所有权限,产品管理…...
react 父子组件通信 子 直接到父, 父 forwardref子
React核心概念:单向数据流(Unidirectional Data Flow) React 中数据的流动像瀑布一样,只能从上层组件(父组件)流向下层组件(子组件)。 子组件无法直接反向修改父组件的数据&#x…...
基于TCP的协议
目录 TCP 基于TCP的应用层协议: TCP的工作方式 TCP TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层协议。它为应用层提供了一个可靠的端到端的数据传输服务。再TCP/IP模型中,TCP位于传输层,负责再…...
性能比拼: Go vs Java
本内容是对知名性能评测博主 Anton Putra Go (Golang) vs Java: Performance Benchmark 内容的翻译与整理, 有适当删减, 相关指标和结论以原作为准 在本视频中,我们将比较 Go 和 Java。 我们将基于 Golang 的 Fiber 框架和 Java 的 Spring Boot 创建几个简单的应用…...
【Spring】单例作用域下多次访问同一个接口
在Spring框架中,Controller和Service的Bean默认都是单例(Singleton)的。在多个请求同时访问Controller时,Service的Bean调用情况如下: 1. 核心机制 单例Bean:Spring容器为每个Bean定义(如Serv…...
数据库介绍
1、什么是数据库 数据库是一个“广义的概念" 1. 表示一门学科 2. 表示一类软件,管理数据的软件 3. 表示某一个具体的数据库软件 4. 表示部署了某个数据库软件的主机(电脑) 本专栏介绍的是具体的数据库软件:MySQL 数据库软件的主要功能是对数据的增删…...
Spring XML 配置
Spring XML 配置是 Spring Framework 的传统配置方式,通过 XML 文件定义 Bean、依赖注入、AOP 等核心功能。以下是详细的 Spring XML 配置解析: 一、基础配置 1. XML 配置文件结构 <?xml version"1.0" encoding"UTF-8"?> …...
AI数字人:品牌营销的新宠与增长密码(6/10)
摘要:AI数字人凭借低成本、高可控性与强互动性等优势,正成为品牌营销新宠。通过技术驱动,AI数字人从虚拟形象发展为智能交互的数字化身,广泛应用于直播、客服、内容生产等营销场景,助力品牌提升营销效果与用户互动体验…...
CentOS笔记本合上盖子不休眠
通过修改 /etc/systemd/logind.conf 文件中的 HandleLidSwitch 和 HandleLidSwitchDocked 设置为 ignore,可以实现合上笔记本盖子时不休眠的效果。如果有其他电源管理工具或桌面环境的设置干扰,也需要一并调整。 // 切换到root用户 su root// logind.co…...
Vue.js 之 `v-for` 命令详解
Vue.js 之 v-for 命令详解 在 Vue.js 中,v-for 是一个非常强大的指令,用于遍历数组或对象中的数据,并渲染相应的 DOM 元素。无论是在列表展示、表单生成还是动态组件加载中,v-for 都发挥着重要作用。本文将详细介绍 v-for 的用法…...
Linux命令-pidstat
pidstat命令是一个用于监控系统中各个进程活动的性能监控工具。它能够实时输出每个进程的 CPU、内存、I/O 等关键性能指标。以下是关于 pidstat 命令的详细介绍: 语法 pidstat [选项] [时间间隔] [次数]常用选项 -h 或 --help :显示帮助信息。 -v &…...
map和set
1.序列式容器和关联式容器 在认识map和set之前,关于容器,有两个重要的分类 序列式容器关联式容器 序列式容器:按照元素插入的顺序保存数据,关注元素的顺序和位置,因为逻辑结构为线性序列的数据结构,两个位…...
CentOS 6.9 安装 Zabbix 3.0 详细教程
一、引言 在 Linux 环境下,有许多实用的系统监控软件,如 Nagios、Cacti、Zabbix、Monit等。这些开源软件能帮助我们更好地管理机器,及时发现问题并警告系统维护人员。今天我们将重点研究 Zabbix,使用它的目的是为了更好地监控MySQ…...
通俗的理解TCP的三次握手四次挥手
前言 本文是博主根据自身理解,尽量用最通俗的形式解释TCP的三次握手四次挥手。 一、三次握手:为什么不是两次或四次? 1. 三次握手过程 SYN:客户端发送SYN1, seqx(我要连接)SYNACK:服务器回复…...
【Python进阶】正则表达式实战指南:从基础到高阶应用
目录 前言技术背景与价值当前技术痛点解决方案概述目标读者说明 一、技术原理剖析核心概念图解核心作用讲解关键技术模块说明技术选型对比 二、实战演示环境配置要求核心代码实现案例1:邮箱格式验证案例2:提取电话号码案例3:替换敏感信息 运行…...
linux下内存地址数学运算
如下代码计算地址并16字节对齐: char* buffer (char*)malloc(a3 0x1000);unsigned long long tmp (((unsigned long long)buffer 0x10) & 0xffffffffffffff00);char* buf (char*)tmp;假如把地址当作整数,加减程序运算,直接转换是不行…...
考研单词笔记 2025.04.22
abuse v/n滥用,妄用,虐待,伤害 adopt v采用,采纳,收养,领养,正式通过,批准 apply v应用,运用,申请,适用,有效 deploy v有效利用&am…...
JVM虚拟机-类加载器、双亲委派模型、类装载的执行过程
一、什么是类加载器,类加载器有哪些 我们目前要讲的就是类加载子系统,主要作用是将java源码编译为class字节码文件后装载到运行时数据区,运行时数据区就可以去分配内存再通过执行引擎来执行java代码。 启动类加载器(也称引导类加载器)&…...
神经网络的 “成长密码”:正向传播与反向传播深度解析(四)
引言 在神经网络的神秘世界里,正向传播和反向传播是驱动模型学习和进化的核心机制。它们如同神经网络的 “左右脑”,正向传播负责信息的前向流动与初步处理,反向传播则通过优化权重参数来提升模型性能,二者相辅相成,共…...
激活函数:神经网络的 “魔法开关”,开启智能之门(三)
引言 在神经网络的复杂架构中,激活函数扮演着至关重要的角色,堪称神经网络的 “魔法开关”。它赋予了神经网络强大的能力,让其能够处理各种复杂的任务。本文将深入剖析激活函数的重要性、引入原因、常见类型以及选择策略,并针对面…...
服装印花/印烫环节计算机视觉应用设计方案
服装印花/印烫环节计算机视觉应用设计方案 一、引言 随着消费者对服装个性化、多样化需求的增加,服装印花/印烫环节作为服装生产中的重要一环,其质量和效率直接影响到产品的竞争力和市场占有率。传统的服装印花/印烫环节存在以下痛点: 人为…...
vue3:十一、主页面布局(修改左侧导航条的样式)
一、样式 1、初始样式 2、 左侧导航栏搭建完成样式 二、实现 1、设置左侧导航栏底色 (1)去掉顶部和左侧导航栏的底色 初始页面效果 顶部与左侧底色样式 将代码中与顶部与左侧的样式删掉 移除后页面效果 加入设定背景色 #f4f6f9 加入底色后颜色展示 (2)去除菜单项底色 初…...
Sentinel源码—8.限流算法和设计模式总结二
大纲 1.关于限流的概述 2.高并发下的四大限流算法原理及实现 3.Sentinel使用的设计模式总结 3.Sentinel使用的设计模式总结 (1)责任链模式 (2)监听器模式 (3)适配器模式 (4)模版方法模式 (5)策略模式 (6)观察者模式 (1)责任链模式 一.责任链接口ProcessorSlot 二.责…...