Apache Log4j2 报核弹级漏洞快速修复方法

下面是Apache Log4j2报核弹级漏洞快速修复方法的详细攻略:

概述

Apache Log4j2是一个广泛使用的Java日志框架,近日被爆出一个核弹级的漏洞CVE-2021-44228。攻击者在网络上可以通过构造Payload,远程执行任意代码,进行拦截、篡改和窃取敏感信息等攻击。此次漏洞严重性极高,Apache官方已经发布了修复方案,建议尽快进行修复。以下是详细的修复方法。

修复方式

  1. 升级至最新版
    在官方发布的修复版本中,包含了修复此漏洞的代码,只需将原先的Log4j2版本升级至最新版即可。具体操作方式如下:
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <version>2.17.0</version>
</dependency>

将原有的依赖注释掉,再加上以上的依赖就可以升级到最新版的Log4j2。

  1. 关闭JNDI Lookup
    另一个可以避免此漏洞的方法是,手动关闭JNDI Lookup的功能。在log4j2的配置文件log4j2.xml中,配置如下内容:
<Configuration packages="org.apache.logging.log4j.core,org.apache.logging.log4j.core.appender">
   <Appenders>...</Appenders>
   <Loggers>...</Loggers>
   <ContextSelector>
        <JndiContextSelector defaultInitialContextName="java:/comp/env" />
    </ContextSelector>
    <!--JNDI Lookup is disabled.-->
    <Properties>
        <Property name="isPackageProtectionEnabled">false</Property>
        <Property name="log4j2.disable.jmx">true</Property>
        <Property name="log4j2.format.msg.async">false</Property>
        <Property name="log4j.shutdownCallbackRegistry">org.apache.logging.log4j.core.util.BasicShutdownCallbackRegistry</Property>
    </Properties>
</Configuration>

以上配置即可关闭JNDI Lookup。

示例

示例一:升级至最新版

对于使用Maven进行依赖管理的Java项目,可以在pom.xml中修改Log4j2的版本,进行升级。

首先,找到pom.xml文件中的Log4j2依赖:

<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <version>2.16.0</version>
</dependency>

将其修改为最新版:

<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <version>2.17.0</version>
</dependency>

保存并更新Maven依赖即可完成Log4j2的升级。

示例二:关闭JNDI Lookup

对于已升级至最新版Log4j2的项目,也可以通过配置文件关闭JNDI Lookup功能。

在项目的log4j2.xml配置文件中,添加以下内容:

<Configuration packages="org.apache.logging.log4j.core,org.apache.logging.log4j.core.appender">
   <Appenders>...</Appenders>
   <Loggers>...</Loggers>
   <ContextSelector>
        <JndiContextSelector defaultInitialContextName="java:/comp/env" />
    </ContextSelector>
    <!--JNDI Lookup is disabled.-->
    <Properties>
        <Property name="isPackageProtectionEnabled">false</Property>
        <Property name="log4j2.disable.jmx">true</Property>
        <Property name="log4j2.format.msg.async">false</Property>
        <Property name="log4j.shutdownCallbackRegistry">org.apache.logging.log4j.core.util.BasicShutdownCallbackRegistry</Property>
    </Properties>
</Configuration>

保存后重启项目即可生效。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Apache Log4j2 报核弹级漏洞快速修复方法 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • java 反射机制详解及实例代码

    Java反射机制详解 Java反射机制是指在运行时使用Reflection API动态获取类信息、构造对象、调用方法、访问属性等。反射机制在框架开发、ORM映射、动态代理、JavaBean工具、JUnit单元测试等领域有着广泛的应用。 反射机制的特性 Java反射机制具有以下特性: 运行时类型信息:反射机制可以获取类的各种信息,例如类名、父类、接口、方法、属…

    Java 2023年5月23日
    00
  • springboot的类加载器(org.springframework.boot.loader)过程详解

    Spring Boot提供了一种特殊的类加载器(org.springframework.boot.loader),它可以将应用程序打包成一个可执行的JAR文件,并在运行时动态加载类和资源。在本攻略中,我们将详细讲解Spring Boot的类加载器过程,并提供两个示例来说明其用法。 以下是两个示例,介绍Spring Boot的类加载器过程: 示例一:使用Spr…

    Java 2023年5月15日
    00
  • 小程序中读取腾讯文档的表格数据的实现

    小程序中读取腾讯文档的表格数据的实现可以分为以下几个步骤: 1. 创建小程序并获取腾讯文档API权限 首先需要使用微信开发者工具创建一个小程序并获取腾讯文档API权限。可以通过微信开发者工具的云开发功能来进行配置。 2. 获取腾讯文档的accessToken 在小程序中使用腾讯文档API需要先获取该文档的accessToken。可以按照以下步骤获取: 在腾讯…

    Java 2023年5月23日
    00
  • 简单了解Spring Web相关模块运行原理

    简单了解Spring Web相关模块运行原理 Spring Web是一个基于Spring框架的Web开发框架,它提供了构建Web应用程序和RESTful Web服务所需的所有功能。在了解Spring Web相关模块的运行原理之前,需要首先了解Spring MVC的基本原理。 Spring MVC基本原理 Spring MVC是一种基于模型-视图-控制器(MV…

    Java 2023年5月31日
    00
  • JDBC PreparedStatement Like参数报错解决方案

    JDBC PreparedStatement Like参数报错通常是因为在使用PreparedStatement对象时,传入的使用了%和_等特殊字符的参数没有被正确地转义,导致SQL语句解析异常。下面是解决该问题的完整攻略: 1. 使用转义字符 为了正确地处理参数中的特殊字符,我们需要在传入参数时使用转义符,在%和_字符前添加\\,使用Java代码如下: S…

    Java 2023年5月20日
    00
  • Java字符编码简介_动力节点Java学院整理

    Java字符编码简介 什么是字符编码 在计算机中,字符是通过编码来表示的。字符编码就是一种将各种字符转换为计算机可以识别的二进制数的方法。计算机普通只能读懂二进制数,因此我们需要使用字符编码来表示文本。 常见的字符编码包括 ASCII、GB2312、GBK、UTF-8等。在Java中,用char类型表示一个字符,String类型表示一组字符,它们都是采用Un…

    Java 2023年5月19日
    00
  • IntelliJ IDEA 创建 Java 项目及创建 Java 文件并运行的详细步骤

    下面是关于“IntelliJ IDEA 创建 Java 项目及创建 Java 文件并运行的详细步骤”的完整攻略: 步骤一:创建新的Java项目 打开 IntelliJ IDEA,进入欢迎界面,点击 “Create New Project”。 确认左侧栏选择 “Java”,并输入项目的名称,可以任意取。然后点击 “Next”。 在弹出的窗口中选择 “Proje…

    Java 2023年5月20日
    00
  • JAVA代码开发规范

    当进行Java代码的开发时,代码规范的一致性将会非常重要。开发人员应该遵循一定的规则和标准来编写代码,以确保代码的质量和可维护性。下面是一些常见的Java代码开发规范攻略。 1. 命名规则 命名规则是Java代码开发规范的核心。它直接影响代码的可读性和可维护性。下面是一些常见的命名规则: 1.1 类名 类名应该使用大写字母开头的驼峰命名法。例如,Person…

    Java 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部