Web安全常用工具 (持续更新)
前言
本文虽然是讲web相关工具,但在在安全领域,没有人是先精通工具,再上手做事的。鉴于web领域繁杂戎多的知识点(工具是学不完的,哭),如果你在本文的学习过程中遇到没有学过的知识点,可以先跳过去,等你学到这里要用到工具时,再从实际例子中学习、利用工具。
(本文工具基本都可以在CTFHub中找到,文章较长,侧边栏有目录以便于观看)
F12开发者工具
常规使用方法
参考文献:
浏览器F12开发者工具高效使用教程-CSDN博客
小白玩转浏览器开发者工具—F12(超详细)-CSDN博客
0x01 开发者工具是神马?
是浏览器自带的一个开发调试工具,因为可以用F12快捷键直接启动,所以简称为F12工具
0x02 如何启动
(三种方法)
1、F12
2、ctrl+shift+i
3、鼠标右键——>检查
0x03 开发者工具的标签介绍
英文 | 中文 |
Elements | 查看器 |
Console | 控制台 |
Sourse | 源代码/调试器 |
Network | 网络 |
Performance | 性能 |
Memory | 内存 |
Application | 应用 |
查看器:主要用来做元素的定位
控制台:调试错误等
调试器(源代码):前端代码的调试,断点等
网络:测试用来抓包、进行分析进行一些测试问题的定位
性能:前端页面的性能
存储(应用):存储cookie缓存等
0x04 常用标签详细介绍
一、查看器
1.查看元素的代码
点击左上角的箭头图标(或按快捷键Ctrl+Shft+C)进入选择元素模式,
然后从页面中选择需要查看的元素,然后可以在开发者工具元素(Elements) -栏中定位到该元素源代码的具体位置。
2.查看元素的属性
定位到元素的源代码之后,可以从源代码中读出该元素的属性。如class、 src、 width等属性的值。
3.修改元素的代码与属性
点击元素,然后查看右键菜单,可以看到chrome提供的可对元素进行的操作:选择Edit as HTML选项时,元素进入编辑模式,可以对元素的代码进行任意的修改。
当然,这个修改也仅对当前的页面渲染生效,不会修改服务器的源代码,所以这个功能也是作为调试页面效果而使用。可以把百度热搜修改一下:
非凡中国改为重庆森林不在重庆(这里仅仅修改前端,也就是只有我们的设备会这样显示)
二、控制台
用途: --开发用的测试
打印控制台的查看,用于测试查看报错内容(前端页面报错),前端开发编写js脚本调试前端代码,或则打印分析问题。
三、Network/网络
1、用途:这是测试用的最多的一个模块,主要用于进行测试问题的分析和定位,这个部分记录了前后端的交互,我们与服务器请求、响应的各个数据包记录在这里。
前端和后端信息通过接口传输,Network记录了接口信息: (接口封装http协议–定义头部)
http请求消息:请求行(请求方法)、请求头、请求体–客户端发送
http响应消息:响应行(响应状态码),响应头,响应体-服务器回应
2、报文分析
(可以参考作者的另一篇文章:HTTP的工作原理-CSDN博客)
1)状态
即http的响应状态码:
200 (服务器收到我的请求并且给了我一个回应)
404(资源不存在或者地址给错了)
500 503(表明服务器有问题)
302 304 (重定向)
2)方法: http请求方法- get post put patch
3)域名:服务器的域名或者IP +端口
4)文件和类型: html、css、js 、png等
5)发起者:请求怎么发起的,比如script: 页面是由script脚本处理的时候发送的;
6)传输和大小:传输的文件及大小
7)详细报文内容:消息头,cookies, 请求,响应,耗时
四、Memory/存储(应用)
用途: 主要存储一些cookies和前端数据等。
本地存储和会话存储主要是前端开发人员在前端设置,一旦数据保存在本地后,就可以避免再向服务器请求数据,因此减少不必要的数据请求,减少数据在浏览器和服务器间不必要地来回传递。
本地存储和会话存储的操作代码完全相同,它们的区别仅在于数据的寿命。
本地存储: 保存不受时间限制,用于长期保存网站的数据;除非用户自己删除,否则不会消失;并且站内任何页面都可以访问该数据;主要用来保存访客将来还能看到的数据。
会话存储: 用于临时保存针对一一个窗口(或标签页)的数据,保存受时间限制,当前窗口一旦关闭,内容就会被浏览器删除。会话存储则用于保存那些需要从一个页面传递给下一个页面的数据。
Hackbar
(归属于开发者工具一栏,故放在此处)
参考文献:
渗透测试-浏览器插件-Hackbar的安装与使用教程-CSDN博客
0x01 介绍
Hackbar是一个浏览器中的一个插件,它虽然类似于地址栏,但在此基础上进行了完善,是一个功能集成的“地址栏promax”。hackbar相对于平常的地址栏具有更多功能,而且它里面的数据不受服务器的相应触发的重定向等其它变化的影响。
0x02 使用
Load URL:复制地址栏中的地址(主要使用下图第一个hackbar)
Split URL:剪切地址
正常情况下,我们在地址栏按enter键会直接跳转到我们输入的网址,并不能切断地址,而在hackbar中可以在做到这一点
Execute:执行HackBar中的网址,
或是发送GET请求、或是发送POST请求、或是……
Post data:以post的方式提交数据
Referrer:在Referrer处编辑、提交数据
User Agent:在User Agent处编辑、提交数据
Cookie:在Cookie处编辑、提交数据
以上四项的使用请见下图(下图是四项全部选择,具体使用过程中用哪个选哪个即可)
Encyption:四种加密方式
Encoding:三种编码方式(注意只有三种,但是每种都可以编、解码,encode是编码,decode是解码)
SQL:提供一些方便查询的语句。
应用举例:
字段数是10的时候,我们需要手动打出and 1=2 union select 1,2,3,4,5,6,7,8,9,10,这样做会很麻烦。我们通过hackbar的sql选项里面的union select statement在其中输入字段数,hackbar会自动的帮助我们输入那一大串文字。
xss:提供一些XSS攻击语句。
Burpsuite
参考文献
Getting started with Burp Suite Professional / Community Edition - PortSwigger
BurpSuite超详细安装教程-功能概述-配置-使用教程---(附下载链接)
0x01 介绍
BurpSuite是渗透测试、漏洞挖掘以及Web应用程序测试的最佳工具之一,是一款用于攻击web 应用程序的集成攻击测试平台,可以进行抓包、重放、爆破,包含许多工具,能处理对应的HTTP消息、持久性、认证、代理、日志、警报。
0x02 简单了解
尽量在实际例子中学习bp的应用,本文仅仅是简单了解,若要深度学习,请移步作者的其他文章,学习bp的实际应用。
- Target(目标)——显示目标目录结构的的一个功能
- Proxy(代理)——拦截HTTP/S的代理服务器,作为一个在浏览器和目标应用程序之间的中间人,允许你拦截、查看、修改在两个方向上的原始数据流。
- Spider(蜘蛛)——应用智能感应的网络爬虫,它能完整的枚举应用程序的内容和功能。
- Scanner(扫描器)——高级工具,执行后,它能自动地发现web 应用程序的安全漏洞。
- Intruder(入侵)——一个定制的高度可配置的工具,对web应用程序进行自动化攻击,如:枚举标识符,收集有用的数据,以及使用fuzzing 技术探测常规漏洞。
- Repeater(中继器)——一个靠手动操作来触发单独的HTTP 请求,并分析应用程序响应的工具。
- Sequencer(会话)——用来分析那些不可预知的应用程序会话令牌和重要数据项的随机性的工具。
- Decoder(解码器)——进行手动执行或对应用程序数据者智能解码编码的工具。
- Comparer(对比)——通常是通过一些相关的请求和响应得到两项数据的一个可视化的“差异”。
- Extender(扩展)——可以让你加载Burp Suite的扩展,使用你自己的或第三方代码来扩展Burp Suit的功能。
- Options(设置)——对Burp Suite的一些设置。
注意:bp最好配合浏览器的扩展插件使用,这样就可以快速代理拦截,具体请见参考文章的第二篇
Curl命令
参考文献
Curl Cookbook(后两文是阮一峰对第一篇文章的翻译)
curl网站开发指南 - 阮一峰的网络日志(初学者教程)
curl 的用法指南 - 阮一峰的网络日志(进阶)
0x01 介绍
curl 是常用的命令行工具,用来请求 Web 服务器。它的名字就是客户端(client)的 URL 工具的意思,即client URL。
它的功能非常强大,命令行参数多达几十种。
0x02 使用
1、查看网页源码
直接在curl命令后加上网址,就可以看到网页源码。我们以网址www.sina.com为例(选择该网址,主要因为它的网页代码较短):
curl www.sina.com
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"><html><head><title>301 Moved Permanently</title></head><body><h1>Moved Permanently</h1><p>The document has moved <a href="http://www.sina.com.cn/">here</a>.</p></body></html>
如果要把这个网页保存下来,可以使用`-o`参数,这就相当于使用wget命令了。
curl -o [文件名] www.sina.com
2、自动跳转(curl默认是不跟随重定向的)
有的网址是自动跳转的。使用`-L`参数,curl就会跳转到新的网址。
curl -L www.sina.com
键入上面的命令,结果就自动跳转为www.sina.com.cn。
3、HTTP动词
curl默认的HTTP动词是GET,使用`-X`参数可以支持其他动词。
curl -X POST www.example.com
curl -X DELETE www.example.com
另外,使用 -d 参数以后,HTTP 请求会自动加上标头 Content-Type : application/x-www-form-urlencoded,并且会自动将请求转为 POST 方法,因此可以省略-X POST。
curl -d '{"user":"123","pass":"456"}' www.example.com
原文链接:https://blog.csdn.net/qq_35760825/article/details/125319610
4、cookie
使用`--cookie`参数,可以让curl发送cookie。
curl --cookie "name=xxx" www.example.com
至于具体的cookie的值,可以从http response头信息的`Set-Cookie`字段中得到。
`-c cookie-file`可以保存服务器返回的cookie到文件,`-b cookie-file`可以使用这个文件作为cookie信息,进行后续的请求。
curl -c cookies http://example.com
curl -b cookies http://example.com
御剑
(简便易用但有时不好使,唯一的优点是易用,更推荐用下一个工具)
参考文献
后台扫描工具 - 御剑(珍藏版)附下载_御剑后台-CSDN博客
0x01 介绍
御剑后台扫描珍藏版是T00LS大牛的作品,方便查找用户后台登陆地址,同时也为程序开发人员增加了难度,尽量独特的后台目录结构。
附带很强大的字典,字典我们也是可以自己修改的,继续增加规则。
基础规则:
1、扫描线程自定义:用户可根据自身电脑的配置来设置调节扫描线程
2、集合DIR扫描 ASP ASPX PHP JSP MDB数据库 包含所有网站脚本路径扫描
3、默认探测200 (也就是扫描的网站真实存在的路径文件)
0x02 使用
给御剑字典增加新规则
相信大家都知道,有时候御剑自带的字典规则并不能完全的满足我们,因此我们需要手工增加字典规则。
具体步骤如下:
1、打开 “自己的目录\御剑系列工具\御剑后台扫描珍藏版\配置文件”或“自己的目录\御剑系列工具\御剑后台扫描2\御剑配置文件”。
2、打开”PHP.txt”。
这里主要是以PHP程序的后台配置为主,在此文件你完全可以增加一些其它的PHP类型的后台名字。如果你还想修改ASP、ASPX、JSP等,同理。
Dirsearch
参考文献
【网络安全 | 渗透工具】Dirsearch安装使用教程详析-CSDN博客
dirsearch使用教程_dirsearch的使用方法-CSDN博客
0x01 Dirsearch简介
Dirsearch 是一个用于探测Web服务器上的隐藏目录和文件的工具(和御剑功能相似)。它通过发送HTTP请求来尝试访问可能存在的路径,从而找到不列在网站目录页面上的隐藏资源。是和御剑同类型的工具(除了慢没缺点)
Dirsearch 的主要特点包括:
1.多线程:Dirsearch 采用多线程方式进行目录扫描,充分利用系统资源提高扫描效率。
2.字典支持:它支持使用自定义字典文件来进行目录爆破,你可以使用自己的字典文件或使用内置的常用字典。(注:字典必须是文本文件)
3.支持多种形式的网页(asp,php)
4.支持HTTP代理
5.启发式检测无效的网页
6.指定扩展名:你可以选择限制扫描的文件扩展名范围,以便更加精确地进行目录扫描。
7.进度追踪:Dirsearch 提供实时进度追踪,你可以看到当前扫描的进度和已发现的目录和文件。
8.结果输出:完成扫描后,Dirsearch 会生成详细的扫描报告(纯文本,JSON),展示已发现的隐藏目录和文件。
0x02 使用
1 常用使用方式
python dirsearch.py -u http://xxxx //常规使用
python dirsearch.py -u http://xxxx -r //递归扫描,不过容易被检测
python dirsearch.py -u http://xxxx -r -t 30 //线程控制请求速率
python dirsearch.py -u http://xxxx -r -t 30 --proxy 127.0.0.1:8080 //使用代理
2 详细使用方式(由dirsearch --help翻译而成)
用法:dirsearch.py [-u|--url] 目标 [-e|--extensions] 扩展名 [选项]选项:--version 显示程序的版本号并退出-h, --help 显示此帮助消息并退出必需:-u URL, --url=URL 目标URL,可以使用多个选项指定多个目标URL-l PATH, --urls-file=PATHURL列表文件--stdin 从标准输入读取URL--cidr=CIDR 目标CIDR--raw=PATH 从文件加载原始HTTP请求(使用'--scheme'标志设置方案)-s SESSION_FILE, --session=SESSION_FILE会话文件--config=PATH 配置文件路径(默认为'DIRSEARCH_CONFIG'环境变量,否则为'config.ini')字典设置:-w WORDLISTS, --wordlists=WORDLISTS单词列表文件或包含单词列表文件的目录(以逗号分隔)-e EXTENSIONS, --extensions=EXTENSIONS扩展名列表,以逗号分隔(例如:php,asp)-f, --force-extensions在每个单词列表条目的末尾添加扩展名。默认情况下,dirsearch只替换%EXT%关键字为扩展名。-O, --overwrite-extensions使用指定的扩展名覆盖单词列表中的其他扩展名(通过'-e'选择)--exclude-extensions=EXTENSIONS排除的扩展名列表,以逗号分隔(例如:asp,jsp)--remove-extensions 删除所有路径中的扩展名(例如:admin.php -> admin)--prefixes=PREFIXES 将自定义前缀添加到所有单词列表条目中(以逗号分隔)--suffixes=SUFFIXES 将自定义后缀添加到所有单词列表条目中,忽略目录(以逗号分隔)-U, --uppercase 单词列表转为大写-L, --lowercase 单词列表转为小写-C, --capital 单词首字母大写通用设置:-t THREADS, --threads=THREADS线程数-r, --recursive 递归地进行强制破解--deep-recursive 在每个目录深度上执行递归扫描(例如:api/users -> api/)--force-recursive 对找到的每个路径执行递归强制破解,而不仅仅是目录-R DEPTH, --max-recursion-depth=DEPTH最大递归深度--recursion-status=CODES用于执行递归扫描的有效状态码,支持范围(以逗号分隔)--subdirs=SUBDIRS 扫描给定URL的子目录(以逗号分隔)--exclude-subdirs=SUBDIRS在递归扫描期间排除以下子目录(以逗号分隔)-i CODES, --include-status=CODES包括的状态码,以逗号分隔,支持范围(例如:200,300-399)-x CODES, --exclude-status=CODES排除的状态码,以逗号分隔,支持范围(例如:301,500-599)--exclude-sizes=SIZES根据大小排除响应,以逗号分隔(例如:0B,4KB)--exclude-text=TEXTS 根据文本排除响应,可以使用多个标志--exclude-regex=REGEX根据正则表达式排除响应--exclude-redirect=STRING如果此正则表达式(或文本)与重定向URL匹配,则排除响应(例如:'/index.html')--exclude-response=PATH排除类似于此页面响应的响应,路径作为输入(例如:404.html)--skip-on-status=CODES每当命中这些状态码之一时跳过目标,以逗号分隔,支持范围--min-response-size=LENGTH响应的最小长度--max-response-size=LENGTH响应的最大长度--max-time=SECONDS 扫描的最大运行时间--exit-on-error 发生错误时退出请求设置:-m METHOD, --http-method=METHODHTTP请求方法(默认为GET)-d DATA, --data=DATA HTTP请求数据--data-file=PATH 包含HTTP请求数据的文件-H HEADERS, --header=HEADERSHTTP请求标头,可以使用多个标志--headers-file=PATH 包含HTTP请求标头的文件-F, --follow-redirects跟随HTTP重定向--random-agent 每个请求选择一个随机User-Agent--auth=CREDENTIAL 认证凭据(例如:user:password或bearer token)--auth-type=TYPE 认证类型(basic、digest、bearer、ntlm、jwt)--cert-file=PATH 包含客户端证书的文件--key-file=PATH 包含客户端证书私钥的文件(未加密)--user-agent=USER_AGENT--cookie=COOKIE连接设置:--timeout=TIMEOUT 连接超时时间--delay=DELAY 请求之间的延迟-p PROXY, --proxy=PROXY代理URL(HTTP/SOCKS),可以使用多个标志--proxies-file=PATH 包含代理服务器的文件--proxy-auth=CREDENTIAL代理认证凭据--replay-proxy=PROXY 用于重放已发现路径的代理--tor 使用Tor网络作为代理--scheme=SCHEME 原始请求的协议或URL中没有协议时使用的协议(默认为自动检测)--max-rate=RATE 每秒请求数最大值--retries=RETRIES 失败请求的重试次数--ip=IP 服务器IP地址高级设置:--crawl 在响应中爬取新路径显示设置:--full-url 在输出中显示完整URL(在静默模式下自动启用)--redirects-history 显示重定向历史记录--no-color 不使用彩色输出-q, --quiet-mode 安静模式输出设置:-o PATH/URL, --output=PATH/URL输出文件或MySQL/PostgreSQL数据库URL(格式:scheme://[username:password@]host[:port]/database-name)--format=FORMAT 报告格式(可用:simple、plain、json、xml、md、csv、html、sqlite、mysql、postgresql)--log=PATH 日志文件有关示例配置文件,请参见“config.ini”
Git
如何在 Git 中管理历史记录 | Git tutorial | Nulab(官方教程)
0x01 介绍
Git 是一个用于管理源代码的分布式版本控制系统。版本控制系统会在您修改文件时记录并保存更改,使您可以随时恢复以前的工作版本。
简单来说,git就是便于多人一起编程的一个管理工具(把一个大任务分成许多个小的,然后分配给不同的人就是分布式)
像 Git 这样的版本控制系统可以很容易地
- 跟踪代码历史记录
- 以团队形式协作编写代码
- 查看谁做了哪些更改
0x02 使用
git的使用讲解需较大篇幅,本文不进行展开,具体内容可以参考官方教程
GitHack
0x01 介绍
GitHack是一个.git泄露利用脚本,通过泄露的.git文件夹下的文件,重建还原工程源代码。渗透测试人员、攻击者,可以进一步审计代码,挖掘:文件上传,SQL注射等web安全漏洞。
简单来说,利用git多人协作的时候,可能会有有用的信息泄露,githack就是专门找到并且下载这些信息的。
0x02 使用
(作者是在kali中使用,windows中试了但不咋好使)
进入githack的目录下,在这里打开终端
使用以下代码去下载文件
python2 githack.py URL/.git
dvcs-ripper
参考文献
dvcs-ripper安装教程-CSDN博客
0x01 介绍
针对SVN泄露的工具——————dvcs-ripper。
(当然不仅仅只有SVN,还可访问分布式版本控制系统:GIT、Mercurial/hg、bzr、...)
0x02 使用
1、运行示例(用于 git):
rip-git.pl -v -u http://www.example.com/.git/
相关文档是上面的写法,作者在使用的时候所有指令都需要加./,比如下面(仅在这里举一例):
./ rip-git.pl -v -u http://www.example.com/.git/
It will automatically do git checkout -f
它会自动执行 git checkout -f
or if you would like to ignore SSL certification verification (with -s):
或者,如果您想忽略 SSL 证书验证(带 -s):
rip-git.pl -s -v -u http://www.example.com/.git/
2、
运行示例(针对 hg):
rip-hg.pl -v -u http://www.example.com/.hg/
It will automatically do hg revert <file>
它会自动执行 hg revert <file>
or if you would like to ignore SSL certification verification (with -s):
或者,如果您想忽略 SSL 证书验证(带 -s):
rip-hg.pl -s -v -u http://www.example.com/.hg/
3、
运行示例(用于 bzr):(前面要有./)
rip-bzr.pl -v -u http://www.example.com/.bzr/
It will automatically do bzr revert
它会自动执行 bzr revert
or if you would like to ignore SSL certification verification (with -s):
或者,如果您想忽略 SSL 证书验证(带 -s):
rip-bzr.pl -s -v -u http://www.example.com/.bzr/
4、运行示例(适用于SVN):
rip-svn.pl -v -u http://www.example.com/.svn/
It will automatically do svn revert -R .
它会自动执行 svn revert -R .
5、运行示例(适用于 CVS):(要加./)
rip-cvs.pl -v -u http://www.example.com/CVS/
This will not rip CVS, but it will display useful info.
这不会翻录 CVS,但它会显示有用的信息。
Python-dsstore
0x01 介绍
这是一个.DS_Store解析工具。
需要从github上下载工具(具体链接可以从ctfhub里找,那里的工具还是很全的),其中包含Apple的.DS_Store文件格式的解析器。在 ./samples/目录中包含一个CTF格式的示例文件,您可以使用以下代码尝试解析器(文档里是用python3指令,作者自己这里用python指令,具体使用读者可自行设置、尝试)。
python3 main.py ./samples/.DS_Store.ctf
0x02 使用
- 将需要解析的文件复制到Python-dsstore文件夹中
- 在Python-dsstore文件处打开cmd
- 输入:
(也可以参考介绍里的方式,放在其他文件夹里,这就需要输入:python main.py .DS_Store的具体文件名
但作者习惯于将.DS_Store文件直接移动到Python-dsstore文件夹中,这样就直接写文件名解析即可)python main.py .DS_Store的具体文件位置
相关文章:

Web安全常用工具 (持续更新)
前言 本文虽然是讲web相关工具,但在在安全领域,没有人是先精通工具,再上手做事的。鉴于web领域繁杂戎多的知识点(工具是学不完的,哭),如果你在本文的学习过程中遇到没有学过的知识点࿰…...

不踩坑,青龙面板小问题解决方案~
好久没写了,随手记录一下。 1. 新建目录 很多人跟我一样入坑的手机免root青龙面板,一般用的都是2.10.13版本。这个版本比较早,似乎没有新建目录的功能(也可能是我不会用哈哈),以下是对比图: 大家…...

2025秋招倒计时---招联金融
【投递方式】 直接扫下方二维码,或点击内推官网https://wecruit.hotjob.cn/SU61025e262f9d247b98e0a2c2/mc/position/campus,使用内推码 igcefb 投递) 【招聘岗位】 后台开发 前端开发 数据开发 数据运营 算法开发 技术运维 软件测试 产品策…...

基于yolov8、yolov5的果蔬检测系统(含UI界面、数据集、训练好的模型、Python代码)
项目介绍 项目中所用到的算法模型和数据集等信息如下: 算法模型: yolov8、yolov8 SE注意力机制 或 yolov5、yolov5 SE注意力机制 , 直接提供最少两个训练好的模型。模型十分重要,因为有些同学的电脑没有 GPU࿰…...

出海快报 | “三消+短剧”手游横空出世,黄油相机“出圈”日本市场,从Q1看日本手游市场趋势和机会
编者按:TopOn出海快报栏目为互联网出海从业者梳理出海热点,供大家了解行业最新发展态势。 1.“三消短剧”横空出世,融合创新手游表现亮眼 随着竞争的加剧,新产品想要突出重围,只能在游戏中加入额外的元素。第一次打开…...

Linux高效查日志命令介绍
说明:之前介绍Linux补充命令时,有介绍使用tail、grep命令查日志; Linux命令补充 今天发现仅凭这两条命令不够,本文扩展介绍一下。 命令一:查看日志开头 head -n 行数 日志路径如下,可以查看程序启动是否…...

非线性关卡设计
【GDC】如何设计完全非线性的单人关卡_DOOM (bilibili.com) 本文章算是此视频的简单笔记,更详细还请看视频 设计完全非线性关卡强调自由移动和沙盒式玩法,鼓励玩家进行不可预测的移动和空间探索。讲解者分享了设计此类关卡的具体步骤,包括明…...

Qt-链接数据库可视化操作
1. 概述 Qt 能够支持对常见数据库的操作,例如: MySQL、Oracle、SqlServer 等等。 Qt SQL模块中的API分为三层:驱动层、SQL接口层、用户接口层。 驱动层为数据库和SQL接口层之间提供了底层的桥梁。 SQL接口层提供了对数据库的访问࿰…...

萤火php端: 查询数据的时候报错: “message“: “Undefined index: pay_status“,
代码:getGoodsFromHistory <?php // ---------------------------------------------------------------------- // | 萤火商城系统 [ 致力于通过产品和服务,帮助商家高效化开拓市场 ] // -----------------------------------------------------…...

程序人生-2024我的个人总结
可能现在写个人总结比较早,但是眼看着还有三个月,今年就过去了,所以决定提前写写,今年对于我来说是不平凡的一年,先是加薪,之后求婚,以为快要走上人生巅峰的时候,被裁员,…...

SQL自学:什么是联结,如何编写使用联结的SELECT语句
在 SQL(Structured Query Language,结构化查询语言)的世界里,联结(JOIN)是一个强大且至关重要的概念。它允许我们从多个表中检索数据,从而实现更复杂的查询和数据分析。本文将深入探讨联结的概念…...

【C++】函数重载+引用
大家好,我是苏貝,本篇博客带大家了解C的函数重载和引用,如果你觉得我写的还不错的话,可以给我一个赞👍吗,感谢❤️ 目录 一. 预处理、编译、汇编、链接二. 函数重载1 概念2 C支持函数重载的原理—名字修饰…...

华为S5735交换机console密码重置和恢复出厂设置
比较简单,简单说就是进入bootload清除密码,然后进入default mode下重置密码。 1.开机按CtrlB,进入启动加载菜单(BootLoad menu) 拨电源重启交换机,大约开机10多秒的时候会出现提示按CtrlB可以进入BootLoa…...

Spring Security无脑使用
步骤1:添加Spring Security依赖 在你的Spring Boot项目的pom.xml文件中,添加Spring Security的依赖: <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</art…...

学习 PostgreSQL + Spring Boot 3 +mybatisplus整合过程中的报错记录
今天计划学习 PostgreSQL,并顺便尝试使用 Spring Boot 3.x 框架,打算整合 Spring Boot 3、PostgreSQL 和 MyBatis-Plus。整合后一直出现以下报错: 去AI上面搜了讲的是sqlSessionFactory 或 sqlSessionTemplate 没有正确配置 初始分析&#…...

立仪光谱共焦传感器在玻璃测量技术上的突破
近年来,随着科技的不断发展,光谱共焦传感器逐渐成为了工业检测领域的重要工具。尤其是在玻璃这种透明材质的厚度测量中,光谱共焦传感器展现出了其独特的优势。立仪科技小编将围绕光谱共焦传感器在玻璃行业中的应用,从问题、分析到…...

Llama系列上新多模态!3.2版本开源超闭源,还和Arm联手搞了手机优化版,Meta首款多模态Llama 3.2开源!1B羊驼宝宝,跑在手机上了
Llama系列上新多模态!3.2版本开源超闭源,还和Arm联手搞了手机优化版,Meta首款多模态Llama 3.2开源!1B羊驼宝宝,跑在手机上了! 在多模态领域,开源模型也超闭源了! 就在刚刚结束的Met…...

系统缺失mfc140.dll的修复方法,有效修复错误mfc140.dll详细步骤
mfc140.dll丢失原因分析 1 系统文件损坏或病毒感染 系统文件损坏或被病毒感染是导致mfc140.dll丢失的常见原因之一。根据用户反馈和安全研究报告,大约有30%的mfc140.dll丢失案例与系统文件损坏或病毒感染有关。病毒、木马或其他恶意软件可能会破坏或删除系统中的m…...

移动app的UI和接口自动化测试怎么进行?
标题:从0到1:移动App的UI和接口自动化测试 导语:移动App的快速发展使得UI和接口自动化测试成为了确保应用质量的重要环节。本文将从零开始介绍移动App的UI和接口自动化测试的基本概念以及如何进行测试。 第一部分:了解移动App自动…...

Unity实现自定义图集(二)
以下内容是根据Unity 2020.1.0f1版本进行编写的 实现一个自定义图集,该怎么入手呢。首先简单思考一下unity是怎么实现图集的。 因为unity的ui部分是开源的,所以我们可以看到UGUI的源代码,另外,Unity的内置Shader也是开源的,可以直接在官网下载(在下载的网页选择Built…...

智能码二维码zhinengma.cn的动态数据更新是如何实现的?
智能码二维码的动态数据更新功能是通过其背后的技术原理实现的,主要依赖于服务器和二维码的链接结构。以下是具体介绍: 动态数据更新的实现原理 链接嵌入:动态二维码中嵌入了一个链接,该链接指向服务器上的数据源。数据请求与更…...

uniapp view怎么按长度排列一行最多四个元素,并且换行后,每一行之间都有间隔
推荐学习文档 golang应用级os框架,欢迎stargolang应用级os框架使用案例,欢迎star案例:基于golang开发的一款超有个性的旅游计划app经历golang实战大纲golang优秀开发常用开源库汇总想学习更多golang知识,这里有免费的golang学习笔…...

Android列表组件api
目录 1.ListView控件 1)android:divider 2)android:dividerHeight 3)android:entries 4)android:footerDividersEnabled 5)android:headerDividersEnabled 6)android:listSelector 7)android:sc…...

