sql sql复习
虽然之前学习过sql,但由于重在赶学习进度,没有学扎实,导致自己刷题的时候有的地方还是模模糊糊,现在主要是复习,补一补知识点。
今日靶场:
NSSCTF
云曦历年考核题
在做题之前先回顾一下sql注入的原理,以便在做题的过程中更快的找到解题方法。
其实最简单粗暴的讲sql注入就是利用题目会把用户输入的语句加入SQL语句进行拼接,导致攻击者构造的恶意语句被迫执行,然后达到攻击者想要的目的。
SQL语句的结构
例如一个简单的SQL语句如下:
SELECT * FROM users WHERE username = 'admin' AND password = 'password';
这里就有两个用户注入点:两个单引号内的部分 'admin' 和 'password'
然后用户在admin处输入这个:
' OR '1'='1
上面的SQL语句就被改动了:
SELECT * FROM users WHERE username = '' OR '1'='1' AND password = 'password';
可以看到,OR '1'='1' 是一个永远为真的条件,这将导致查询返回所有用户的信息。
当然,在做CTF Web题的时候返回我们攻击者需要的信息是最好的事儿,因为这是目的。
但是题目当然不可能这么简单,一定会对我们的语句进行过滤、转义或者验证,此时页面就会出现报错,那也没关系,因为我们还是可以根据题目报错或者页面的响应然后对我们输入的语句进行校正,以达到在绕过限制的同时让它在SQL语句中被执行的目的。
会出现报错
比如在上面的例子中,SQL语句是这样的:
SELECT * FROM users WHERE username = 'admin' AND password = 'password';
当然了,刚刚是假设SQL语句就是那一句固定样式的情况,然而现实中很多题目肯定也不可能就那么一个固定的SQL语句,不然就一个固定样式多没意思。那还有些什么样式呢?比如双引号的:
SELECT * FROM users WHERE username = "admin" AND password = "password123";
那我们输入 ' OR '1'='1 肯定要报错的了,因为拼接进去这样:
SELECT * FROM users WHERE username = "' OR '1'='1" AND password = "password123";
" ' OR '1'='1" 这一堆妖魔鬼怪 OR '1'='1" 当然不符合SQL语法,此时页面一报错也可以知道原SQL语句的注入点闭合方式为 " " 这也是所说的判断闭合方式。
而刚刚假设的SQL语句也是固定为字符型注入的情况(这样说是因为数字值1加了引号如 '1'='1'后被字符串化了,此刻数字1变成了字符'1'),事实还有数字型注入,但数字型注入方式不用引号闭合,因此不用判断闭合方式。
不会出现报错
这种情况就只能看执行sql注入语句后的结果有没有达到目的了,没有达到目的是不会出现报错的
当然了,刚刚是假设SQL语句就是那一句固定样式的情况,然而现实中很多题目肯定也不可能就那么一个固定的SQL语句,不然就一个固定样式多没意思。那还有些什么样式呢?比如双引号的:
SELECT * FROM users WHERE username = "admin" AND password = "password123";
那我们输入 ' OR '1'='1 肯定要报错的了,因为拼接进去这样:
SELECT * FROM users WHERE username = "' OR '1'='1" AND password = "password123";
" ' OR '1'='1" 这一堆妖魔鬼怪 当然不符合SQL语法, 但也可以知道原SQL语句的注入点闭合方式为 " " 这也是所说的判断闭合方式。
做sql题步骤:
判断列数(order by) >>> 联合查询数据库名(用database()查table_schema) >>> 查表名(从table_schema中查table_name) >>> 查列名(从table_name中查column_name) >>> 查具体数据
NSSCTF:
【SWPUCTF 2021 新生赛】ez_sql
提示安全的传参即POST传参
得到一个假的flag
传参 1' 报错,看引号部分是字符型注入
把引号注释掉又恢复正常了
注意这里我发现注释符 --+ 和 -- 都被过滤掉了
诶嘿,在判断列数时发现我 order by 被它截断了
说明or被过滤了 ,而且,它给我空格也删了(过滤了)
那就要找绕过方法了
去网上找了一下
替换 order by 的,用 group by:
替换空格的,用 /**/ :
替换后继续查询,发现绕过
加第2列
3列
第4列就没有了
所以总的只有三列
接下来联合查询
结果 union 也被过滤了
双写union绕过
但是发现没有返回我想要的信息,这样的话就会想到之前的报错信息提到的LIMIT子句:
也就是说LIMIT是表示所在页数,这样的话我换一页试试:limit 1,1
哦豁,可以看到返回位数是第2列和第3列,但要注意的是第三列前提示的才是True flag,所以应该查询第3列
给 database() 换个位:
得到数据库名 NSS_db
接下来爆表名
说明又有字符被过滤了
仔细一看就是 information少了or嘛
进行双写绕过,但是发现语句最后被截断了,
欧欧欧原来是忘了加括号(加了括号才代表查询的是第3列的表名,和不加括号是完全不一样的)
加括号:
欧喉,返回长度超过一行
这个我熟啊,我记得是有这么个东西:
使用聚合函数 group_concat 来将多行数据合并为一行(用它包裹住table_name即可)
包裹执行
得到两个表名 NSS_tb users
接下来查列名
查具体数据
得到flag
ok,恭喜自己又掉进出题佬的圈套(提交了好几次发现还是不正确)
后来才意识到被骗了 ,true flag反而是false,而真正的flag应该在Flag:这一栏
emmm我真的是,怎么这么多坑
但是发现仅仅只替换为第2列回显时任然是一样的flag,可能是两列目录不一样,所以光换位还不行,需要换位重新做一遍。。
做就做谁怕谁
可以看到数据库名是一样的:
表名也是一样的 :
耶?怎么列名也一样??? :
这样的话就说明是目录查错了(flag根本不在flll444g目录下)
试试Secr3t
这次该对了吧 昂?
[LitCTF 2023]这是什么? SQL! 注一下!
搜什么
先注入万能密码试试
发现只是切换了页面,并没有报错或其他提示,说明是盲注
试了一些字符发现照样只是换了页面,没有进入,应该是有字符被过滤了
那就先注个简单点的1,再进行fuzz模糊测试判断一下哪些字符是被过滤了
进行爆破
好像看似也没过滤什么
结果搞了半天不是盲注,下滑鼠标发现SQL语句和回显
那这样就没什么难度了
注1看看
可以看到一个嵌套数组 ,正确排版应该是这样:
Array ([0] => Array ([username] => tanji[password] => OHHHHHHH)
)
这个可以不用管它,注意到包裹1的是六个括号(((((()))))),这样就需要把括号给闭合掉
没有结果了,加个注释符注释掉后面6个反括号又有结果了
(由于题目有稍不雅的图,被屏蔽了,所以改了截一半)
判断列数
第3列无结果,说明只有两列
联合查询
发现返回结果有点长,应该是id=1的值和联合查询均返回了,那把id=1的值个影藏掉,看着有点费眼睛(id=1改为-1)
这次就只返回联合查询的值了
继续查数据库名
注意到username是第1列返回,psassword是第2列返回
猜测flag应该在password下,所以数据库名查第2列
得到数据库名ctf
继续查表名
-1))))))union select 1,(select table_name from information_schema.tables where table_schema='ctf')#
得到表名users
接续查列名
但是查了好几次都是没有返回值
我还以为是过滤了column,但是测试过后发现并没有
再后来想到有可能列名比较多,不是没有返回值而是返回值太多导致无法显示,所以用group_concat来输出所有,然后的确出了很多列名
查询第一个数据,但发现是无用的flag
接下来这个奥:
查询所有数据库:
id=-1)))))) union select 1,schema_name from information_schema.schemata #
执行
我嘞个,有点多,还好吧,注意到ctftraining这个数据库
直接从头查询
又忘了group_concat
得到flag了吧终于
取数据!!!
特喵的,到这一步又忘了一个东西,虽然列名叫flag,但表中的字段可能包含数据库名而不仅仅是表名,所以应该差ctftraining.flag
最后终于是出flag了
云曦历年考核:
24年秋期末考
admin
开启题目是个登录界面:
提示查看普通用户
那就试试admin登录
出现 js 弹窗提示错误,说明这个这个账户已经存在
注意到有一个 sign up 的注册界面,那就先注册一个看能不能登录进去
设置账户名 adminin 密码为666
注册成功后登录
发现进来了 有一个按钮,但点了以后是一个假的flag
诶但是点完以后关闭了 js 弹窗时发现 URL 地址多了一个参数值 id=1
这个应该就是提示,因此直接利用参数 id 进行sql注入
传id=1跳转到假的flag html界面
加单引号报错,字符型注入,且闭合方式为单引号
加注释符--+,页面正常
说明上面用的这些符号都没被过滤,防止1的值覆盖查询结果,改为-1开始查询列数
才到第2列就不认识了,说明只有1列
联合查询
得到数据库名 TGlu
查表名
得到User和flag
但根据做题的经验来看,500分的题flag应该不会在flag目录下,直接用User查询列名
(或者说登录的sql注入题查询用户名和密码应该首选User或users目录)
看叭,得到用户名和密码的列名
接下来分别给它们爆出来就好了
先查用户名
可以看到有两个用户,而后面那个adminin明显是我们注册的,所以前面的admin就是管理员的
接下来查密码
不用说,666是我注册用的密码,所以前面那部分就是管理员的
现在就用管理员的账户和密码直接返回原页面登录即可到后台拿到flag
登录,get flag
相关文章:
sql sql复习
虽然之前学习过sql,但由于重在赶学习进度,没有学扎实,导致自己刷题的时候有的地方还是模模糊糊,现在主要是复习,补一补知识点。 今日靶场: NSSCTF 云曦历年考核题 在做题之前先回顾一下sql注入的原理&…...
初探 Skynet:轻量级分布式游戏服务器框架实战
在游戏服务器开发领域,高效、稳定且易于扩展的框架一直是开发者追求的目标。Skynet 作为一款轻量级、高性能的分布式游戏服务器框架,凭借其独特的设计理念和强大的功能,赢得了众多开发者的青睐 一.Skynet底层架构支持 1.Actor erlang 从语言…...
libarchive.so.19丢失
文章目录 绝对路径可以启动,相对路径不可以以绝对路径启动conda环境,运行python3.8(成功) 报错 Error while loading conda entry point: conda-libmamba-solver (libarchive.so.19: cannot open shared object file: No such file or directory) sudo a…...
vue-ganttastic甘特图label标签横向滚动固定方法
这个甘特图之前插件里,没有找到能固定label标签在屏幕上的办法,用css各种办法都没有实现,所以我我直接手写定位,用js监听滚动条滚动的距离,然后同步移动甘特图label标签,造成一种定位的错觉,以下…...
自动化 NuGet 包打包与上传:完整批处理脚本详解(含 SVN 支持)
在大型项目中,我们常常需要定期打包多个 .csproj 项目为 NuGet 包,并上传到私有 NuGet 服务。这篇文章分享一份实战脚本,支持以下自动化流程: 自动读取、更新 .csproj 文件中的 Version、PackageOutputPath 等节点; 自…...
Go语言空白导入的作用与用途
在 Go 语言中,导入包时前面加下划线 _ 是一种特殊的导入方式,称为 “空白导入” 或 “匿名导入”。 作用: 执行包的初始化(init 函数)但不直接使用包中的标识符 import _ "go.uber.org/automaxprocs" 表示你…...
实验六:按键模拟控制实现
FPGA序列检测器实验(远程实验系统) 文章目录 FPGA序列检测器实验(远程实验系统)一、数字电路基础知识1. 时钟与同步2. 按键消抖原理代码讲解:分频与消抖3. 有限状态机(FSM)设计代码讲解:状态机编码与转移4. 边沿检测与信号同步5. 模块化设计二、实验数字电路整体思想三…...
【愚公系列】《Manus极简入门》038-数字孪生设计师:“虚实映射师”
🌟【技术大咖愚公搬代码:全栈专家的成长之路,你关注的宝藏博主在这里!】🌟 📣开发者圈持续输出高质量干货的"愚公精神"践行者——全网百万开发者都在追更的顶级技术博主! …...
Linux重定向与缓冲区
目录 文件描述符的分配规则 重定向 使用 dup2 系统调用 FILE 文件描述符的分配规则 #include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h>int main() {int fd open("myfile", O_RDONLY);if(fd < 0){per…...
经典还原反应解析:Wolff-Kishner机制与黄鸣龙改进法
在有机化学发展史上记载的万余种经典反应中,当论及以科学家命名的标志性转化反应时,Wolff-Kishner-黄鸣龙还原反应必然占据重要地位。在大学《有机化学》课程中,学习还原反应时肯定会提到Wolff-Kishner-黄鸣龙还原反应,这是第一个…...
DataX从Mysql导数据到Hive分区表案例
0、下载DataX并解压到对应目录 DataX安装包,开箱即用,无需配置。 https://datax-opensource.oss-cn-hangzhou.aliyuncs.com/202308/datax.tar.gz 相关参考文档 https://github.com/alibaba/DataX/blob/master/hdfswriter/doc/hdfswriter.md 1、Hive分区…...
npm 报错 gyp verb `which` failed Error: not found: python2 解决方案
一、背景 npm 安装依赖报如下错: gyp verb check python checking for Python executable "python2" in the PATH gyp verb which failed Error: not found: python2 一眼看过去都觉得是Python环境问题,其实并不是你python环境问题…...
安装npm:npm未随Node.js一起安装
文章目录 上传至linux服务器/usr/local/目录下 如果npm没有随Node.js一起安装,你可以尝试单独下载并安装npm。但通常情况下,这是不必要的,因为npm是Node.js的一部分。如果确实需要单独安装npm,你可以参考npm的官方安装指南。 npm…...
C++23 ranges::to:范围转换函数 (P1206R7)
文章目录 引言C23 Ranges 概述ranges::to 的定义与功能定义功能 使用场景范围转换为容器简化字符串解析映射转换为向量 ranges::to 的优势代码简洁性提高开发效率与C23的stl容器的范围版本构造函数配合良好 模板参数约束的思考总结 引言 在C的发展历程中,每一个新版…...
openfeign 拦截器实现微服务上下文打通
目录 openfeign 拦截器实现微服务上下文打通需求分析:代码实现:subject 服务:controllerFeign 拦截器:将 Feign 拦截器注册为一个Bean: auth 鉴权服务:全局配置类:登录拦截器:上下文…...
【MySQL】变更缓冲区:作用、主要配置以及如何查看
📢博客主页:https://blog.csdn.net/2301_779549673 📢博客仓库:https://gitee.com/JohnKingW/linux_test/tree/master/lesson 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! &…...
TCP/IP-——C++编程详解
1. TCP/IP 编程基本概念 TCP(传输控制协议):面向连接、可靠的传输层协议,保证数据顺序和完整性。IP(网际协议):负责将数据包路由到目标地址。Socket(套接字):…...
微服务如何实现服务的高可用
背景:微服务分层需要考虑高可用和高并发的问题 微服务如何实现服务的高可用 先说结论:微服务实现高可用主要通过集群冗余故障自动转移来实现的具体可以从底下几种方案来实现。 “端”到“反向代理”的高可用“反向代理”到“站点应用”的高可用“站点…...
微服务调试问题总结
本地环境调试。 启动本地微服务,使用公共nacos配置。利用如apifox进行本地代码调试解决调试问题。除必要的业务微服务依赖包需要下载到本地。使用mvn clean install -DskipTests进行安装启动前选择好profile环境进行启动,启动前记得mvn clean清理项目。…...
egpo进行train_egpo训练时,keyvalueError:“replay_sequence_length“
def execution_plan(workers: WorkerSet, config: TrainerConfigDict) -> LocalIterator[dict]: if config.get(“prioritized_replay”): prio_args { “prioritized_replay_alpha”: config[“prioritized_replay_alpha”], “prioritized_replay_beta”: config[“prior…...
Hadoop的组成
(一)Hadoop的组成 对普通用户来说, Hadoop就是一个东西,一个整体,它能给我们提供无限的磁盘用来保存文件,可以使用提供强大的计算能力。 在Hadoop3.X中,hadoop一共有三个组成部分&#…...
Android锁
引言 🔒 在 Android 应用的开发过程中,随着业务需求的复杂度不断提升,多线程并发场景层出不穷。为了保证数据一致性与线程安全,锁(Lock)成为了不可或缺的工具。本篇博客将深入剖析 Android 中常用的锁机制…...
XD08M3232接近感应单片机的接近感应模块的工作原理
XD08M3232接近感应单片机的接近感应模块基于电容式感应原理,通过硬件电路与软件配置实现对物体接近的检测。以下是其工作原理的详细解析: 一、硬件架构与核心组件 1. 核心电路组成 接近感应模块由三大关键部分构成: 两个轨到轨运算放大器&…...
编程日志5.6
串的习题 1.2236. 判断根结点是否等于子结点之和 - 力扣(LeetCode) /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * Tr…...
量子计算实用化突破:从云端平台到国际竞合,开启算力革命新纪元
在硅谷某生物医药实验室,研究员艾米丽正盯着量子计算模拟界面露出微笑 —— 搭载中电信 "天衍" 量子计算云平台的 880 比特超导量子处理器,用 17 分钟完成了传统超算需 3 个月才能跑完的新型抗生素分子键合模拟。这个场景标志着量子计算正从 &…...
Made with Unity | 拓展“双点”宇宙版图
双点工作室(Two Point Studios)团队成立于2016年,其创立初衷是打造一个完美的游戏IP:构建一个既能持续吸引玩家,又具备足够扩展空间,同时经得起时间考验的虚拟世界。2018年,团队以《双点医院&am…...
3D 数据可视化系统是什么?具体应用在哪方面?
目录 一、3D 数据可视化系统的定义与内涵 (一)基本概念 (二)核心要素 二、3D 数据可视化系统的优势 三、3D 数据可视化系统的应用领域 (一)城市规划与管理 (二)工业制造 &am…...
2025-5-14渗透测试:利用Printer Bug ,NTLMv2 Hash Relay(中继攻击),CVE-2019-1040漏洞复现
python3 printerbug.py test.com/test192.168.186.131 192.168.186.134 sudo python2 MultiRelay.py -t 192.168.186.132 -u ALLPrinter Bug 原理 PrinterBug(CVE-2018-0886)是Windows打印系统服务(Spooler)的一个设计缺陷&…...
OracleLinux7.9-ssh问题
有套rac环境,db1主机无法ssh db1和db1-priv,可以ssh登录 db2和db2-priv [rootdb1 ~]# ssh db1 ^C [rootdb1 ~]# ssh db2 Last login: Wed May 14 18:25:19 2025 from db2 [rootdb2 ~]# ssh db2 Last login: Wed May 14 18:25:35 2025 from db1 [rootdb2…...
《AI大模型应知应会100篇》第64篇:构建你的第一个大模型 Chatbot
第64篇:构建你的第一个大模型 Chatbot 手把手教你从零开始搭建一个基于大模型的聊天机器人 摘要 你是否想过,自己也能构建一个像 ChatGPT 一样能对话、能思考的聊天机器人(Chatbot)?别担心,这并不需要你是…...
鸿蒙OSUniApp 实现精美的用户登录和注册页面#三方框架 #Uniapp
UniApp 实现精美的用户登录和注册页面 前言 在开发鸿蒙APP时,登录注册页面作为用户与应用交互的第一道门槛,其体验与质量往往决定了用户的第一印象。去年我接手了一个电商小程序项目,产品经理特别强调要做一个既美观又实用的登录注册页面。…...
c#中equal方法与gethashcode方法之间有何关联?
文章目录 前言一、对hash运算的深入思考二、equal与gethashcode的关联三、 equal与gethashcode不同步的后果四、 规范的重写gethashcode 前言 大家有没有遇到过,当你重写了c#对象的equal方法之后,编译器会提示你对相应的gethashcode进行重写,…...
查询公网IP地址的方法:查看自己是不是公网ip,附内网穿透外网域名访问方案
本地搭建服务并提供互联网连接时,较为传统的方法是使用公网IP地址。因此,如何查询本地自己是不是公网IP,是必须要掌握的一种技巧。当面对确实无公网IP时,则可以通过内网穿透方案,如nat123网络映射工具,将本…...
【轻松学 C:编程小白的大冒险】— 16 函数的定义与调用
在编程的艺术世界里,代码和灵感需要寻找到最佳的交融点,才能打造出令人为之惊叹的作品。而在这座秋知叶i博客的殿堂里,我们将共同追寻这种完美结合,为未来的世界留下属于我们的独特印记。 【轻松学 C:编程小白的大冒险…...
【Tools】CPU 分析
CPU 分析 Windows SDK 本指南提供了可用于调查影响评估指标的中央处理单元 (CPU) 相关问题的详细技术。 特定于评估的分析指南中的各个指标或问题部分确定了需要调查的常见问题。 本指南提供了可用于调查这些问题的技术和工具。 本指南中的技术使用 Windows Performance Too…...
进阶2_1:QT5多线程与定时器共生死
1、在widget.ui中使用 LCD Number控件 注意:若 LCD 控件不是多线程,LCD控件则会瞬间自增到最大的数值,如上图,说明两者都是多线程处理 2、实现方式 1、创建 LCD 控件并修改为 LCD1 2、创建任务类 mytask. h,对任务类…...
ECharts:数据可视化的强大引擎
在当今这个信息爆炸的时代,如何有效地展示和理解复杂的数据成为了每一个开发者和技术爱好者面临的挑战。Apache ECharts 作为一款基于 JavaScript 的开源可视化库,以其强大的功能、丰富的图表类型以及高度的可定制性,迅速成为了数据可视化领域…...
记录 QT 在liunx 下 QFileDialog 类调用问题 ()Linux下QFileDialog没反应)
1. 2025.05.14 踩坑记录 因为QT 在 liunx 文件系统不同导致的 Windows : QString filePath QFileDialog::getOpenFileName(nullptr, "选择文件", ".", "文本文件 (*.txt);所有文件 (*.*)"); 没问题 liunx 下 打不开ÿ…...
通用软件项目技术报告 - 导读III
现在,我们正式进入报告的第六个主要领域:6. 领域六:与第三方服务/API 集成 (含 LLM API)。 连接: 在现代软件开发中,很少有应用程序是完全孤立的。我们经常需要与各种外部的第三方服务或 API 进行集成,以利用它们提供的特定功能(如支付处理、地图服务、社交媒体登录、云…...
Kali Linux 桌面环境安装与配置指南
一、为什么选择 Kali Linux? Kali Linux 由 Offensive Security 维护,集成了数百种安全测试工具(如 Metasploit、Nmap 和 Burp Suite),非常适合安全研究。但需要注意的是,Kali 默认以 root 用户运行&#…...
FFmpeg视频编码的完整操作指南
步骤如下: 安装和准备FFmpeg:确保包含所需编码器(如libx264)。基本命令行编码:使用ffmpeg命令进行转码,设置视频编码器、CRF、预设等。API编码流程(针对开发者): a. 注册…...
【网络协议】TCP、HTTP、MQTT 和 WebSocket 对比
从协议本质、工作原理、特点、应用场景等方面详细对比 TCP、HTTP、MQTT 和 WebSocket。 1. TCP(Transmission Control Protocol,传输控制协议) 本质 协议类型:传输层协议(OSI模型第4层)。核心功能&#x…...
Leetcode数组day1
704 二分查找 注意点,左闭右闭 class Solution { public:int search(vector<int>& nums, int target) {//整数类型的动态数组的引用。int left0;int right nums.size()-1;while (left < right){int middle (rightleft)/2;if (nums[middle]>targ…...
leetcode2934. 最大化数组末位元素的最少操作次数-medium
1 题目:最大化数组末位元素的最少操作次数 官方标定难度:中 给你两个下标从 0 开始的整数数组 nums1 和 nums2 ,这两个数组的长度都是 n 。 你可以执行一系列 操作(可能不执行)。 在每次操作中,你可以选…...
常见相机焦段的分类及其应用
相机焦段是指镜头的焦距范围,决定了拍摄时的视角、画面范围和透视效果。不同焦段适合不同的拍摄场景和主题,以下是常见焦段的分类及其应用: 一、焦段的核心概念 焦距:镜头光学中心到成像传感器的距离(单位:…...
FPGA在光谱相机中的核心作用
FPGA(现场可编程门阵列)作为光谱相机的核心控制与加速单元,通过硬件级并行处理能力和动态可编程特性,实现高速、高精度的光谱数据采集与处理。以下是其具体作用分类: 一、高速光电信号处理 实时光谱复原 通过硬…...
【证书与信任机制】证书透明度(Certificate Transparency):如何防止恶意证书颁发?
证书透明度(Certificate Transparency, CT)的核心原理 证书透明度(CT)是一项由Google主导的开放标准,旨在通过公开记录所有SSL/TLS证书的颁发行为,防止恶意CA错误或故意颁发虚假证书。其核心机制如下&#…...
【RabbitMq C++】消息队列组件
RabbitMq 消息队列组件 1. RabbitMq介绍2. 安装RabbitMQ3. 安装 RabbitMQ 的 C客户端库4. AMQP-CPP 库的简单使用4.1 使用4.1.1 TCP 模式4.1.2 扩展模式 4.2 常用类与接口介绍4.2.1 Channel4.3.2 ev 5. RabbitMQ样例编写5.1 发布消息5.2 订阅消息 1. RabbitMq介绍 RabbitMq - …...
基于SpringBoot+Vue的房屋租赁管理系统源码包(完整版)开发实战
基于SpringBootVue的房屋租赁管理系统源码包(完整版)开发实战 一、引言 随着城市化进程加速,房屋租赁市场规模持续扩大,传统管理方式已无法满足高效、精准的业务需求。本文基于SpringBootVue框架,设计并实现了一套完…...
《AI大模型应知应会100篇》第61篇:FastAPI搭建大模型API服务
第61篇:FastAPI搭建大模型API服务 摘要 随着大语言模型(LLM)在各行各业的广泛应用,构建一个高性能、可扩展的大模型 API 服务变得尤为重要。FastAPI 以其异步支持、类型安全、自动生成文档等优势,成为当前最流行的选择…...