【web靶场】之upload-labs专项训练(基于BUUCTF平台)
前言
该靶场,是通过平台BUUCTF在线评测中的靶场进行的,基于linux
搭建的
当然若是想要该靶场,可以采用github
上的醒目,点击后面文字即可访问c0ny1/upload-labs: 一个想帮你总结所有类型的上传漏洞的靶场
或者本人分享在网盘中,可通过链接https://pan.quark.cn/s/fe695fdbcbfd
下载其中的upload-labs
upload-labs使用
pass-01
打开靶场,让我们上传图片,任务是让上传一个webshell
,因为靶场是PHP搭建,所以这里使用最简单的webshell
,一句话木马

直接上传shell.php测试,发现有提示
查看html的form表单,是否只有前端验证,发现提交给一个函数,说明是前端验证的
在前端中搜索有无这个函数,发现有这个函数,那么就可以把浏览器设置成不加载js资源,使得这个函数失效
刷新页面,再次上传


这里就已经上传到服务器中,可以使用第三方工具进行连接,如蚁🗡

可以查看文件等操作,到这里说明成功拿到网站的某个权限了

Pass-02
打开后直接上传shell.php测试,发现提示

查看是否有前端js的影响,发现虽然有函数的影响,但是在这里直接搜索,已经搜索不到,验证不在浏览器的前端了,在后端的验证,产生数据包,使用burpsuit或者yakit进行抓取

为什么上传不了呢,最后要上传的是脚本文件,也就是,以这里来说,上传的文件要是脚本文件才会被执行。如果是图片的话,数据包的形式是怎么样的,这里再抓取一个图片的数据包进行对比

对比发现filename与content-type不一样,文件名这个肯定不一样,主要是就是content-type了,这个可以上网查,文件类型的不同,这个处理也会不一样的。那么这里抓取包的时候,把content-type修改,会不会被识别成图片,然后上传呢。这里只对content-type进行验证

转发修改的数据包后,脚本上传成功


这里就已经成功
Pass-03
直接上传php文件

抓取数据包进行修改content-type的值

但是还是提示,不允许上传这几个脚本文件,说明设置了黑名单

想到他设置黑名单,但是有的脚本语言有扩展名,不只只有本来的一种形式,这里如php
,有很多。但是这个需要服务器开启了对应的解析,不然这个也是没有作用,所以这里需要一个个试
以apache
服务器为例,需要把这个添加AddType application/x-httpd-php .php .phtml .phps .php5 .pht
那么才会解析这加的几种文件类型

修改其中的一个扩展名,上传成功

并且,开链接后,也是以脚本文件去处理的,代码可执行
Pass04
这里用到.htaccess
文件,这里因为发现基本上所有的脚本文件都被拉黑了,所以这个文件若没有,则可以上传这个文件,来让上传的图片作为脚本执行。
.htaccess
文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过.htaccess
文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。
.htaccess
文件(或者”分布式配置文件”)提供了针对每个目录改变配置的方法,即在一个特定的目录中放置一个包含指令的文件,其中的指令作用于此目录及其所有子目录但是很重要的、需要注意的是,其上级目录也可能会有.htaccess
文件,而指令是按查找顺序依次生效的,所以一个特定目录下的.htaccess
文件中的指令可能会覆盖其上级目录中的.htaccess
文件中的指令,即子目录中的指令会覆盖父目录或者主配置文件中的指令。
文件所在的目录及其所有子目录,若要启动配置文件,我们需要在服务器的主配置文件将 AllowOverride 设置为 All
AllowOverride All #启动.htaccess文件的使用在.htaccss文件添加下面的语句即可解析<FilesMatch "创建的含有脚本文件的图片">
SetHandler application/x-httpd-php
</FilesMatch>
如:
<FilesMatch "1.jpg">
SetHandler application/x-httpd-php
</FilesMatch>或者添加,是把.jpg映射成脚本文件
AddType application/x-httpd-php .jpg
为什么确定是apache,然后使用.htaccess
呢,因为在打开一个不存在的链接时,报出的错误

