Spring Boot进阶(59):【实战教程】使用Spring Boot集成InfluxDB时序数据库,打造高效数据监控系统!

 1. 前言🔥

        前几期我们陆续讲解了Mysql、Redis、PostgreSQL、MongoDB等数据库集成及使用案例,接下来,bug菌继续给同学们介绍一种特殊的数据库,到底是什么数据库呢?它就是InfluxDB(时序数据库),InfluxDB是一款专门用于存储和查询时序数据的开源数据库,具有高效、可扩展等优点。在实时监控、IoT和大数据等领域得到广泛应用。而Spring Boot是一款快速开发的框架,可帮助我们快速构建基于Spring的应用程序,因其简洁、易用等优点,成为了开发者的首选。本文将介绍如何在Spring Boot项目中集成InfluxDB,并通过一个简单的示例演示其基本用法,希望能够帮助广大开发者更好地使用InfluxDB和Spring Boot开发时序数据应用。

        那么,这将又会是干货满满的一期,全程无尿点不废话只抓重点教,具有非常好的学习效果,拿好小板凳准备就坐!希望学习的过程中大家认真听好好学,学习的途中有任何不清楚或疑问的地方皆可评论区留言或私信,bug菌将第一时间给予解惑,那么废话不多说,直接开整!Fighting!! 

2. 环境说明🔥

本地的开发环境:

  • 开发工具:IDEA 2021.3
  • JDK版本: JDK 1.8
  • Spring Boot版本:2.3.1 RELEASE
  • Maven版本:3.8.2

3. 正文🔥 

3.1 InfluxDB简介

        InfluxDB是什么?它是一个用于存储和分析时间序列数据的开源数据库。由 Golang 语言编写,也是由 Golang 编写的软件中比较优秀的一个,在很多 Golang 的沙龙或者文章中都可能会把 InfluxDB 当标杆来介绍,这也间接帮助 InfluxDB 提高了知名度。

        对于时序数据而言,它是一组按照时间维度索引的数据。时序数据在日常生活中也是随处可见,比如整点的温度、湿度等天气数据,每分钟的股票价格数据等。我们常见到的曲线图、柱状图等形式,就可以用来展现时序数据,这也就是我们常常听到的“数据可视化”。

        时序数据库是一种非关系型数据库,以时间作为数据主键,专门用来存储时序数据。

        而且在市面上,目前比较流行的时序数据库有:InfluxDB、TDengine、Prometheus、OpenTSDB等,其中InfluxDB在行业内应用使用最广泛。与此同时,刚进入业内视野的国产时序数据库TDengine也是后起之秀。对于Prometheus,它则是Prometheus监控系统中自带的数据库。

3.2 InfluxDB与Mysql类比

        如下类比了关系型数据库Mysql,其实概念大差不差,辅助同学们更好的理解它。

mysql

influxdb

备注

database

database

数据库

table

measurement

数据库

record

point

一行记录数据

拓展:InfluxDB数据库由database、measurement、point等三部分构成。分别对应关系数据库中的数据库、表、数据行,具体概念分别如下:

  • database:数据库.同Mysql等关系型数据库中的"数据库Database"
  • measurement:数据表.相当于关系型数据库中的"表Table"
  • point:数据点.表示单条数据记录,相当于关系型数据库中的"一行数据"

        其中,Point是InfluxDB中独有的概念,一个Point由time、field、tags三类字段组成,其中三类字段及概念分别如下:

  • time:时间戳
  • fields:记录的值
  • tags:索引的属性

3.3 InfluxDB特点

  • 内置 HTTP 接口,使用方便。
  • 数据可以打标记,这样查询可以很灵活。
  • 类 SQL 的查询语句。
  • 安装管理很简单,并且读写数据很高效。
  • 能够实时查询,数据在写入时被索引后就能够被立即查出。

        在最新的 DB-ENGINES(全球知名的数据库流行度排行榜网站) 公布的时间序列数据库排行榜中,InfluxDB 位于榜首,可想而知,InfluxDB 会越来越得到开发者及社区的广泛使用,形势一片大好。

