zoukankan      html  css  js  c++  java
  • log4j2漏洞解决办法

    maven项目作为例子

    • 第一步,引入最新的apache log4j 2.15.0的jar包
    <!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core -->
    <dependency>
    	<groupId>org.apache.logging.log4j</groupId>
    	<artifactId>log4j-core</artifactId>
    	<version>2.15.0</version><!--$NO-MVN-MAN-VER$-->
    </dependency>
    
    <!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-api -->
    <dependency>
    	<groupId>org.apache.logging.log4j</groupId>
    	<artifactId>log4j-api</artifactId>
    	<version>2.15.0</version><!--$NO-MVN-MAN-VER$-->
    </dependency>
    
    • log4j2的配置文件
    <?xml version="1.0" encoding="UTF-8"?>
    <Configuration status="WARN">
    
        <!--全局参数-->
        <Properties>
            <Property name="pattern">%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L - %m%n</Property>
            <Property name="logDir">/data/logs/dust-server</Property>
        </Properties>
    
        <Loggers>
            <Root level="INFO">
                <AppenderRef ref="console"/>
                <AppenderRef ref="rolling_file"/>
            </Root>
        </Loggers>
    
        <Appenders>
            <!-- 定义输出到控制台 -->
            <Console name="console" target="SYSTEM_OUT" follow="true">
                <!--控制台只输出level及以上级别的信息-->
                <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
                <PatternLayout>
                    <Pattern>${pattern}</Pattern>
                </PatternLayout>
            </Console>
            <!-- 同一来源的Appender可以定义多个RollingFile,定义按天存储日志 -->
            <RollingFile name="rolling_file"
                         fileName="${logDir}/dust-server.log"
                         filePattern="${logDir}/dust-server_%d{yyyy-MM-dd}.log">
                <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
                <PatternLayout>
                    <Pattern>${pattern}</Pattern>
                </PatternLayout>
                <Policies>
                    <TimeBasedTriggeringPolicy interval="1"/>
                </Policies>
                <!-- 日志保留策略,配置只保留七天 -->
                <DefaultRolloverStrategy>
                    <Delete basePath="${logDir}/" maxDepth="1">
                        <IfFileName glob="dust-server_*.log" />
                        <IfLastModified age="7d" />
                    </Delete>
                </DefaultRolloverStrategy>
            </RollingFile>
        </Appenders>
    </Configuration>
    
    • 编写一个测试类
    public class Log4j2Demo {
    
        private static  final Logger LOGGER=LogManager.getLogger();
        public static void main(String[] args) {
            String username="${java:os}";
    
            LOGGER.info("Hello, {}",username);
        }
    }
    

    log4j2快速修复的措施

    • 临时解决方案
    设置jvm参数 “-Dlog4j2.formatMsgNoLookups=true”
    设置“log4j2.formatMsgNoLookups=True”
    系统环境变量“FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS”设置为“true”
    关闭对应应用的网络外连,禁止主动外连
    
    • 举一个设置环境变量的方法
    # vi /etc/proflie
    // 在最后追加
    # export FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS=true
    // 保存退出
    #  esc + wq
    // 让环境变量立即生效需要执行如下命令
    # source /etc/proflie
    // 一般需要重新注销系统才能生效,最后可以通过echo命令测试一下:  
    # echo $PATH
    

    https://blog.csdn.net/lumingzhu111/article/details/121871114
    https://jingyan.baidu.com/article/b87fe19e6b408852183568e8.html

  • 相关阅读:
    shell文件包含
    shell输入/输出重定向
    shell流程控制
    shell echo命令(六)
    shell基本运算符(五)
    shell数组(四)
    shell传递参数-$的用法(三)
    SQL 注入 处理
    WPF 还未开始我就打算结束
    Java SDK 2.0
  • 原文地址:https://www.cnblogs.com/peijyStudy/p/15695727.html
Copyright © 2011-2022 走看看