然后这里需要注意,apache中间件的解析后缀,是从右往左,若是碰到不能解析的或不知道的,会继续往左,直到碰到apache可解析的,这时文件就确定了apache解析类型
如:1.jpg.php.ccccc apache从右解析,发现不知道ccccc是什么继续往左,碰到php,可以解析,于是最终apache解析的文件是1.jpg.php
这里有两种解法,不过这里先把脚本换成phpinfo(),这样不需要每次连接来确定是否解析了
1、修改后缀名
抓取数据包,把后缀名修改为apache不知道,这样,因为文件的特性,不能判断是php脚本文件,而且最终解析时,还会以php脚本处理


2、 利用.htaccess来把含有php语言的图片,能够作为脚本处理
创建带有脚本的图片,并创建.htaccess文件,并加入语句
<FilesMatch "phpinfo.jpg">
SetHandler application/x-httpd-php
</FilesMatch>或者
AddType application/x-httpd-php .jpg

上传.htaccess文件

提示403,无权访问,但是上传成功

再次上传图片,可以看到文件依然是jpg格式,但是以脚本解析了。

Pass05
上传phpinfo文件后,以之前去在后缀名加ccc,上传成功,但是打开链接发现,这次是把php去除了,也就是进行了文件名中的字符匹配。
不知道过滤的严谨性,先把php大小写,试试能不能绕过,发现可以

Pass06
空格绕过,在文件后缀名处,通过抓包加上空格,然后即可上传成功,不过因为上传是上传了,但是访问的时候没有,不知道什么原因
Pass07
通过抓包,在后缀名php后,加上.
即可绕过,因为这种不是正则表达式的过滤,是完整的名称,所以这种特殊字符可以绕过


Pass08
这关其实是利用 windows系统一个命名特性,系统如果文件名+"::$DATA"会把之后的数据当成文件流处理,不会检测后缀名,且保持之前的文件名,他的目的就是不检查后缀名
上传文件名为:测试.php::$DATA系统会自动去掉末尾的变成"测试.php或者xxx.php"
所以这里注意是windows系统,我这里靶场是在linux,所以这个不行
Pass09
这关其实是代码的一个问题,看代码可以看出它只去掉一次空格和点,举个例:测试.php. . 最后代码执行完后变成 测试.php. 这个代码漏洞在之前的关卡大多少也是可以用到这个漏洞过关的,这个靶场本身就是学习用的所以还是每个关卡学习一个方法最好


Pass10
移除php等脚本后缀名称,如果这里他只进行了一次移除,那么就可以采用双写的方法绕过


Pass11
这关就可以用 %00截断来绕过它是地址上的截断,但注意是get请求和版本 PHP版本得小于5.3版本才能用这个%00截断,如果版本没问题没成功可能是编码的问题 例如: hanniu8.com/up/r.php%00cesho.gif 遇到 后会将 %00后面的去掉,变成: hanniu8.com/up/r.php

这里靶场问题,可能是php版本,无法进行
Pass12
与11一样,不过这里是在post里截断,条件与上面一样,php的版本问题
Pass13
首先要制造图片马

然后直接上传即可,但是是jpg格式,无法以脚本运行
但是给了一个文件包含漏洞的文件

点击后即可有php文件

利用这个文件,来使图片马生效

使用软件连接webshell

Pass14
制造图片马,这种制造是以真实的图片结合起来的,所以可以通过大部分的文件头检测

和13一样,直接上传,然后利用文件包含漏洞即可
Pass15
与上面一样,先生成
Pass16
首先上传图片,经测试,只有gif文件可以上传成功,从代码审计的话,也能看出来。
然后制造gif的图片马,直接上传,但是上传后的图片,却不能从文件包含漏洞那里连接第三方软件了,猜测图片二次渲染时,可能把代码去掉了,把上传的图片下载,然后与原始图片进行十六进制的比较,在两个图片同样的地方,插入脚本语言,进行测试

相同的地方,插入<?php phpinfo();?>
,重新上传,然后就可以看到

Pass17
move_uploaded_file()函数将上传文件临时保存,再进行判断,如果不在白名单里则unlink()删除,在的话就rename()重命名,所以这里存在条件竞争。由此也就产生了漏洞,会有一个短暂的时间将我们上传的webshell存储在目录下,但是这个时间相当相当短暂,以至于,你打开上传目录,点击上传文件,你连影子都看不到就已经没了,所以这个时候我们先抓包,然后发送到intruder模块。进行无限制的请求,总会有一个可以。
一个intruder模块中的请求用于发送php文件到服务器中,另一个intruder模块用于请求上传之后的php文件地址
if(move_uploaded_file($temp_file, $upload_file)){if(in_array($file_ext,$ext_arr)){$img_path = UPLOAD_PATH . '/'. rand(10, 99).date("YmdHis").".".$file_ext;rename($upload_file, $img_path);$is_upload = true;}else{$msg = "只允许上传.jpg|.png|.gif类型文件!";unlink($upload_file);}}else{$msg = '上传出错!';}
}
Pass18
基本上和17一样,都是条件竞争
是利用Apache的解析漏洞,不管最后后缀为什么,只要是.php.*结尾,就会被Apache服务器解析成php文件 提交类似webshell.php.7z的文件,配合条件竞争上传,同17
Pass19
可以使用%00截断,不过和前面一样,php的版本,因环境,我这里不行


move_uploaded_file()函数会忽略掉文件末尾的/. 所以上传文件名为webshell.php/.
即可绕过

Apache文件解析漏洞同样可以利用,参考Pass-19

.空格同样可以绕过,参考Pass-05

pass20
数组绕过,参考链接Upload-labs Pass-20 数组绕过_uploadlabs baynk-CSDN博客
保存名称可自己设定,但是一定要与下面一致

原数据包

修改后的,可以上传成功的

结果,这里的链接是后来的图,正常上面成功的话,就是/upload/20.php.