3.4 InfluxDB使用场景

        阅读完以上内容,想必同学们对时序数据库InfluxDB就有了一定的了解,那么,可能大家就会想它可以适用于那些场景呢?这可能是目前大家心里及其迫切想要知道的,必须学习个新东西,好歹要知道这个可以干什么用,用在那些地方,对吧。心急吃不了热豆腐,同学们接着往下看。

  • IOT行业:电力、化工等工业物联网数据监测。
  • 金融行业:各类金融产品及其衍生品、数字货币数据存储与量化研究。
  • IT行业:服务器、虚拟机、容器等的状态数据实时监测。
  • 互联网行业:用户行为轨迹,日志等数据。

        这样同学们心里就有个清楚的认知,它大概可以干嘛用了吧,其实更多的领域它一样也能派上用场,任何一个数据库被设计出来, 往往局限它的不是数据库本身,而是使用者。

4. InfluxDB安装🔥

 4.1 前言

        接下里,我们就进行数据库的安装教学啦。对于InfluxDB的安装,非常之简单,根据操作系统执行对应的安装命令即可。这里我以window10系统为例,给同学们演示一波Windows下如何安装InfluxDB。

4.2 下载

InfluxDB下载url:https://dl.influxdata.com/influxdb/releases/influxdb-1.7.4_windows_amd64.zip

chronograf 下载url:https://dl.influxdata.com/chronograf/releases/chronograf-1.7.8_windows_amd64.zip

注意:chronograf 是 InfluxDB的可视化后台管理端,虽然InfluxDB也提供了控制台命令端,如果你使用不习惯,可以使用chronograf 可视化工具进行操作,例如Navicat。

4.2 解压安装包

        本地下载好后,这里我们可以看到分别有两个压缩包,influxdb-1.7.4_windows_amd64.zip 与 chronograf-1.7.8_windows_amd64.zip,接下来是分别进行解压。

 4.2.1 解压influxdb

        influxdb-1.7.4_windows_amd64.zip解压后,我们可以看到influxDB的数据库文件非常简单。如下图所示:

 4.2.2 修改配置文件

       由于 InfluxDB 的数据存储主要有三个目录。默认情况下是 meta、wal 、 data 这三个目录,InfluxDB 应用程序启动后会自动生成,这个我们后续启动了再验证。

  • meta 用于存储数据库的一些元数据,meta 目录下有一个 meta.db 文件。
  • wal 目录存放预写日志文件,以 .wal 结尾。
  • data 目录存放实际存储的数据文件,以 .tsm 结尾。

由于配置文件指定的默认路径,我们需要将其改为我们自己自定义的路径,方便查阅。

所以接下来我们需要对influxdb.conf 配置文件进行修改,修改如下三个地方的路径指向。

这里我们直接在安装路径下的路径,比如:E:\InfluxDB\influxdb-1.7.4-1,这个改成你们本地安装路径即可。修改样例如下:

//第26行
原:dir = "/var/lib/influxdb/meta"
新:dir = "E:/InfluxDB/influxdb-1.7.4-1/meta"
//第45行
原:dir = "/var/lib/influxdb/data"
新:dir = "E:/InfluxDB/influxdb-1.7.4-1/data"
//第48行
原:wal-dir = "/var/lib/influxdb/wal"
新:wal-dir = "E:/InfluxDB/influxdb-1.7.4-1/wal"

4.2.3 修改端口

        InfluxDB服务默认端口为8086,如果你需要指定端口号,则可以修改如下配置。配置文件的第256行,将端口号设置放开并指定你想要的端口号即可,一般我是端口号默认即可。

 4.3 启动服务

        配置文件修改后,我们记得保存一下,如何启动InfluxDB服务?很坚定,直接运行Influxd.exe使用默认配置运行即可,这里也可以使用自定义的配置文件,则指定conf文件进行启动,自定义配置使用的启动命令如下:

先cmd 进入influxDB目录,然后执行以下命令即可:
influxd.exe -config influxdb.conf

如果就使用默认配置启动,则直接双击【Influxd.exe】即可启动。

双击【Influxd.exe】后会直接弹出一个小黑窗口,如果你的窗口内容看到如下输出,则就说明InfluxDB服务启动成功了。

 到此,InfluxDB服务就启动好了。

4.4 InfluxDB使用

        对于关系型数据库,例如Mysql,它有它自己的sql语法规则,而 InfluxDB 的也有它的sql语法---InfluxQL。InfluxQL是一种类似于SQL的查询语言,用于与InfluxDB数据库进行交互。

        如果你有使用关系数据库及SQL的基础,那么你可以非常快的掌握InfluxQL。但是,InfluxQL与SQL又不全一样,它缺乏SQL中的一些高级的语法,例如union,having、join等。

