springboot的安全性

如何实现 Spring Boot 应用程序的安全性?

为了实现 Spring Boot 的安全性,我们使用 spring-boot-starter-security 依赖项,并且必须添加安全配置。它只需要很少的代码。配置类将必须扩展WebSecurityConfigurerAdapter 并覆盖其方法。

比较一下 Spring Security 和 Shiro 各自的优缺点 ?

由于 Spring Boot 官方提供了大量的非常方便的开箱即用的 Starter ,包括 Spring Security 的 Starter ,使得在 Spring Boot 中使用 Spring Security 变得更加容易,甚至只需要添加一个依赖就可以保护所有的接口,所以,如果是 Spring Boot 项目,一般选择 Spring Security 。当然这只是一个建议的组合,单纯从技术上来说,无论怎么组合,都是没有问题的。Shiro 和 Spring Security 相比,主要有如下一些特点:
1. Spring Security 是一个重量级的安全管理框架;Shiro 则是一个轻量级 的安全管理框架
2. Spring Security 概念复杂,配置繁琐;Shiro 概念简单、配置简单 3. Spring Security 功能强大;Shiro 功能简单

Spring Boot 中如何解决跨域问题 ?

跨域可以在前端通过 JSONP 来解决,但是 JSONP 只可以发送 GET 请求,无法发送其他类型的请求,在 RESTful 风格的应用中,就显得非常鸡肋,因此我们推荐在后端通过 (CORS,Cross-origin resource sharing) 来解决跨域问题。这种解决方案并非 Spring Boot 特有的,在传统的 SSM 框架中,就可以通过 CORS 来解决跨域问题,只不过之前我们是在 XML 文件中配置 CORS ,现在可以通过实现WebMvcConfigurer接口然后重写addCorsMappings方法解决跨域问题。

1

2

@Configuration

public class CorsConfig implements WebMvcConfigurer {

3

4

5

6

7

8

 @Override
 public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**")

 .allowedOrigins("*")

 .allowCredentials(true)

9

10

11

 .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS") .maxAge(3600);

 }

12

13

}

项目中前后端分离部署,所以需要解决跨域的问题。

我们使用cookie存放用户登录的信息,在spring拦截器进行权限控制,当权限不符合时,直接返回给用户固定的json结果。

当用户登录以后,正常使用;当用户退出登录状态时或者token过期时,由于拦截器和跨域的顺序有问题,出现了跨域的现象。

我们知道一个http请求,先走filter,到达servlet后才进行拦截器的处理,如果我们把cors放在filter里,就可以优先于权限拦截器执行。

1

2

@Configuration

public class CorsConfig {

3

4

5

6

7

8

9

10

11

 @Bean

 public CorsFilter corsFilter() {
 CorsConfiguration corsConfiguration = new CorsConfiguration(); corsConfiguration.addAllowedOrigin("*");

 corsConfiguration.addAllowedHeader("*");

 corsConfiguration.addAllowedMethod("*");
 corsConfiguration.setAllowCredentials(true);
 UrlBasedCorsConfigurationSource urlBasedCorsConfigurationSource = new U

rlBasedCorsConfigurationSource();

12

 urlBasedCorsConfigurationSource.registerCorsConfiguration("/**", corsCo

nfiguration);

13

14

 return new CorsFilter(urlBasedCorsConfigurationSource);

 }

15

16

}

什么是 CSRF 攻击?

CSRF 代表跨站请求伪造。这是一种攻击,迫使最终用户在当前通过身份验证的Web 应用程序上执行不需要的操作。CSRF 攻击专门针对状态改变请求,而不是数据窃取,因为攻击者无法查看对伪造请求的响应。

监视器

Spring Boot 中的监视器是什么?

Spring boot actuator 是 spring 启动框架中的重要功能之一。Spring boot 监视器可帮助您访问生产环境中正在运行的应用程序的当前状态。有几个指标必须在生产环境中进行检查和监控。即使一些外部应用程序可能正在使用这些服务来向相关人员触发警报消息。监视器模块公开了一组可直接作为 HTTP URL 访问的REST 端点来检查状态。

如何在 Spring Boot 中禁用 Actuator 端点安全性?

默认情况下,所有敏感的 HTTP 端点都是安全的,只有具有 ACTUATOR 角色的用户才能访问它们。安全性是使用标准的 HttpServletRequest.isUserInRole 方法实施的。 我们可以使用来禁用安全性。只有在执行机构端点在防火墙后访问时,才建议禁用安全性。

我们如何监视所有 Spring Boot 微服务?

Spring Boot 提供监视器端点以监控各个微服务的度量。这些端点对于获取有关应用程序的信息(如它们是否已启动)以及它们的组件(如数据库等)是否正常运行很有帮助。但是,使用监视器的一个主要缺点或困难是,我们必须单独打开应用程序的知识点以了解其状态或健康状况。想象一下涉及 50 个应用程序的微服务,管理员将不得不击中所有 50 个应用程序的执行终端。为了帮助我们处理这种情况,我们将使用位于的开源项目。 它建立在 Spring Boot Actuator 之上,它提供了一个 Web UI,使我们能够可视化多个应用程序的度量。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Spring Boot提供了强大的安全管理功能,可以方便地集成到应用程序中。以下是关于Spring Boot安全管理的几个关键点: 1. 身份验证和授权:Spring Security是Spring Boot内置的安全框架,它提供了身份验证和授权的功能。身份验证用于确认用户身份,授权则用于确定用户对特定资源的访问权限。Spring Security提供了多种身份验证方式,如基于用户名和密码的认证,OAuth2.0授权等。 2. 配置安全属性:Spring Boot提供了易于使用的安全属性配置,可以通过application.properties或application.yml文件进行配置。例如,可以设置是否启用安全功能,设置信任的SSL证书,配置登录页面等。 3. 跨域请求保护:Spring Boot支持跨域请求保护,可以防止跨域请求被攻击。通过配置CORS过滤器,可以允许特定的域名进行跨域请求。 4. 安全性日志:Spring Boot提供了安全性日志功能,可以记录用户请求、认证失败、授权失败等信息。这有助于跟踪安全事件,并进行安全审计。 5. 安全性审计:Spring Boot支持安全性审计功能,可以对用户请求、认证信息、授权信息等进行审计。这有助于发现潜在的安全问题,并进行安全整改。 6. 安全性加密:Spring Boot提供了安全性加密功能,可以对敏感数据进行加密和解密。通过使用Spring Security提供的加密工具类和方法,可以方便地进行数据加密和解密操作。 总之,Spring Boot提供了丰富的安全管理功能,可以帮助开发者构建安全可靠的应用程序。通过配置和使用Spring Security,可以轻松地实现身份验证、授权、日志、审计和加密等功能,提高应用程序的安全性

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

红红火火a

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值