相关文章:
【web靶场】之upload-labs专项训练(基于BUUCTF平台)
前言 该靶场,是通过平台BUUCTF在线评测中的靶场进行的,基于linux搭建的 当然若是想要该靶场,可以采用github上的醒目,点击后面文字即可访问c0ny1/upload-labs: 一个想帮你总结所有类型的上传漏洞的靶场 或者本人分享在网盘中&a…...
HTML5 Audio(音频)
HTML5 Audio(音频) HTML5 的 <audio> 元素是一个重要的革新,它为网页开发者提供了一种简单的方式来嵌入音频内容。在这篇文章中,我们将探讨 HTML5 <audio> 元素的特性、用法、浏览器兼容性,以及如何通过 JavaScript 和 CSS 对其进行控制和定制。 1. HTML5 <…...
go语言学习
字典(映射)类型 (Map) 以键值对为元素去存储元素 Map的特点: 键不能重复。 键必须是(int,bool,float,string,array)这些可以哈希的 (如果自定义类型想要作为键,需要自…...
OpenCV相机标定与3D重建(53)解决 Perspective-3-Point (P3P) 问题函数solveP3P()的使用
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 根据 3 个 3D-2D 点对应关系找到物体的姿态。 cv::solveP3P 是 OpenCV 中的一个函数,用于解决 Perspective-3-Point (P3P) 问题。该问…...
【西北工业大学主办 | EI检索稳定 | 高H值专家与会报告】2025年航天航空工程与材料技术国际会议(AEMT 2025)
2025 年航天航空工程与材料技术国际会议(AEMT 2025)将于2025年2月28日至3月2日在中国天津召开。本届会议由西北工业大学主办,由北京航空航天大学、北京理工大学作为支持单位加入,AEIC 学术交流中心协办。 AEMT 2025 旨在汇聚来自全…...
卷积神经02-CUDA+Pytorch环境安装
卷积神经02-CUDAPytorch环境安装 在使用Python进行pytorch的使用过程中遇到各种各样的版本冲突问题,在此进行记录 0-核心知识脉络 1)根据自己电脑的CUDA版本安装对应版本的Pytorch,充分的使用GPU性能2)电脑要先安装【CUDA ToolKi…...
监听器与RBAC权限模型
目录 1、监听器ServletContextListener1.1、主要用途1.2、接口方法1.3、实现步骤1.4、示例代码1.5、使用场景 2、德鲁伊数据源2.1、主要特性2.2、配置 DruidDataSource 3、RBAC权限模型3.1、什么是RBAC3.2、RBAC 的核心概念3.3、RBAC 的优势3.4、RBAC 的实现步骤 1、监听器Serv…...
根据浏览器的不同类型动态加载不同的 CSS 文件
实现思路: 安装并引入 vue 项目相关的 CSS 文件:首先确保你有为不同浏览器准备了不同的 CSS 文件(例如,style-chrome.css,style-firefox.css,style-ie.css 等)。 在 index.js 中根据浏览器类型…...
[ComfyUI]接入Google的Whisk,巨物融合玩法介绍
一、介紹 前段时间,谷歌推出了一个图像生成工具whisk,有一个很好玩的图片融合玩法,分别提供三张图片,就可以任何组合来生成图片。 最近我发现有人开发了对应的ComfyUI插件,对whisk做了支持,就来体验了下&#…...
3DGabor滤波器实现人脸特征提取
import cv2 import numpy as np# 定义 Gabor 滤波器的参数 kSize 31 # 滤波器核的大小 g_sigma 3.0 # 高斯包络的标准差 g_theta np.pi / 4 # Gabor 函数的方向 g_lambda 10.0 # 正弦波的波长 g_gamma 0.5 # 空间纵横比 g_psi np.pi / 2 # 相位偏移# 生成 Gabor 滤…...
一文流:Maven精讲
一文流系列是作者苦于技术知识学了-忘了,背了-忘了的苦恼,决心把技术知识的要点一笔笔✍️出来,一图图画出来,一句句讲出来,以求刻在🧠里。 该系列文章会把核心要点提炼出来,以求掌握精髓&#…...
10.STM32F407ZGT6-内部温度传感器
参考: 1.正点原子 前言: 本笔记的主要目的和意义就是,再次练习ADC的使用。 32.1 内部温度传感器简介 STM32F407 有一个内部的温度传感器,可以用来测量 CPU 及周围的温度(TA)。对于STM32F407 系列来说,该温度传感器在…...
软件测试预备知识④—NTFS权限管理、磁盘配额与文件共享
在软件测试的实际环境搭建与管理过程中,了解和掌握NTFS权限管理、磁盘配额以及文件共享等知识至关重要。这些功能不仅影响系统的安全性和稳定性,还对测试数据的存储、访问以及多用户协作测试有着深远的影响。 一、NTFS权限管理 1.1 NTFS简介 NTFS&am…...
Harry技术添加存储(minio、aliyun oss)、短信sms(aliyun、模拟)、邮件发送等功能
Harry技术添加存储(minio、aliyun oss)、短信sms(aliyun、模拟)、邮件发送等功能 基于SpringBoot3Vue3前后端分离的Java快速开发框架 项目简介:基于 JDK 17、Spring Boot 3、Spring Security 6、JWT、Redis、Mybatis-P…...
科研绘图系列:R语言绘制Y轴截断分组柱状图(y-axis break bar plot)
禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍特点意义加载R包数据下载导入数据数据预处理画图输出总结系统信息介绍 Y轴截断分组柱状图是一种特殊的柱状图,其特点是Y轴的刻度被截断,即在某个范围内省略了部分刻度。这种图表…...
省森林防火应急指挥系统
森林防火形势严峻 我国森林防火形势十分严峻,森林火灾具有季节性强、发现难、成灾迅速等特点,且扑救难度大、影响范围广、造成的损失重。因此,构建森林防火应急指挥系统显得尤为重要。 系统建设模式与架构 森林防火应急指挥系统采用大智慧…...
HTML 迷宫游戏
HTML 迷宫游戏 相关资源文件已经打包成压缩文件,可双击index.html直接运行程序,且文章末尾已附上相关源码,以供大家学习交流,博主主页还有更多Python相关程序案例,秉着开源精神的想法,望大家喜欢࿰…...
【面试题】技术场景 4、负责项目时遇到的棘手问题及解决方法
工作经验一年以上程序员必问问题 面试题概述 问题为在负责项目时遇到的棘手问题及解决方法,主要考察开发经验与技术水平,回答不佳会影响面试印象。提供四个回答方向,准备其中一个方向即可。 1、设计模式应用方向 以登录为例,未…...
Autoencoder(李宏毅)机器学习 2023 Spring HW8 (Boss Baseline)
1. Autoencoder 简介 Autoencoder是一种用于学习数据高效压缩表示的人工神经网络。它由两个主要部分组成: Encoder 编码器将输入数据映射到一个更小的、低维空间中的压缩表示,这个空间通常称为latent space或bottleneck。 这一过程可以看作是数据压缩,去除冗余信息,仅保留…...
Python的循环
Python的循环 Python的循环有两种,分别是for…in循环和while循环。 for…in 循环 假设我们要循环输出一个列表里的元素: names [张三,李四,王五] for name in names:print(name)执行这段代码后,会依次打印names的每一个元素:…...
车联网安全--TLS握手过程详解
目录 1. TLS协议概述 2. 为什么要握手 2.1 Hello 2.2 协商 2.3 同意 3.总共握了几次手? 1. TLS协议概述 车内各ECU间基于CAN的安全通讯--SecOC,想必现目前多数通信工程师们都已经搞的差不多了(不要再问FvM了);…...
Git | git stash命令详解
关注:CodingTechWork 引言 在日常开发中,使用Git版本控制系统时,可能会遇到需要暂时中断当前工作,去处理其他任务的情况。这时,如果直接切换分支,可能会导致当前的修改未提交而丢失或需要暂时保存修改的状…...
LeetCode hot100-100
287. 寻找重复数 给定一个包含 n 1 个整数的数组 nums ,其数字都在 [1, n] 范围内(包括 1 和 n),可知至少存在一个重复的整数。假设 nums 只有 一个重复的整数 ,返回 这个重复的数 。你设计的解决方案必须 不修改 数组…...
AWS re:Invent 2024 现场实录 - It‘s all about Scale
时隔五年,再度造访美国,也是同样的主题,参加在拉斯维加斯举行的 AWS re:Invent 大会。 会场 从 2012 起第一届开始,每年的 re:Invent 大会都放在拉斯维加斯,主会场也都放在威尼斯人酒店 (Venetian)。有小伙伴好奇这背…...
qt-C++笔记之自定义继承类初始化时涉及到parents的初始化
qt-C笔记之自定义继承类初始化时涉及到parents的初始化 code review! 参考笔记 1.qt-C笔记之父类窗口、父类控件、对象树的关系 2.qt-C笔记之继承自 QWidget和继承自QObject 并通过 getWidget() 显示窗口或控件时的区别和原理 3.qt-C笔记之自定义类继承自 QObject 与 QWidget …...
[微服务]redis数据结构
介绍 我们常用的Redis数据类型有5种,分别是: StringListSetSortedSetHash 还有一些高级数据类型,比如Bitmap、HyperLogLog、GEO等,其底层都是基于上述5种基本数据类型。因此在Redis的源码中,其实只有5种数据类型。 …...
android四大组件之一——Service
目录 一、Service概述 二、生命周期 三、权限 四、进程生命周期 五、组件与绑定Service的通信方式 1.扩展 Binder 类 2.Messenger信使 3.AIDL 七、总结 场景使用区别 一、Service概述 Service 是应用组件,代表一个应用的长时间后台运行的操作࿰…...
PythonOpenCV图片识别
在windows下面,使用python opencv 进行识别,获取到坐标。 依赖安装: pip install opencv-python pip install numpy pip install pyautogui pip install pywin32代码: import cv2 import numpy as np import pyautogui import o…...
ASP.NET Core 中使用 Cookie 身份验证
在 ASP.NET Core 中使用 Cookie 身份验证,通常是为了实现用户的登录和授权。以下是配置 Cookie 身份验证的步骤。 1. 安装必要的 NuGet 包 首先,确保项目中包含 Microsoft.AspNetCore.Authentication.Cookies 包。你可以通过 NuGet 包管理器或命令行安…...
2021 年 3 月青少年软编等考 C 语言五级真题解析
目录 T1. 红与黑思路分析T2. 密室逃脱思路分析T3. 求逆序对数思路分析T4. 最小新整数思路分析T1. 红与黑 有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上,只能向相邻的黑色瓷砖移动。请写一个程序,计算你总共能够到达多少块黑色的…...
LeetCode带环链表题深度解析(是否带环、寻找环的入口结点)
目录 一、链表是否带环 常规方法解析: 拓展问题:那么fast一次走三步,走四步...是否还会相遇? fast :3 ,low :1 fast :4 ,low :1 总结: 二、…...
Redis--20--大Key问题解析
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 大Key问题1.什么是 Redis 大 Key?在 Redis 中,大 Key 是指单个键值对的数据量非常大,可能包含大量数据。 2. Redis大Key的危害3.…...
如何使用Yarn Workspaces实现Monorepo模式在一个仓库中管理多个项目
Yarn Workspaces是Yarn提供的一种依赖管理机制,它支持在单个代码仓库中管理多个包的依赖。这种机制非常适合需要多个相互依赖的包的项目,能够减少重复依赖,加快依赖安装速度,并简化依赖管理。下面将详细介绍如何使用Yarn Workspac…...
测试ip端口-telnet开启与使用
前言 开发过程中我们总会要去测试ip通不通,或者ip下某个端口是否可以联通,为此我们可以使用telnet 命令来实现。 一、telnet 开启 可能有些人使用telnet报错,不是内部命令,可以如下开启: 1、打开控制面板ÿ…...
c#版本、.net版本、visual studio版本之间的对应关系
最近这几年一直没用过c#开发,都是从事Qt c开发工作,回想一下之前c#还要追溯到2019年,算算时间大概都已过去4,5年了,时间飞快。 2019真是个神奇的数字,vs2019是我用的时间最长的一个IDE,新冠起始…...
大语言模型训练
步骤 Self-Supervised Pre-Training,简称SPTSupervised Fine-Tuning,简称SFTLearning from Human Feedback,简称LfHF Self-Supervised Pre-Training 自监督预训练(Self-Supervised Pre-Training,简称SPT)…...
ElasticSearch | Elasticsearch与Kibana页面查询语句实践
关注:CodingTechWork 引言 在当今大数据应用中,Elasticsearch(简称 ES)以其高效的全文检索、分布式处理能力和灵活的查询语法,广泛应用于各类日志分析、用户行为分析以及实时数据查询等场景。通过 ES,用户…...
idea快捷键
IDEA常见快捷键 Ctrl A 全写 Ctrl C 粘贴 Ctrl V 复制 Ctrl F 搜索 Ctrl R 替换 Ctrl Z 撤销 Ctrl D 复制行 Ctrl X 删除行,并且被删除的行复制到剪贴板中 Ctrl Y 删除一行 Ctrl Shift Z 反撤销 IDEA重要快捷键 Ctrl / 单行注释&…...
2024年全国信息素养大赛-图形化编程-省赛-绘制正方和三角形
绘制正方和三角形 【编程实现】 使用自制积木,绘制正方形和三角形。 【具体要求】 *程序尽量简洁。 1.画出喜庆的红色图形。 2.先画正方形,再画三角形。 3.正方形和三角形不重叠。 4.正方形和三角形不超出背最中红框的范围。 题目程序演示可点击…...
二进制编码 和 Base64编码
我需要将音频数据存为字符串,不知道存为 二进制编码 和 Base64编码 以下内容来自 DeepSeek : 1. 二进制编码 优点: 高效:二进制编码直接存储原始数据,占用空间小,处理速度快。适合传输:在需要高效传输的…...
微信小程序防止重复点击事件
直接写在app.wpy里面,全局可以调用 // 防止重复点击事件preventActive(fn) {const self this;if (this.globalData.PageActive) {this.globalData.PageActive false;if (fn) fn();setTimeout(() > {self.globalData.PageActive true;}, 3000); //设置该时间内…...
Kafka集群安装
Apache kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,是消息中间件的一种,用于构建实时数据管道和流应用程序。 Kafka官网:http://kafka.apache.org/ 安装环境: Kafka集群环境搭建,依赖于zookeep…...
EXCEL: (二) 常用图表
10. 图表 134-添加.删除图表元素 图表很少是一个单独的整体,而是由十几种元素/对象拼凑出来的。 学习图表就是学习当中各类元素的插删改。 ①图表中主要元素的定义 图表上的一个颜色就是一个系列,每个系列都对应原数据中的一列/一行值数据。 每个系…...
系统日志优化---自定义springboot-starter日志组件供各个服务使用
在优化项目时发现各个微服务都有各自的接口调用日志逻辑,比如每个服务都定义一个aop类拦截,十分冗余,其实是可以做成starter被各个服务引用使用,前提要先了解一下springboot自动装配原理 创建springboot工程,如果是jdk…...
《GB50348-2018 安全防范工程技术标准》:安防工程的权威指南
《GB50348-2018 安全防范工程技术标准》:安防工程的权威指南 【下载地址】GB50348-2018安全防范工程技术标准分享 GB50348-2018 安全防范工程技术标准本仓库提供的是《GB50348-2018 安全防范工程技术标准》的高清电子版资源 项目地址: https://gitcode.com/Open-s…...
RabbitMQ高级篇
目录 确保发送者的可靠 为什么需要确保发送者的可靠性 RabbitMQ 的发送者重连机制配置 springAMQP实现发送者确认 MQ的可靠性 为什么需要实现MQ的可靠性? 数据持久化 Lazy Queue 核心思想 总结RabbitMQ 如何保证消息的可靠性 持久化 Lazy Queue 消息…...
任务调度系统Quartz.net详解2-Scheduler、Calendar及Listener
任务调度系统Quartz.net详解2-Scheduler、Calendar及Listener Scheduler 调度器scheduler是Quartz中的独立工作容器,所有的Trigger和Job都需要注册到scheduler中才能工作。我们可以通过SchedulerFactory来获取scheduler实例。如下: //1.获取默认的标准…...
服务器出现蓝屏现象的原因有什么?
当服务器定期出现蓝屏的现象,则会影响到企业业务的连续性,同时还可能会导致重要数据信息丢失和系统稳定性下降,是一种较为复杂的技术问题,本文就来探讨一下导致服务器出现蓝屏的原因都有什么。 服务器出现蓝屏有可能是硬件出现了故…...
IP 地址与蜜罐技术
基于IP的地址的蜜罐技术是一种主动防御策略,它能够通过在网络上布置的一些看似正常没问题的IP地址来吸引恶意者的注意,将恶意者引导到预先布置好的伪装的目标之中。 如何实现蜜罐技术 当恶意攻击者在网络中四处扫描,寻找可入侵的目标时&…...
探索数据存储的奥秘:深入理解B树与B+树
key value 类型的数据红黑树(最优二叉树,内存最优),时间复杂度:O(logn),调整方便;一个结点分出两个叉B树一个节点可以分出很多叉数据量相等的条件下:红黑树的层数很高&am…...