当前位置: 首页 > news >正文

网络营销机构官方网站深圳企业网站定做

网络营销机构官方网站,深圳企业网站定做,网络架构1788,wordpress seo插件前言 我们被扫了一个漏洞#xff0c;SpringBoot Actuator 未授权访问#xff0c;漏洞描述是这样的#xff1a; Actuator 是 springboot 提供的用来对应用系统进行自省和监控的功能模块#xff0c;借助于 Actuator 开发者可以很方便地对应用系统某些监控指标进行查看、统计…前言 我们被扫了一个漏洞SpringBoot Actuator 未授权访问漏洞描述是这样的 Actuator 是 springboot 提供的用来对应用系统进行自省和监控的功能模块借助于 Actuator 开发者可以很方便地对应用系统某些监控指标进行查看、统计等。在 Actuator 启用的情况下如果没有做好相关权限控制非法用户可通过访问默认的执行器端点endpoints来获取应用系统中的监控信息从而导致信息泄露甚至服务器被接管的事件发生 正文 如果没有对admin的端点进行鉴权那么对于开放的网关服务可以直接通过xx/actuator访问这将是非常危险的如果你还暴露了所有端点那么还可以获取环境中的账号密码信息即使admin做了脱敏。 要对端点进行鉴权也非常简单只需要要引入spring-security依赖即可下面是Spring Cloud Gateway中的配置。 1、引入xml依赖 spring-boot-starter-web scope 是provided,引入gateway中不能有web dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-security/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactIdscopeprovided/scope/dependency2、针对Admin端点认证的配置只对/actuator/**进行认证其他地址放行使用业务自身认证。 package com.frame.ops.admin.client.config;import org.springframework.context.annotation.Bean; import org.springframework.core.annotation.Order; import org.springframework.security.config.web.server.ServerHttpSecurity; import org.springframework.security.web.server.SecurityWebFilterChain;/*** 对客户端的actuator接口进行鉴权* 引入后gateway 有性能问题*/ EnableWebFluxSecurity ConditionalOnWebApplication(type ConditionalOnWebApplication.Type.REACTIVE) public class ReactiveAdminSecurityConfig {BeanOrder(1)public SecurityWebFilterChain authorizationServerSecurityFilterChain(ServerHttpSecurity http) {http.authorizeExchange()//只对actuator接口认证.pathMatchers(/actuator/**).authenticated().anyExchange().permitAll().and().httpBasic().and().csrf().disable();return http.build();}} 3、如果是Servlet配置为 package com.frame.ops.admin.client.config;import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.beans.factory.ObjectProvider; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.security.SecurityProperties; import org.springframework.context.annotation.Bean; import org.springframework.core.annotation.Order; import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; import org.springframework.security.core.userdetails.User; import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.security.provisioning.InMemoryUserDetailsManager; import org.springframework.util.StringUtils;import java.util.List; import java.util.regex.Pattern;/*** 对客户端的actuator接口进行鉴权*/ Order(1) EnableWebSecurity ConditionalOnWebApplication(type ConditionalOnWebApplication.Type.SERVLET) public class AdminSecurityConfig extends WebSecurityConfigurerAdapter {//这个InMemoryUserDetailsManager如果你的业务中也使用了spring security那么需要自定义一 //个防止admin认证使用自定义的处理逻辑Autowiredprivate InMemoryUserDetailsManager inMemoryUserDetailsManager;private static final String NOOP_PASSWORD_PREFIX {noop};private static final Pattern PASSWORD_ALGORITHM_PATTERN Pattern.compile(^\\{.}.*$);private static final Log logger LogFactory.getLog(AdminSecurityConfig.class);Overrideprotected void configure(AuthenticationManagerBuilder auth) throws Exception {auth.userDetailsService(inMemoryUserDetailsManager);}Beanpublic InMemoryUserDetailsManager inMemoryUserDetailsManager(SecurityProperties properties,ObjectProviderPasswordEncoder passwordEncoder) {SecurityProperties.User user properties.getUser();ListString roles user.getRoles();return new InMemoryUserDetailsManager(User.withUsername(user.getName()).password(getOrDeducePassword(user, passwordEncoder.getIfAvailable())).roles(StringUtils.toStringArray(roles)).build());}private String getOrDeducePassword(SecurityProperties.User user, PasswordEncoder encoder) {String password user.getPassword();if (user.isPasswordGenerated()) {logger.warn(String.format(%n%nUsing generated security password: %s%n%nThis generated password is for development use only. Your security configuration must be updated before running your application in production.%n,user.getPassword()));}if (encoder ! null || PASSWORD_ALGORITHM_PATTERN.matcher(password).matches()) {return password;}return NOOP_PASSWORD_PREFIX password;}Overrideprotected void configure(HttpSecurity http) throws Exception {http.csrf().disable().authorizeRequests()//只有actuator开头的请求才需要认证.antMatchers(/actuator/**).authenticated().anyRequest().permitAll().and().httpBasic();}} 总结 ⁉️ 奇怪的事来了在本地测试gateway 请求正常访问/actuator端点需要认证但是在服务器上测试一些业务接口就会卡住超时请求也没到下游服务过段时间后gateway 假死任何请求不通。 这个问题只发生在gateway中对应servlet并没有发现这个问题不清楚跟Gateway 使用Reactive 有没有关系 这个问题暂未解决。但也不影响处理漏洞只要去掉admin依赖actuator依赖就行了。 作者其他要推荐的文章欢迎来学习 Prometheus 系列文章 Prometheus 的介绍和安装直观感受PromQL及其数据类型PromQL之选择器和运算符PromQL之函数Prometheus 告警机制介绍及命令解读Prometheus 告警模块配置深度解析Prometheus 配置身份认证Prometheus 动态拉取监控服务Prometheus 监控云Mysql和自建Mysql Grafana 系列文章版本OOS v9.3.1 Grafana 的介绍和安装Grafana监控大屏配置参数介绍一Grafana监控大屏配置参数介绍二Grafana监控大屏可视化图表Grafana 查询数据和转换数据Grafana 告警模块介绍Grafana 告警接入飞书通知
http://www.pierceye.com/news/619615/

