国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 基于SpringBoot應用監控Actuator安全隱患及解決方式

基于SpringBoot應用監控Actuator安全隱患及解決方式

2021-10-20 11:09lucky jaler Java教程

這篇文章主要介紹了SpringBoot應用監控Actuator安全隱患及解決方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

概述

微服務作為一項在云中部署應用和服務的新技術是當下比較熱門話題,而微服務的特點決定了功能模塊的部署是分布式的,運行在不同的機器上相互通過服務調用進行交互,業務流會經過多個微服務的處理和傳遞,在這種框架下,微服務的監控顯得尤為重要。

而Actuator正是Spring Boot提供的對應用系統的監控和管理的集成功能,可以查看應用配置的詳細信息,例如自動化配置信息、創建的Spring beans信息、系統環境變量的配置信息以及Web請求的詳細信息等。

如果使用不當或者一些不經意的疏忽,可能造成信息泄露等嚴重的安全隱患。

Actuator使用

Actuator應用監控使用只需要添加spring-boot-starter-actuator依賴即可,如下:

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

可以在application.properties中指定actuator的訪問端口、訪問路徑等信息:

# 訪問示例:http://localhost:9595/monitor
management:
  endpoints:
    web:
      # actuator的訪問路徑,替換默認/actuator
      base-path: /monitor
      # 設置是否暴露端點 默認只有health和info可見
      exposure:
        # include: env   # 方式1: 暴露端點env,配置多個以,隔開
        include: "*"     # 方式2: 包括所有端點,注意需要添加引號
        # 排除端點
        exclude: shutdown
  server:
    port: 9595  #新開監控端口,不和應用用同一個端口
  endpoint:
    health:
      show-details: always # 顯示db、redis、rabbti連接情況等
    shutdown:
      enabled: true  #默認情況下,除shutdown以外的所有端點均已啟用。手動開啟

此時,運行示例,訪問/monitor/即可查看所有端點信息,再訪問/monitor/env即可查看該應用全部環境屬性,如圖:

基于SpringBoot應用監控Actuator安全隱患及解決方式

基于SpringBoot應用監控Actuator安全隱患及解決方式

Endpoints(端點)介紹

Endpoints 是 Actuator 的核心部分,它用來監視應用程序及交互,spring-boot-actuator中已經內置了非常多的Endpoints(health、info、beans、httptrace、shutdown等等),同時也允許我們擴展自己的端點。

Endpoints 分成兩類:原生端點和用戶自定義端點;自定義端點主要是指擴展性,用戶可以根據自己的實際應用,定義一些比較關心的指標,在運行期進行監控。

原生端點是在應用程序里提供的眾多 restful api 接口,通過它們可以監控應用程序運行時的內部狀況。原生端點又可以分成三類:

  • 應用配置類:可以查看應用在運行期間的靜態信息:例如自動配置信息、加載的spring bean信息、yml文件配置信息、環境信息、請求映射信息;
  • 度量指標類:主要是運行期間的動態信息,例如堆棧、請求連、一些健康指標、metrics信息等;
  • 操作控制類:主要是指shutdown,用戶可以發送一個請求將應用的監控功能關閉。

Actuator 默認提供了以下接口,具體如下表所示:

ID

描述

默認啟用

默認公開

auditevents 公開當前應用程序的審計事件信息 Yes No
beans 顯示應用程序中所有Spring bean的完整列表 Yes No
conditions 顯示在配置和自動配置類上評估的條件以及它們是否匹配的原因 Yes No
configprops 顯示所有@ConfigurationProperties對照的列表 Yes No
env 從Spring的ConfigurableEnvironment中公開屬性 Yes No
flyway 顯示已應用的任何Flyway數據庫遷移 Yes No
health 顯示應用程序健康信息 Yes Yes
httptrace 顯示HTTP跟蹤信息(默認情況下,最后100個HTTP請求-響應交互) Yes No
info 顯示任意應用程序信息 Yes Yes
loggers 顯示和修改應用程序中記錄器的配置 Yes No
liquibase 顯示已應用的任何Liquibase數據庫遷移 Yes No
metrics 顯示當前應用程序的“指標”信息 Yes No
mappings 顯示所有@RequestMapping路徑對照的列表 Yes No
scheduledtasks 顯示應用程序中調度的任務 Yes No
sessions 允許從Spring Session支持的會話存儲中檢索和刪除用戶會話 Yes No
shutdown 讓應用程序優雅地關閉 No No
threaddump 執行線程轉儲 Yes No

安全措施

如果上述請求接口不做任何安全限制,安全隱患顯而易見。實際上Spring Boot也提供了安全限制功能。比如要禁用/env接口,則可設置如下:

endpoint:
 env:
    enabled: false

另外也可以引入spring-boot-starter-security依賴

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

在application.properties中開啟security功能,配置訪問權限驗證,這時再訪問actuator功能時就會彈出登錄窗口,需要輸入賬號密碼驗證后才允許訪問。

