Spring Security安全框架

Spring Security是spring提供的一个安全框架,他可以用来保护很多东西,这里说一下他在springcloud中担任的角色

在springcloud中,Security同样担任着安全的重要角色,这里使用它对Eureka注册中心中心进行保护(这里只是举例,并不是说Spring Security只能对注册中心进行保护)

可能有人会有疑惑,注册中心只是担任着一个类似于仓库的角色,并没有具体的逻辑,他有什么安全隐患呢?

他的安全隐患就是注册,注册有什么隐患?我来演示一下。

把之前的代码复制一下

我们把f1的接口修改一下,添加一个登陆接口

如下所示

然后我们在在Ribbon负载均衡器里面同样添加上登录接口,让他继续担任我们的负载均衡的角色,如下所示

 

我们依次启动Eureka===Ribbon===f1三个项目,然后访问接口

就这么一个简单的接口,我来攻击一下

我们把f2项目当做是攻击的项目,把他改改,加上登录接口

这里postlogin担任着网络转发的功能,将账号和密码转发到正确的服务器,让正确的服务器去校验账号和密码是否合法

我们现在把他注册到服务注册中心

我们多登录几次没,然后看看

这样我们就拿到了用户的账号和密码,而且不管是服务器还是用户都不会感觉到异常

(>_<)

(>_<)

(>_<)

下面我们来对注册中心进行安全保护,加入Security安全框架

首先先引入Security依赖

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

修改配置文件

 

name:安全账号

password:安全密码,

我们在添加一个配置文件,代码如下

package org.eureka.demo;

import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;

@Configuration
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
    /**
     * 配置安全信息
     * - 禁用csrf攻击功能
     * - 开启所有请求需要验证并且使用http basic进行认证
     */
    @Override
    protected void configure(HttpSecurity http) throws Exception {

        http.csrf()
                .disable()
                .authorizeRequests()
                .anyRequest().authenticated()
                .and()
                .httpBasic();
    }
}

如果你了解Spring Security那么对这个安全配置类SecurityConfiguration的内容不陌生,在SecurityConfiguration 的configure方法内,禁用了csrf功能并且开启所有请求都需要通过basic方式进行验证。

重启项目,我们在访问http://127.0.0.1:8002

 

我们发现需要输入账号和密码,并不能如同之前那样直接看到注册中心页面,我们输入刚才配置文件里面的账号密码登录一下

同样的,这个时候我们在注册就需要账号密码了,我们启动f2攻击项目看看

 

无法获取请求,服务器拒绝了我们的注册,然后我们在修改正常的项目Ribbon负载均衡和我们的f1逻辑项目,加上账号和密码

我们再次启动负载均衡和f1项目

可以看到这个时候我们就注册成功了,但是我们的攻击项目并不能注册上去,我们在登录一下

这样的话我们的注册中心就受到了很好的保护

因为账号和密码是由我们的后台发送的,所以安全性还是很高的

当然,如果你要是有防火墙之类的硬件,注册中心的服务器只运行白名单访问的话那一般不存在安全隐患,有没有验证都无所谓

o(*≧▽≦)ツ┏━┓

o(*≧▽≦)ツ┏━┓

o(*≧▽≦)ツ┏━┓

 

配套源码:https://gitee.com/ww2510095/spring_cloud_learning

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值