您好,由于 log4j 2.10 或更高版本中的漏洞問題,我們需要在我們的一個應用程式中洗掉上述 jar 檔案。我已經在我的 pom.xml 中嘗試過,但遇到了一些錯誤。我在構建 Maven 專案方面沒有太多經驗:(
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.3.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<name>assistant</name>
<description>Assistant</description>
<groupId>com.assistant</groupId>
<artifactId>assistant</artifactId>
<packaging>war</packaging>
<version>2.0.2</version>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-solr</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.webjars</groupId>
<artifactId>bootstrap</artifactId>
<version>4.3.1</version>
</dependency>
<dependency>
<groupId>org.webjars</groupId>
<artifactId>jquery</artifactId>
<version>3.3.1</version>
</dependency>
<dependency>
<groupId>org.webjars</groupId>
<artifactId>font-awesome</artifactId>
<version>5.7.2</version>
</dependency>
<dependency>
<groupId>javax.el</groupId>
<artifactId>javax.el-api</artifactId>
<version>3.0.0</version>
</dependency>
<!-- WORDPRESS DEPENDENCIES START-->
<dependency>
<groupId>org.kamranzafar.spring.wpapi</groupId>
<artifactId>spring-wpapi-client</artifactId>
<version>0.1</version>
</dependency>
<!-- WORDPRESS DEPENDENCIES END -->
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</project>
這是標記中的錯誤
非常感謝您的幫助

uj5u.com熱心網友回復:
首先簡要介紹一下 log4j 最近的漏洞。
- Log4J 2.15.0 存在嚴重漏洞 CVE-2021-44228(遠程代碼執行)
- Log4J 2.16.0 存在嚴重漏洞 CVE-2021-44228(遠程代碼執行)
- Log4J 2.16.0 還存在漏洞 CVE-2021-45105(DoS 漏洞)
- 編輯: log4j-api-2.17.0 上存在 CVE-2021-44832 漏洞,log4j-to-slf4j-2.17.0 上存在 CVE-2021-44832 漏洞。但這兩個漏洞并不嚴重。還是建議升級到2.17.1
建議您升級到 2.17.0 或更高版本。
此版本 (2.17.0) 包含兩個遠程代碼執行漏洞的安全修復程式,即最新的 DoS 漏洞。
您正在使用 spring-boot 父級。所以升級到 log4j 2.17.1 的一個好方法是通過 spring boot 依賴管理。只需覆寫 pom.xml 屬性部分中的 log4j 版本(無需在插件或依賴項部分執行任何操作):
<properties>
<java.version>1.8</java.version>
<log4j2.version>2.17.1</log4j2.version>
</properties>
https://snyk.io/blog/log4j-2-15-vulnerability-cve-2021-45046-critical-ace/
如果您真的只想排除 log4j 依賴項(因此您可能不會丟失所有的日志記錄功能,除非您將 log4j 替換為另一個日志記錄框架):
執行 Maven 命令
mvn dependencies:tree這將顯示 Maven 依賴層次結構。所以你只需要排除你不想要的依賴項。舉個例子 :
<dependencies> ... <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <exclusions> <exclusion> <artifactId>log4j-to-slf4j</artifactId> <groupId>org.apache.logging.log4j</groupId> </exclusion> </exclusions> </dependency> ... </dependencies>
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/405482.html
標籤:
