国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Java配置47-Spring Eureka 未授權訪問漏洞修復

這篇具有很好參考價值的文章主要介紹了Java配置47-Spring Eureka 未授權訪問漏洞修復。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1. 背景

項目組使用的 Spring Boot 比較老,是 1.5.4.RELEASE 。最近被檢測出 Spring Eureka 未授權訪問漏洞。

現狀是瀏覽器直接訪問 Eureka Server 可以直接進去,看到已經注冊的服務信息。

eureka漏洞,Java配置,java,spring,eureka

2. 方法

2.1 Eureka Server 添加安全組件

Eureka Server 添加 pom 依賴:

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

2.2 Eureka Server 添加參數

spring.application.name:demo-eureka
server.port: 8088
eureka.instance.hostname=localhost
#禁用將自己作為客戶端注冊,禁用客戶端注冊行為
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
#eureka地址
eureka.client.service-url.defaultZone=http://${spring.security.user.name}:${spring.security.user.password}@${eureka.instance.hostname}:${server.port}/eureka
#eureka.client.service-url.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka
#關閉自我保護 --本地開發(fā)環(huán)境可以關閉,生產環(huán)境
eureka.server.enable-self-preservation = false
#清理節(jié)點時間
eureka.server.eviction-interval-timer-in-ms = 60000
spring.security.basic.enabled=true
spring.security.user.name=demo
spring.security.user.password=123abcd

2.3 重啟 Eureka Server

重啟 Eureka Server ,然后刷新訪問頁面,顯示登錄框:

eureka漏洞,Java配置,java,spring,eureka

輸入配置的用戶名和密碼。

spring.security.user.name=demo
spring.security.user.password=123abcd

然后就報錯了:Reason: Bad credentials。

eureka漏洞,Java配置,java,spring,eureka

奇怪,明明是按照配置文件里面輸入的,怎么還會報用戶名或密碼錯誤呢。

查了一些資料,說跟 security 加密方法有關,整了半天搞不定。

2.4 Eureka Server 升級版本

實在沒招了,只能懷疑用的框架版本太低,去重新整一個,eureka 就用了個服務發(fā)現,問題不大。

訪問:https://start.spring.io/

eureka漏洞,Java配置,java,spring,eureka

把項目下載到本地,依賴已經加好了:

	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-security</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework.security</groupId>
			<artifactId>spring-security-test</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>
	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.springframework.cloud</groupId>
				<artifactId>spring-cloud-dependencies</artifactId>
				<version>${spring-cloud.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>

在啟動類上加上注解:

package com.demo.cloudeurekaserver;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

@EnableEurekaServer
@SpringBootApplication
public class CloudEurekaServerApplication {

	public static void main(String[] args) {
		SpringApplication.run(CloudEurekaServerApplication.class, args);
	}

}

再把 2.2 的參數加到 properties 文件中(最好換個 server.port),然后 run 啟動類,訪問 eureka ,輸入用戶名和密碼,進去了:

eureka漏洞,Java配置,java,spring,eureka

2.5 Eureka Client 配置

eureka client 參數:

eureka.client.enabled=true
eureka.client.eureka-server-port=8089
eureka.client.service-url.defaultZone=http://demo:123abcd@localhost:8089/eureka/

啟動 eureka client,報錯:

javax.ws.rs.WebApplicationException: null
	at com.netflix.discovery.provider.DiscoveryJerseyProvider.readFrom(DiscoveryJerseyProvider.java:110)
	at com.sun.jersey.api.client.ClientResponse.getEntity(ClientResponse.java:634)
	at com.sun.jersey.api.client.ClientResponse.getEntity(ClientResponse.java:586)
	at com.netflix.discovery.shared.transport.jersey.AbstractJerseyEurekaHttpClient.sendHeartBeat(AbstractJerseyEurekaHttpClient.java:105)
	at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$3.execute(EurekaHttpClientDecorator.java:92)
	at com.netflix.discovery.shared.transport.decorator.MetricsCollectingEurekaHttpClient.execute(MetricsCollectingEurekaHttpClient.java:73)
	at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.sendHeartBeat(EurekaHttpClientDecorator.java:89)
	at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$3.execute(EurekaHttpClientDecorator.java:92)
	at com.netflix.discovery.shared.transport.decorator.RedirectingEurekaHttpClient.executeOnNewServer(RedirectingEurekaHttpClient.java:118)
	at com.netflix.discovery.shared.transport.decorator.RedirectingEurekaHttpClient.execute(RedirectingEurekaHttpClient.java:79)
	at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.sendHeartBeat(EurekaHttpClientDecorator.java:89)
	at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$3.execute(EurekaHttpClientDecorator.java:92)
	at com.netflix.discovery.shared.transport.decorator.RetryableEurekaHttpClient.execute(RetryableEurekaHttpClient.java:119)
	at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.sendHeartBeat(EurekaHttpClientDecorator.java:89)
	at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$3.execute(EurekaHttpClientDecorator.java:92)
	at com.netflix.discovery.shared.transport.decorator.SessionedEurekaHttpClient.execute(SessionedEurekaHttpClient.java:77)
	at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.sendHeartBeat(EurekaHttpClientDecorator.java:89)
	at com.netflix.discovery.DiscoveryClient.renew(DiscoveryClient.java:824)
	at com.netflix.discovery.DiscoveryClient$HeartbeatThread.run(DiscoveryClient.java:1388)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)