接下来,我们就来演示一下InfluxQL语言的使用方法。

 4.5 连接InfluxDB服务

        进入到InfluxDB安装目录后,选中文件全路径,输入cmd回车。会弹出小黑框。

然后在cmd小黑框中输入:influx 即可。

为此你就可以在该输入框中进行sql执行啦,接下来我带着大家进行学习并实践操作一下吧。 

4.6 数据库操作

4.6.1 数据库创建

这里我们先来创建一个名为influx_demo的数据库,数据库名你们随意。 

//创建数据库语句CREATE DATABASE influx_demo

 很明显是创建【influx_demo】数据库成功了。

4.6.2 查询所有数据库

 查询显示所有的数据库,命令如下:

 SHOW DATABASES

4.6.3 数据库删除

DROP DATABASE influx_demo

 对指定数据库进行删除,命令如下:

 这里我们先执行删除命令再查询核实,数据库确实不存在了。

4.6.4 数据库使用

对指定的数据库进行使用,命令如下:

USE influx_demo

4.7 表操作

4.7.1 创建表

        由于InfluxDB中没有专门创建表的命令sql,当插入一条数据point至某B表时,此B表会被自动创建,并且表的格式、字段名、字段类型也由此条插入命令决定。

4.7.2 修改表

        与创建表一样,InfluxDB中也没有修改表的命令sql,但当插入一条新数据point至某表B时,如果此point中的字段多于原B表的字段,会自动修改B表与此条插入数据的格式字段一致。

注意:此种情况仅限于新插入的数据字段与表B字段的交集即表B的情况,如果新插入数据字段与表A完全不同则会插入失败从而表结构也不变。

4.7.3 查询表

查询指定数据库下的表列表,前提是需要使用那个库,命令如下:

SHOW MEASUREMENTS

演示如下: 

4.7.4 删除表

删除表也是在使用某个数据库下进行操作的,删除表命令如下:

DROP MEASUREMENT "measurementName"

演示如下:删除名为"user"的表。

4.8 数据操作

4.8.1 插入数据

插入语句语法如下:

insert + measurement + "," + tag=value,tag=value + 空格 + field=value,field=value ;

tag与tag之间要用逗号[,]分隔;field与field之间用逗号[,]分隔; tag与field之间用空格[  ]分隔; tag都是string类型,不需要引号将value包裹; field如果是string类型,需要加引号;

我先来给大家举个新增数据的例子:

insert weather,altitude=1001,area=南 temperature=10,humidity=-4

具体可以看到数据已经被插入了。 且进行weather表查询了,也证实了weather表被自动创建了。

4.8.2 查询数据

查询语句格式与mysql 基本一致,使用select 关键字。

select * from weather

演示如下: 

4.8.3 修改数据

当 tags 和 timestamp 相同时数据会执行覆盖操作,相当于InfluxDB的更新操作。

现在我们来做个演示:我们针对第一条数据进行数据修改操作。

修改前:

修改后:

执行insert 语句:

insert weather,altitude=1001,area=南 humidity=-8,temperature=7 1691634804880043400

对比修改前,同条数据的humidity、temperature 内容已经被成功修改了。 

案例完整执行代码如下:

> select * from weather
name: weather
time                altitude area humidity temperature
----                -------- ---- -------- -----------
1691634804880043400 1001     南    -5       10
1691635565148254500 300      东    9        30
>
> insert weather,altitude=1001,area=南 humidity=-8,temperature=7 1691634804880043400
> select * from weather
name: weather
time                altitude area humidity temperature
----                -------- ---- -------- -----------
1691634804880043400 1001     南    -8       7
1691635565148254500 300      东    9        30
>

4.8.4 删除数据

删除语法与Mysql数据库的删除语法一样,都是使用delete关键字。

演示如下: 

根据时间删除: SQL如下: 

delete from weather where time = 1691634804880043400;

sql具体执行如下: 

根据网上众多资料提示可以根据 tags 进行删除,经过反复测试,删除失败了,并报err提示该字段不支持,执行语句如下:

 > delete from weather where altitude = 1001> delete from weather where area = 东

具体执行大家请看如下! 

所以这个删除语法暂时是不可取的,请大家避坑。