spring:
 security:
    user:
      password: 123456
      name: jaler

為了只對actuator功能做權限驗證,其他應用接口不做認證,我們可以重新定制下SpringSecurity

package com.jaler.common.common.config; 
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.Environment;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
 
@Configuration
@EnableWebSecurity
public class ActuatorSecurityConfig extends WebSecurityConfigurerAdapter {
 
  @Autowired
  Environment env;
 
  @Override
  protected void configure(HttpSecurity security) throws Exception { 
        String contextPath = env.getProperty("management.endpoints.web.base-path");
        if(StringUtils.isEmpty(contextPath)) {
            contextPath = "";
        }
        security.csrf().disable();
        security.authorizeRequests()
                .antMatchers("/**"+contextPath+"/**")
                .authenticated()
                .anyRequest()
                .permitAll()
                .and()
                .httpBasic(); 
     }
}

再次訪問http://localhost:9595/monitor,此時需要進行權限驗證,如下圖:

基于SpringBoot應用監控Actuator安全隱患及解決方式

安全建議

1.只開放某些無敏感信息的端點。

2.打開安全限制并進行身份驗證,訪問Actuator接口時需要登錄。

3.Actuator訪問接口使用獨立端口,并配置不對外網開放。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持服務器之家。

原文鏈接:https://blog.csdn.net/u013087026/article/details/109536552

延伸 · 閱讀

精彩推薦
  • Java教程升級IDEA后Lombok不能使用的解決方法

    升級IDEA后Lombok不能使用的解決方法

    最近看到提示IDEA提示升級,尋思已經有好久沒有升過級了。升級完畢重啟之后,突然發現好多錯誤,本文就來介紹一下如何解決,感興趣的可以了解一下...

    程序猿DD9332021-10-08
  • Java教程xml與Java對象的轉換詳解

    xml與Java對象的轉換詳解

    這篇文章主要介紹了xml與Java對象的轉換詳解的相關資料,需要的朋友可以參考下...

    Java教程網2942020-09-17
  • Java教程Java BufferWriter寫文件寫不進去或缺失數據的解決

    Java BufferWriter寫文件寫不進去或缺失數據的解決

    這篇文章主要介紹了Java BufferWriter寫文件寫不進去或缺失數據的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望...

    spcoder14552021-10-18
  • Java教程Java實現搶紅包功能

    Java實現搶紅包功能

    這篇文章主要為大家詳細介紹了Java實現搶紅包功能,采用多線程模擬多人同時搶紅包,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙...

    littleschemer13532021-05-16
  • Java教程Java使用SAX解析xml的示例

    Java使用SAX解析xml的示例

    這篇文章主要介紹了Java使用SAX解析xml的示例,幫助大家更好的理解和學習使用Java,感興趣的朋友可以了解下...

    大行者10067412021-08-30
  • Java教程小米推送Java代碼

    小米推送Java代碼

    今天小編就為大家分享一篇關于小米推送Java代碼,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧...

    富貴穩中求8032021-07-12
  • Java教程Java8中Stream使用的一個注意事項

    Java8中Stream使用的一個注意事項

    最近在工作中發現了對于集合操作轉換的神器,java8新特性 stream,但在使用中遇到了一個非常重要的注意點,所以這篇文章主要給大家介紹了關于Java8中S...

    阿杜7472021-02-04
  • Java教程20個非常實用的Java程序代碼片段

    20個非常實用的Java程序代碼片段

    這篇文章主要為大家分享了20個非常實用的Java程序片段,對java開發項目有所幫助,感興趣的小伙伴們可以參考一下 ...

    lijiao5352020-04-06
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 精品九九久久 | 久草福利资源 | 欧美精三区欧美精三区 | 日韩在线亚洲 | 日韩精品在线免费观看 | 国产精品69毛片高清亚洲 | 日本黄色免费大片 | 一区二区三区在线免费播放 | 欧美www| 日韩成人在线观看 | 国产 欧美 日韩一区 | 伊人www22综合色 | 怡红院在线播放 | 日韩在线免费视频 | www.久久久| 亚洲精品一区二区三区在线观看 | 色综合一区 | 欧美成人一区二区 | 亚洲福利一区 | 97久久久久久久久久久久 | 免费一级欧美在线观看视频 | 久久久久99精品国产片 | 亚洲欧美一区二区三区在线 | 精品九色 | 人人爱夜夜爽日日视频 | 久久久夜夜夜 | 国产精品一区不卡 | 婷婷五月色综合香五月 | 成人国产精品 | 成人一区二区在线 | 九一午夜精品av | 黄色一区二区三区 | 国产福利91精品一区二区三区 | 日韩中文视频 | 久草中文在线观看 | 毛片免费在线 | 韩国精品一区二区三区 | 日日干,天天干 | 大象视频成人在线观看 | 成人片免费看 | 另类五月 |