Nacos安全性探究

news/2024/5/15 6:13:54/文章来源:https://blog.csdn.net/htydowd/article/details/130019032

Nacos怎么做安全校验的?

以下使用nacos2.x

如上图所示, 可以直接访问Nacos的接口来获取用户列表。这说明Nacos的接口被爆露,任何情况下都可以访问,因此安全性得不到保障。

Nacos 使用 spring security 作为安全框架。spring security 使用:

在我们的 spring boot项目的 pom文件中引入:

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

启动项目后,访问接口时,必需登录才可以。 否则会弹出内置的登录界面:

记住这个界面,这是 spring security 默认的 内置登录界面。

也可以 添加配置:

@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {// @formatter:off@Overrideprotected void configure(HttpSecurity http) throws Exception {http.authorizeRequests(authorizeRequests ->authorizeRequests.antMatchers("/css/**", "/index").permitAll().antMatchers("/**").hasRole("USER")).formLogin(formLogin ->formLogin.loginPage("/login").failureUrl("/login-error"));}// @formatter:on@Beanpublic UserDetailsService userDetailsService() {UserDetails userDetails = User.withDefaultPasswordEncoder().username("user").password("password").roles("USER").build();return new InMemoryUserDetailsManager(userDetails);}
}

结论: 只要 我们的 项目中引入了 spring security 的start依赖,那么 接口 都是 安全的,除非 指定哪些接口不受限。

问题:为什么 Nacos 使用了spring security,却像是没有引入 spring security一样,接口可以随意被访问呢?

 

Nacos的spring security的配置中,如果 

nacos.core.auth.system.type

为空时,会使用 我们配置的  

nacos.security.ignore.urls

属性配置文件中: 

Nacos的 属性配置文件中已经明确写了,当前只支持 nacos 和 ldap两种,所以,Nacos 的 spring security 的配置中,会忽略掉所有的请求。这就说明,spring security 不会对任何请求做安全校验了

Nacos在启动的时候,会注册一个 自定义的 filter 来进行登录校验。

 

 Nacos提供的 filter 逻辑中,判断了 是否开启权限校验,如果没开启,则不校验。 而权限校验开关默认是关闭的。

 

因此,默认情况下不会对接口做安全校验。 这也就是 为什么 使用了spring security,却像没有使用spring security似的 没对接口做安全校验的原因。

对于有些接口,如/login等,接口逻辑中 增加了 登录校验功能,因此,即使 spring security 将请求放过,接口内部逻辑也能够完成安全校验逻辑。这就是为什么有些接口必须登录,有些接口可以随意访问。

总结:

1. 使用 spring security 可以做安全校验

2. 使用spring security 可以对指定接口进行直接放行

3. 可能spring security的安全校验不符合要求,就自己定义了安全校验功能,将spring security配置成对所有接口放行。那么 此时 安全校验功能 就需要 自己来完成。

4. 有些接口 完全依赖 安全框架的权限校验逻辑,自己不做校验。

5. 也可以在接口中 增加校验逻辑。即使 请求到了接口,那么 接口内部也可以做一些权限校验,而不用依赖安全框架

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

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

相关文章