4.9 InfluxDB用户管理

        接下来给大家普及下InfluxDB数据库的用户管理相关知识,对于InfluxDB而言,默认管理员账号为admin,密码默认为为空,这里我们也可以添加用户和权限,如下我具体给同学们演示一下。

4.9.1 显示用户

显示当前所有的用户,语法如下:

> show users 

具体语句执行如下:

4.9.2 创建用户

如下演示下如何添加用户,具体语法如下:

> create user "test" with password '123456'

具体执行如下: 

4.9.3 创建管理员权限用户

创建一个管理员用户并赋予所有权限,语法如下:

> create user "test1" with password '123456' with all privileges 

 具体执行如下: 

4.9.4 删除用户

如下演示如何删除用户,具体如下:

> drop user "test"

具体执行如下: 

        以上就是对InfluxDB数据库操作的一些基本总结,如若了解更多可以其复杂用法可以上其官网专门学习,这里就不具体深入介绍实践了。 

5. Spring Boot集成InfluxDB🔥

        上一期,给大家介绍了InfluxDB数据库的安装和一些日常使用,接下来是给大家演示Spring Boot项目如何集成InfluxDB并实战使用,通过代码实现数据的增删改查,接下来请看是如何实现的,具有很好的教学意义,请同学们认真听,好好学哦。

5.1 创建Spring Boot项目

        这里创建一个基础的Spring Boot项目雏形,如果你还不清楚,这里推荐你参考我的这篇《Spring Boot项目如何快速搭建》

5.2 添加依赖

        接着在你项目的pom.xml配置文件中引入InfluxDB的官方SDK,这里需要注意,如果你使用的Spring Boot版本在 2以下或者更旧,就需要手动指明InfluxDB版本号,由于我是用的Spring Boot 2.3版本,在Spring Boot 2.x版本的parent中有维护InfluxDB的SDK版本,顾可以省略手动指定InfluxDB的SDK版本。

引入依赖配置如下:

<dependency><groupId>org.influxdb</groupId><artifactId>influxdb-java</artifactId>
</dependency>

5.3 配置InfluxDB连接

        这里需要在项目中配置InfluxDB的连接信息,比如连接地址、用户名、密码。

spring:influx:url: http://localhost:8086user: adminpassword:

注意:这里我们不需要再额外配置与其InfluxDB的连接属性了,虽然没有Spring data的支持,但在Spring Boot2.x版本中也实现了InfluxDB的自动化配置,所以这里只需要在配置中配置好如上三个属性即可正常使用了,具体配置属性如何注入且进行连接的可以去查看对于的源码:

org.springframework.boot.autoconfigure.influx.InfluxDbProperties

完成以上几步后,基础配置就完成了,接着我们就可以在代码中对其进行增删改查操作了。

5.4 模拟上报数据入库

        这里我们来简单模拟一个场景,创建一个定时任务来模拟数据的新增并保存到InfluxDB数据库中。具体演示代码如下:

package com.example.demo.service.impl;import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.influxdb.InfluxDB;
import org.influxdb.dto.Point;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;import java.util.concurrent.TimeUnit;@Service
@AllArgsConstructor
@Slf4j
public class InfluxDBMonitor {private InfluxDB influxDB;@Scheduled(fixedRate = 5000) //5秒执行一次public void InsertDataForInfluxDB() {//随机数字int count = (int) (Math.random() * 100);Point point = Point.measurement("test_count")     // 表名.tag("index", "index")  // 索引字段名.addField("count", count)        // 字段名1.addField("count_str", "str_" + count)        // 字段名2.time(System.currentTimeMillis(), TimeUnit.MILLISECONDS)  // 时间.build();// 往test_count库插入数据influxDB.write("influx_demo", "autogen", point);log.info("写入数据库的count值为:" + count);}}

如上定时插入数据的方法写好了,重启项目即可触发,但我们提前要先去准备创建好所对应的库。

5.5 测试

5.5.1 连接InfluxDB

先启动InfluxDB服务,不清楚具体如何启动的这里可以看我上一期教学《InfluxDB数据库如何本地搭建并使用》,如下就已经启动并连接ok了。

5.5.2 创建数据库

这里我们先创建好一个名为:Influx_demo 的库,具体语句如下:

//创建数据库语句CREATE DATABASE influx_demo

如上可见很明显是创建【influx_demo】数据库成功了。

注意: 数据库名称与上面代码方法InsertDataForInfluxDB()中定义的库名一致。 

5.5.3 查询数据库

5.5.4 启动Spring Boot项目

库已经创建好了,接着我们只需要触发我们刚写的定时插入数据的方法即可。

启动后,我们可以看到间隔5s就自动打印了一条count值,接下来,我们就是要验证数据是否被成功新增到【test_count】表中。

5.5.5 查询表数据

我们直接通过查询语句,验证数据是否被新增到【test_count】表中,查询语句如下:

select * from test_count;

如下是具体查询出来的结果: 

5.6 小结