2023-11-03 14:41:26.339  WARN [test-app-service,,,] 16240 --- [tbeatExecutor-0] c.n.d.s.t.d.RetryableEurekaHttpClient    : Request execution failed with message: null
2023-11-03 14:41:26.339 ERROR [test-app-service,,,] 16240 --- [tbeatExecutor-0] com.netflix.discovery.DiscoveryClient    : DiscoveryClient_TEST-APP-SERVICE/10.136.44.122:test-app-service:60000 - was unable to send heartbeat!

com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server
	at com.netflix.discovery.shared.transport.decorator.RetryableEurekaHttpClient.execute(RetryableEurekaHttpClient.java:111)
	at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.sendHeartBeat(EurekaHttpClientDecorator.java:89)
	at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$3.execute(EurekaHttpClientDecorator.java:92)
	at com.netflix.discovery.shared.transport.decorator.SessionedEurekaHttpClient.execute(SessionedEurekaHttpClient.java:77)
	at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.sendHeartBeat(EurekaHttpClientDecorator.java:89)
	at com.netflix.discovery.DiscoveryClient.renew(DiscoveryClient.java:824)
	at com.netflix.discovery.DiscoveryClient$HeartbeatThread.run(DiscoveryClient.java:1388)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)

刷新 eureka 頁面,也沒有服務信息,服務注冊失敗了。

這是因為從 Spring Boot 2.0 開始,默認情況下會啟用CSRF保護,以防止CSRF攻擊應用程序,導致服務注冊失敗。

2.6 Eureka Server 添加代碼

修改 Eureka Server :

package com.demo.cloudeurekaserver;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
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;

@EnableEurekaServer
@SpringBootApplication
public class CloudEurekaServerApplication {

	public static void main(String[] args) {
		SpringApplication.run(CloudEurekaServerApplication.class, args);
	}

	/**
	 * springboot 從 2.0 開始,默認情況下會啟用CSRF保護
	 * 需要關閉
	 */
	@EnableWebSecurity
	static class WebSecurityConfig extends WebSecurityConfigurerAdapter {
		@Override
		protected void configure(HttpSecurity http) throws Exception {
			//方法1:關閉csrf
//			http.csrf().disable();
			//方法2:忽略/eureka/** 所有請求
			http.csrf().ignoringAntMatchers("/eureka/**");
			super.configure(http);
		}
	}
}

重啟 Eureka Server 和 Eureka Client ,這次沒有報錯,刷新頁面,重新登錄后,看到注冊的服務信息:

eureka漏洞,Java配置,java,spring,eureka

2.7 其他問題

在 Spring Security 5.7.0-M2 中,WebSecurityConfigurerAdapter 被棄用了,Spring 鼓勵用戶轉向基于組件的安全配置。這意味著,現在應該使用基于組件的安全配置來配置 HttpSecurity,而不是繼承 WebSecurityConfigurerAdapter。這種方式更加靈活,可以更好地支持 Spring Boot 2.x 和 Spring 5.x。

eureka漏洞,Java配置,java,spring,eureka

我試了幾個方法,沒有替換掉,靠你了,耿小姐。

先這樣吧。
eureka漏洞,Java配置,java,spring,eureka
(圖網,侵刪)文章來源地址http://www.zghlxwxcb.cn/news/detail-753487.html