Baumer工业相机堡盟工业相机如何通过BGAPI SDK获取每张图像的微秒时间和FrameID(C#)

BGAPI SDK获取图像微秒级时间和FrameID Baumer工业相机Baumer工业相机FrameID技术背景一、FrameID是什么&#xff1f;二、使用BGAPI SDK获取图像微秒时间和FrameID步骤 1.获取SDK图像微秒级时间2.获取SDK图像FrameIDBaumer工业相机使用微秒级时间和FrameID保存的用处Baumer工业…

混淆矩阵Confusion Matrix(resnet34 基于 CIFAR10)

目录 1. Confusion Matrix 2. 其他的性能指标 3. example 4. 代码实现混淆矩阵 5. 测试&#xff0c;计算混淆矩阵 6. show 7. 代码 1. Confusion Matrix 混淆矩阵可以将真实标签和预测标签的结果以矩阵的形式表示出来&#xff0c;相比于之前计算的正确率acc更加的直观…

jenkins打包发布前端项目

1.配置前端nodejs打包环境 1.1安装nodejs插件 1.2配置jenkins nodejs环境 2.下载git插件(使用此插件配置通过gitlab标签拉取项目) 3.创建一个自由风格的发布项目 4.配置项目构建流程 4.1添加钉钉告警 4.2配置参数化构建 4.3配置源码管理为git拉取项目 4.4配置构建环境 4.5配置…

transform属性

CSS transform属性允许对某一个元素进行某些形变, 包括旋转&#xff0c;缩放&#xff0c;倾斜或平移等。 注意事项&#xff0c;并非所有的盒子都可以进行transform的转换,transform对于行内级非替换元素是无效的,比如对span、a元素等 常见的函数transform function有&#xf…

算法笔记:匈牙利算法

1 二部图&#xff08;二分图&#xff09; 二分图&#xff08;Bipartite graph&#xff09;是一类特殊的图&#xff0c;它可以被划分为两个部分&#xff0c;每个部分内的点互不相连。 匈牙利算法主要用来解决两个问题&#xff1a;求二分图的最大匹配数和最小点覆盖数。 2 最大匹…

[C++笔记]初步了解STL,string,迭代器

STL简介 STL(standard template libaray-标准模板库)&#xff1a; 是C标准库的重要组成部分&#xff0c;不仅是一个可复用的组件库&#xff0c;而且是一个包含数据结构与算法的软件框架。 是一套功能强大的 C 模板类&#xff0c;提供了通用的模板类和函数&#xff0c;这些模板…

STM32开发(十二)STM32F103 功能应用 —— NTC 温度采集

文章目录一、基础知识点二、开发环境三、STM32CubeMX相关配置四、Vscode代码讲解&#xff08;过程中相关问题点在第五点中做解释说明&#xff09;五、知识点补充六、结果演示一、基础知识点 了解STM32 片内资源ADC。本实验是基于STM32F103开发 实现 NTC温度采集。 NTC温度采集…

3年外包离奇被裁,痛定思痛24K上岸字节跳动....

三年前&#xff0c;我刚刚从大学毕业&#xff0c;来到了一家外包公司工作。这份工作对于我来说是个好的起点&#xff0c;因为它让我接触到了真正的企业项目和实际的开发流程。但是&#xff0c;随着时间的流逝&#xff0c;我发现这份工作并没有给我带来足够的成长和挑战。 三年…

文心一言平替版ChatGLM本地部署(无需账号)!

今天用了一个超级好用的Chatgpt模型——ChatGLM&#xff0c;可以很方便的本地部署&#xff0c;而且效果嘎嘎好&#xff0c;经测试&#xff0c;效果基本可以平替内测版的文心一言。 目录 一、什么是ChatGLM&#xff1f; 二、本地部署 2.1 模型下载 2.2 模型部署 2.3 模型运…

数据结构系列13——排序(归并排序)

目录 1. 递归实现归并排序 1.1 思路 1.2 代码实现 1.3 时间复杂度和空间复杂度 2. 非递归实现归并排序 2.1 思路 2.2 代码实现 2.3 时间复杂度和空间复杂度 1. 递归实现归并排序 1.1 思路 将已有序的子序列合并&#xff0c;得到完全有序的序列&#xff1b;即先使每个子序列…

Excel 文件 - 比如 .csv文件编码问题 转为 UTF-8 编码 方法,解决中文乱码问题 - 解决科学计数显示问题

解决 excel 文件编码问题 1、方法一&#xff1a; 有点点击 excel 文件&#xff0c;然后选择打开方式&#xff0c;选择使用 Excel 2016 软件打开 选择 工具 ——> Web 选项 这里选择 UTF-8 编码 2、方法二 wps 导出为 .csv 文件&#xff0c;然后修改 csv 文件的后缀…

Linux修改密码报错Authentication token manipulation error的终极解决方法

文章目录报错说明解决思路流程排查特殊权限有没有上锁查看根目录和关闭selinux/etc/pam.d/passwd文件/etc/pam.d/system-auth文件终极办法&#xff0c;手动定义密码passwd: Have exhausted maximum number of retries for servic、ssh用普通用户登录输入密码正确但是登录时却提…

元宇宙是什么,元宇宙虚拟会议改变会议体验

随着人类社会的发展和科技的进步&#xff0c;传统的会议方式已经无法满足现代社会的需求。为了更好地满足社会的需求&#xff0c;VR全景元宇宙虚拟会议是近年来快速崛起的新兴领域&#xff0c;其融合了虚拟现实技术和通信技术&#xff0c;为人们提供了一种全新的交流、协作和学…

【探花交友】day02—完善个人信息

目录 1、完善用户信息 1.1、阿里云OSS 1.2、百度人脸识别 1.3、保存用户信息 1.4、上传用户头像 2、用户信息管理 2.1、查询用户资料 2.2、更新用户资料 3、统一token处理 3.1、代码存在的问题 3.2、解决方案 3.3、代码实现 4、统一异常处理 4.1、解决方案 4.2、…

本地部署Stable Diffusion教程,亲测可以安装成功

系列文章目录 之后补充 文章目录系列文章目录前言一、Stable Diffusion是什么&#xff1f;二、安装前的准备1.检查自己的电脑配置是否符合要求2.下载安装Git3.下载安装Python三、下载stable-diffusion-webui仓库四、运行webui-user.bat总结前言 近期&#xff0c;智能AI绘画以其…

AndroidStudio第一步安装和配置环境

AndroidStudio第一步安装和配置环境 文章目录AndroidStudio第一步安装和配置环境1.环境变量2.PATH编辑3.cmd测试版本4.android studio设置4.1 保留压缩包4.2解压缩包4.3 设置本地4.4 Dependencies5.生成apk5.15.2 需要添加才能被手机安装6.Android studio安装包和gradle下载地址…

数据仓库工具箱-第6章-订单管理

文章目录重要专业名词含义一、订单管理总线矩阵二、订单事务2.1 事实表规范化2.2 日期维度&#xff08;维度角色扮演&#xff09;2.2.1 角色扮演与总线矩阵2.3 产品维度2.3.1 产品维度共同特征2.3.2 维度的层次结构2.3.3 规范化与反规范化2.4 客户维度2.4.1 单一维度表与多维度…

Maven核心概念

一、Maven基础知识 Apache Maven是一个项目管理和构建工具&#xff0c;它基于项目对象模型&#xff08;POM&#xff09;的概念&#xff0c;通过一小段描述信息来管理项目的构建、报告和文档。 1、Maven模型 2、仓库分类 本地仓库&#xff1a;自己计算机上的一个目录中央仓库&a…

AR”将会成为“更加日常化的移动设备应用的一部分”吗

目录 1&#xff1a;AR是什么 2&#xff1a;AR给人类带来的贡献 3&#xff1a;人们在生活中可以遇到许多 AR 技术应用 4&#xff1a;AR 技术的未来发展的趋势&#xff1a; 大学主攻VR&#xff0c;从大一就对VR的知识&#xff0c;设备&#xff0c;已经所涉及的知识伴随我的整…

政务服务一网通办建设方案(ppt)

政务审批 – 设计思路 “互联网政务服务”平台主要由互联网政务服务门户、政务服务管理平台、业务办理系统、政务服务数据共享平台及硬件支撑平台五部分构成。平台建设以硬件支撑平台为基础&#xff0c;其他各平台之间的业务流、信息流通过数据共享平台实现数据互联互通。政务审…