ToB项目身份认证AD集成(完):利用ldap.js实现与windows AD对接实现用户搜索、认证、密码修改等功能 - 以及针对中文转义问题的补丁方法介绍
在前面的两篇文章中,我详细的介绍了使用ldap与window AD服务集成,实现ToB项目中的身份认证集成方案,包括技术方案介绍、环境配置: ToB项目身份认证AD集成(一):基于目录的用户管理、LDAP和Active…...

SpringBoot+SeetaFace6搭建人脸识别平台
前言 最近多个项目需要接入人脸识别功能,之前的方案是使用百度云api集成,但是后续部分项目是内网部署及使用,考虑到接入复杂程度及收费等多种因素,决定参考开源方案自己搭建,保证服务的稳定性与可靠性 项目地址&…...

MySQL-06.DDL-表结构操作-创建
一.DDL(表操作) create database db01;use db01;create table tb_user(id int comment ID,唯一标识,username varchar(20) comment 用户名,name varchar(10) comment 姓名,age int comment 年龄,gender char(1) comment 性别 ) comment 用户表; 此时并没有限制ID为…...

在Visual Studio中使用CMakeLists.txt集成EasyX库的详细指南
EasyX库是一款专为Windows平台设计的轻量级C图形库,适合初学者和教育领域使用。结合Visual Studio和CMake工具链,用户可以轻松创建C项目,并集成EasyX库,实现丰富的图形编程效果。本文将详细介绍如何在Visual Studio中通过CMakeLis…...

CRC码计算原理
CRC8这里先以CRC8来说明CRC的计算过程1、CRC8在线计算器通过CRC在线计算器可以看见CRC8的特征多项式:x8+x2+x+1,初始值为0000’0000。CRC计算的核心是:反转+异或+移位(此处的CRC8没有涉及反转,见后面CRC16)。2、CRC8计算过程(1)、取值从高到低依次取需校验数据的位,这里…...

对高危漏洞“Docker Engine API is accessible without authentication”的修复
一.背景 之前文章maven项目容器化运行之1-基于1Panel软件将docker镜像构建能力分享给局域网_1panel 构建镜像-CSDN博客将1Panel软件的Doocker端口给到了局域网,安全组兄弟扫描认为是高危漏洞,可能导致攻击者获取对Docker主机的完全控制权。 二.修复的建…...

两种方式创建Vue项目
文章目录 引言利用Vue命令创建Vue项目准备工作安装Vue CLI创建Vue项目方法一:使用vue init命令方法二:使用vue create命令启动Vue项目 利用Vite工具创建Vue项目概述利用Vite创建项目启动项目 结语 引言 大家好,今天我将向大家展示如何使用不…...