到了這里,關于Java配置47-Spring Eureka 未授權訪問漏洞修復的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 【漏洞】【Druid】Druid未授權訪問漏洞,修復方案。springboot

    漏洞描述: Druid是阿里巴巴數據庫出品的,為監(jiān)控而生的數據庫連接池,并且Druid提供的監(jiān)控功能,監(jiān)控SQL的執(zhí)行時間、監(jiān)控Web URI的請求、Session監(jiān)控,首先Druid是不存在什么漏洞的。但當開發(fā)者配置不當時就可能造成未授權訪問。 解決建議: 修改中間件配置 給出的例子,

    2024年02月11日
    瀏覽(30)
  • MongoDB未授權訪問漏洞驗證與修復過程

    MongoDB未授權訪問漏洞驗證與修復過程

    環(huán)境:Windows,MongoDB3.2 本文是Windows!Windows!Windows!環(huán)境下 可以看到該ip存在MongoDB未授權訪問漏洞,沒有進行身份驗證 可以看到連接被拒絕

    2024年02月11日
    瀏覽(22)
  • Spring Boot Actuator未授權訪問漏洞

    Spring Boot Actuator 端點的未授權訪問漏洞是一個安全性問題,可能會導致未經授權的用戶訪問敏感的應用程序信息。 可是并不用太過擔心,Spring Boot Actuator 默認暴漏的信息有限,一般情況下并不會暴露敏感數據。 注冊中心有些功能集成了actuator,如果同時使用eureka和actuator,可

    2024年02月13日
    瀏覽(19)
  • spring boot未授權訪問及Swagger漏洞處理

    無需修改源碼,處理spring boot未授權訪問及Swagger漏洞處理 風險程度 :【高危】 漏洞概述 : 未授權訪問可以理解為需要安全配置或權限認證的地址、授權頁面存在缺陷,導致其他用戶可以直接訪問,從而引發(fā)重要權限可被操作、數據庫、網站目錄等敏感信息泄露。登陸驗證一

    2024年02月16日
    瀏覽(26)
  • 如何解決 Spring Boot Actuator 的未授權訪問漏洞

    如何解決 Spring Boot Actuator 的未授權訪問漏洞

    Spring Boot Actuator ?的作用是提供了一組管理和監(jiān)控端點,允許你查看應用程序的運行時信息,例如健康狀態(tài)、應用程序信息、性能指標等。這些端點對于開發(fā)、 測試 ?和運維團隊來說都非常有用,可以幫助快速診斷問題、監(jiān)控應用程序的性能,并采取必要的措施來維護和管理

    2024年02月07日
    瀏覽(30)
  • Java安全漏洞:Druid未授權訪問解決

    Java安全漏洞:Druid未授權訪問解決

    相信很多朋友在服務器安全掃描的時候,遇到過 Druid未授權訪問低風險漏洞 提示。本文先對Druid未授權訪問漏洞進行介紹和分析,最后給出兩種解決辦法,供大家參考。 漏洞說明:Druid由阿里巴巴數據庫出品,為監(jiān)控而生的數據庫連接池,并且Druid可以提供監(jiān)控,監(jiān)控SQL的執(zhí)

    2024年02月03日
    瀏覽(34)
  • 配置開啟Docker2375遠程連接與解決Docker未授權訪問漏洞

    配置開啟Docker2375遠程連接與解決Docker未授權訪問漏洞

    首先 需要安裝docker ,參考我這篇文章:基于CentOS7安裝配置docker與docker-compose 配置開啟Docker遠程連接的步驟 : 1-編輯/usr/lib/systemd/system/docker.service 文件 : 配置完成后完整的 docekr.service : systemctl daemon-reload 與systemctl restart docker : systemctl status docker : 查看docker狀態(tài) (后面增加的內

    2024年02月05日
    瀏覽(29)
  • 在SpringBoot中通過配置Swagger權限解決Swagger未授權訪問漏洞

    在SpringBoot中通過配置Swagger權限解決Swagger未授權訪問漏洞

    博主 默語帶您 Go to New World. ? 個人主頁—— 默語 的博客???? 《java 面試題大全》 ??惟余輩才疏學淺,臨摹之作或有不妥之處,還請讀者海涵指正。??? 《MYSQL從入門到精通》數據庫是開發(fā)者必會基礎之一~ ?? 吾期望此文有資助于爾,即使粗淺難及深廣,亦備添少許微薄

    2024年04月23日
    瀏覽(24)
  • 【解決問題】在SpringBoot中通過配置Swagger權限解決Swagger未授權訪問漏洞

    Swagger是一個規(guī)范和完整的框架,用于生成、描述、調用和可視化 RESTful 風格的 Web 服務。其中,Swagger-UI會根據開發(fā)人員在代碼中的設置來自動生成API說明文檔。若存在相關的配置缺陷,攻擊者可以在未授權的狀態(tài)下,翻查Swagger接口文檔,得到系統(tǒng)功能API接口的詳細參數,再

    2024年02月02日
    瀏覽(21)
  • Nacos未授權訪問修復方案

    Nacos未授權訪問修復方案

    Nacos 是 SpringCloud Alibaba 微服務架構中的一個組件,主要作用是服務注冊和發(fā)現以及分布式配置管理,通常情況下 Nacos 中存儲著 MySQL、Redis 等數據庫的賬號和密碼。當前使用的版本存在用戶讀取、添加、登陸的漏洞。 通過版本漏洞,攻擊者可以在不登陸系統(tǒng)的情況下讀取已存

    2024年02月14日
    瀏覽(15)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包