相关文章:

  • 怎么做网站注册推广泰州网站建设费用
  • 找南阳建立网站的公司网址大全最新版的
  • 网站建设与维护就业前景小程序开发外包注意事项
  • 胶州网站建设哪里有天润网站建设
  • 网站备案 怎么加搜索引擎网站建设
  • 做外贸自己开公司网站网站建设三个友好
  • 深圳高端品牌网站设计网站建设实训报告收获
  • 万虹点读机如何做系统下载网站网站seo的重要性
  • 同一家公司可以做几个网站吗铁岭网站开发公司
  • 网站推广费用大概需要多少钱个人二级网站怎么做
  • 查询企业的网站有哪些山东平台网站建设找哪家
  • 如何推广外贸型网站wordpress本地环境迁移
  • 网站建设国内外现状网站建设公司 网络服务
  • 百度网站首页福田时代汽车官方网站
  • 网站建设智推网深圳进出口贸易有限公司
  • 网站开发语言pwordpress v4.9.5
  • 东莞建站模板源码东莞注塑切水口东莞网站建设
  • 做文案策划需要看什么网站服装网站开发目的
  • 湖北定制型网站建设微信公众平台网页版
  • 需要做网站的公司有哪些免费网页模板之家
  • 淘客网站怎么备案合肥在线官网
  • 马上飞做的一些网站免费自助建站系统有哪些
  • 建网站投放广告赚钱wordpress全屏弹窗插件
  • 电子商务公司网站模版通辽网站建设公司
  • 国外社交网站建设苏州seo门户网
  • 小程序建站公司唐山网页搜索排名提升
  • 网站后台模板北京网络营销方案
  • 网站如何不被百度搜到浙江网站怎么做推广
  • 网站建设主机类型怎么选diy电子商城网站
  • 中文域名 怎么做网站门户网站建站系统