        整体体验下来,最大的感触就是,如果项目的功能模块中用到对时间特性比较敏感的数据,例如性能监控,数据趋势走向等需求场景时,InfluxDB将会是一个不错的选择,虽然其很强很彪悍,但只要在使用的过程中遵循一定规范与适用场景,才能发挥其优秀的特性。

6. 热文推荐🔥

滴~如下推荐【Spring Boot 进阶篇】的学习大纲,请小伙伴们注意查收。

Spring Boot进阶(01):Spring Boot 集成 Redis,实现缓存自由

Spring Boot进阶(02):使用Validation进行参数校验

Spring Boot进阶(03):如何使用MyBatis-Plus实现字段的自动填充

Spring Boot进阶(04):如何使用MyBatis-Plus快速实现自定义sql分页

Spring Boot进阶(05):Spring Boot 整合RabbitMq,实现消息队列服务

Spring Boot进阶(06):Windows10系统搭建 RabbitMq Server 服务端

Spring Boot进阶(07):集成EasyPoi,实现Excel/Word的导入导出

Spring Boot进阶(08):集成EasyPoi,实现Excel/Word携带图片导出

Spring Boot进阶(09):集成EasyPoi,实现Excel文件多sheet导入导出

Spring Boot进阶(10):集成EasyPoi,实现Excel模板导出成PDF文件

Spring Boot进阶(11):Spring Boot 如何实现纯文本转成.csv格式文件?

Spring Boot进阶(12):Spring Boot 如何获取Excel sheet页的数量?

Spring Boot进阶(13):Spring Boot 如何获取@ApiModelProperty(value = “序列号“, name = “uuid“)中的value值name值?

Spring Boot进阶(14):Spring Boot 如何手动连接库并获取指定表结构?一文教会你

Spring Boot进阶(15):根据数据库连接信息指定分页查询表结构信息

Spring Boot进阶(16):Spring Boot 如何通过Redis实现手机号验证码功能?

Spring Boot进阶(17):Spring Boot如何在swagger2中配置header请求头等参数信息

Spring Boot进阶(18):SpringBoot如何使用@Scheduled创建定时任务?

Spring Boot进阶(19):Spring Boot 整合ElasticSearch

Spring Boot进阶(20):配置Jetty容器

Spring Boot进阶(21):配置Undertow容器

Spring Boot进阶(22):Tomcat与Undertow容器性能对比分析

Spring Boot进阶(23):实现文件上传

Spring Boot进阶(24):如何快速实现多文件上传?

Spring Boot进阶(25):文件上传的单元测试怎么写?

Spring Boot进阶(26):Mybatis 中 resultType、resultMap详解及实战教学

Spring Boot进阶(27):Spring Boot 整合 kafka(环境搭建+演示)

Spring Boot进阶(28):Jar包Linux后台启动部署及滚动日志查看,日志输出至实体文件保存

Spring Boot进阶(29):如何正确使用@PathVariable,@RequestParam、@RequestBody等注解?不会我教你,结合Postman演示

Spring Boot进阶(30):@RestController和@Controller 注解使用区别,实战演示

...

7. 文末🔥

        如果想系统性的学习Spring Boot,小伙伴们直接订阅bug菌专门为大家创建的Spring Boot专栏《滚雪球学Spring Boot》从入门到精通,从无到有,从零到一!以知识点+实例+项目的学习模式由浅入深对Spring Boot框架进行学习&使用。

        如果你有一定的基础却又想精进Spring Boot,那么《Spring Boot进阶实战》将会是你的最好的选择;此栏进行知识点+实例+项目的学习方式全面深入框架剖析及各种高阶玩法,励志打造全网最全最新springboot学习专栏,投资学习自己性价比最高。

        本文涉及所有源代码,均已上传至github开源,供同学们一对一参考,GitHub,同时,原创开源不易,欢迎给个star🌟,想体验下被加Star的感jio,非常感谢 ❗

       我是bug菌,一名想走👣出大山改变命运的程序猿。接下来的路还很长,都等待着我们去突破、去挑战。来吧,小伙伴们,我们一起加油!未来皆可期,fighting!

关注公众号,获取最新BAT互联网公司面试题、4000G pdf电子书籍、简历模板等硬核资源

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/1620591.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

带你启用window10专业版系统自带的远程桌面

启用window10专业版系统自带的远程桌面 文章目录 启用window10专业版系统自带的远程桌面前言1.找到远程桌面的开关2. 找到“应用”项目3. 打开需要远程操作的电脑远程桌面功能 总结 前言 Windows操作系统作为应用最广泛的个人电脑操作系统&#xff0c;在我们身边几乎随处可见。…

网站安全检测、漏洞检测、dedecms本地文件包含

可以在“站长工具”或“360网站安全检测”进行网站安全检测 以下是个人遇到的网站安全检测问题&#xff1a; 这是修改后的检测返回的信息 之前是存在高危漏洞1个页面 【高危】dedecms本地文件包含 找到Include/payment/alipay.php Include/payment/yeepay.php 从下载补丁的地…

网站漏洞检测服务 URL跳转漏洞的检测与修复

网站渗透测试是指在没有获得网站源代码以及服务器的情况下&#xff0c;模拟入侵者的攻击手法对网站进行漏洞检测&#xff0c;以及渗透测试&#xff0c;可以很好的对网站安全进行全面的安全检测&#xff0c;把安全做到最大化。在挖掘网站漏洞的时候我们发现很多网站存在域名跳转…

Web自动化漏洞检测工具:Xray

** Web自动化漏洞检测工具&#xff1a;Xray ** 下载地址: https : //github.com/chaitin/xray/releases Xray是一款功能强大的安全评估工具&#xff0c;有以下特性&#xff1a; 1.检测速度快。发包速度快; 漏洞检测算法高效。 支持范围广。大至 OWASP Top 10 通用漏洞检测&…

php网站漏洞检测对sql注入漏洞防护

近日&#xff0c;我们SINE安全对metinfo进行网站安全检测发现&#xff0c;metinfo米拓建站系统存在高危的sql注入漏洞&#xff0c;攻击者可以利用该漏洞对网站的代码进行sql注入攻击&#xff0c;伪造恶意的sql非法语句&#xff0c;对网站的数据库&#xff0c;以及后端服务器进行…

网站漏洞检测

除了可以用nagios、nessus、cacti检测网站漏洞外&#xff0c;我们还可以利用webscan.360.cn在线检测网站漏洞&#xff0c;检测出漏洞外还提供详细的解决方案&#xff0c;实在值得一试。因为webscan.360.cn要提供ftp等账户信息来验证用户&#xff0c;然后再检测漏洞&#xff0c;…

漏洞挖掘 | 通用型漏洞挖掘思路技巧

搜索公众号&#xff1a;白帽子左一&#xff0c;每天更新技术干货&#xff01;作者&#xff1a;ajie 转自地址&#xff1a;https://xz.aliyun.com/t/10539 0x01 前言 大概是在上半年提交了某个CMS的命令执行漏洞&#xff0c;现在过了那么久&#xff0c;也想通这次现挖掘通用型漏…

WEB漏洞挖掘——思路指南

本篇主要记录了WEB漏洞挖掘学习过程中的信息收集部分&#xff0c;web渗透最重要的便是信息收集&#xff0c;希望以下内容能够给予同在漏洞挖掘学习中的小伙伴一些帮助&#xff0c;若有不足之处可以告诉我&#xff0c;大家一起努力进步。大佬路过也请多多指点&#xff01; 目录…

常见的Web漏洞——XSS

目录 XSS简介 XSS原理及分类 反射型XSS 存储型XSS 基于DOM的XSS XSSer的使用 至少有一个的参数&#xff1a; 可选的参数&#xff1a; 检查选项 选择攻击向量 绕过防火墙选项 绕过器选项 特殊技术 最后注入选项 特殊最后注入选项 报告导出 XSSer演示 BeEF-XSS…

【burpsuite安全练兵场-服务端6】信息泄露漏洞-5个实验(全)

前言&#xff1a; 介绍&#xff1a; 博主&#xff1a;网络安全领域狂热爱好者&#xff08;承诺在CSDN永久无偿分享文章&#xff09;。 殊荣&#xff1a;CSDN网络安全领域优质创作者&#xff0c;2022年双十一业务安全保卫战-某厂第一名&#xff0c;某厂特邀数字业务安全研究员&…

XSS攻击是怎么回事?记录一下

title: XSS攻击 date: 2023-08-27 19:15:57 tags: [XSS, 网络安全] categories: 网络安全 今天学习了一个网络攻击的手段&#xff0c;XSS攻击技术&#xff0c;大家自建网站的朋友&#xff0c;记得看看是否有此漏洞。 &#x1f388; XSS 攻击 全称跨站脚本攻击 Cross Site Sc…

基于JAVA_Swing的图形化GUI漏洞扫描工具开发的编程思维

文章目录 前言一、工具外观整体设计二、漏洞检测类模块总结2022年6月27日更新此篇 前言 CSDN博客有很长一段时间没有更新&#xff0c;漏洞复现的文章也没有经常发了&#xff0c;原因是因为我这段时间在做一件大事&#xff0c;并且这件大事已经做完啦&#xff01;&#xff01;&…

Xray工具~(Web自动化漏洞检测)

Web自动化漏洞检测~Xray工具 下载地址: GitHub&#xff1a;https : //github.com/chaitin/xray/releases Xray 是一款功能强大的安全评估工具,主要特性有: 检测速度快。发包速度快; 漏洞检测算法高效。 支持范围广。大至 OWASP Top 10 通用漏洞检测&#xff0c;小至各种 CMS 框…

Arp欺骗截cookies入侵“中国黑客”网站(图)

放假回家&#xff0c;暂时没有自己的电脑&#xff0c;只能跑网吧。打开ie就看见网吧主页。。。这个网吧是我家附近作的最好的。在这里玩过几次&#xff0c;也提醒过老板一些漏洞。不过漏洞天天更新么~ 是个2级域名111.lzbiz.com。换成www&#xff0c;竟然是个黑客网站。。。名…

目标URL存在跨站漏洞

URL存在跨站漏洞 &#x1f696;漏洞复现&#x1f696;漏洞描述&#x1f696;解决方法&#x1f696;对于开发&#x1f696;对于安全操作&#x1f696;对于质量保证 &#x1f696;漏洞复现 记录学习中遇到的问题 该页面存在反射型XSS payload citynull&accountnull&pa…

我的第一次真实对国外某购物平台web漏洞挖掘

&#xff08;真实世界&#xff09;我的第一次真实对国外某购物平台web漏洞挖掘 开放重定向 - 低危XSS - 低危 这两组合起来就完全不一样一点的&#xff0c;个人觉得比原本高一些 危害&#xff1a;窃取用户敏感数据、用户cookie、钓鱼操作 等… 前言 这是我第一次&#xff…

对某代刷网站的渗透测试

0x01 今天闲来无事&#xff0c;在网上冲浪看帖&#xff0c;看到有个人发了一个代刷网站链接&#xff0c;出于好奇就点进去看了下&#xff0c;一看&#xff0c;好家伙&#xff0c;业务还挺多啊。可惜都要钱&#xff0c;咱可没钱&#xff01; 0x02 然后便想看看有没有办法白嫖&…

基于JavaFx的ThinkPHP漏洞扫描工具---RexHa(Aazhen)的一些说明

文章目录 吹水环节一、工具的功能&#xff08;新旧版本对比&#xff09;二、工具的使用与操作2.1 工具新旧版展示2.2 漏洞单个扫描验证功能展示2.2.1 Thinkphp-2.x rce--&#x1f44c;&#x1f3fb;2.2.2 ThinkPHP-5.0.23-RCE--&#x1f44c;&#x1f3fb;2.2.3 ThinkPHP5.0.x-…

渗透测试中真实IP

发现了一篇两年前的好文章&#xff0c;转载给大家看看&#xff0c;方便自己以后查阅。 CDN简介 CDN的全称是Content Delivery Network&#xff0c;即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节&#xff0c;使内容传输的更快、更…

常见的安全测试漏洞

一、SQL注入攻击 SQL 注入攻击主要是由于程序员在开发过程中没有对客户端所传输到服务器端的参数进行严格的安全检查&#xff0c;同时 SQL 语句的执行引用了该参数&#xff0c;并且 SQL 语句采用字符串拼接的方式执行时&#xff0c;攻击者将可能在参数中插入恶意的 SQL 查询语…