Apache Log4j 爆核弹级漏洞,Spring Boot 默认日志框架就能完美躲过。。。

简介: 突发!Apache Log4j2 报核弹级漏洞。。赶紧修复!!如果你使用的是 Log4j 1.x、Logback 或者其他日志框架,这次就可以幸免于难。

这两天沸沸扬扬的 Log4j2 漏洞门事件炒得热火朝天:


突发!Apache Log4j2 报核弹级漏洞。。赶紧修复!!


如果你使用的是 Log4j 1.x、Logback 或者其他日志框架,这次就可以幸免于难。


Log4j 1.x 就不用说了,这是老古董了,也就是传说中的老牌日志框架 "Log4j",曾经无处不在,现在很少用到了,除非在一些老系统中,新项目基本都是 Log4j 2.x 和 Logback 了。


Log4j 2.x 就是对 Log4j 1.x 的升级,得到了重大改进,并且吸引了 Logback 中的优秀设计并加以优化,现在得比较多。


Logback 同样也是 Log4j 的作者开发的,拥有更多丰富的特性,是 Log4j 1.x 的替代。


Log4j 2.x 用得比较多,一是因为它是 Apache 顶级项目,二是因为它牛逼的异步日志记录性能:


image.png


更多性能对比参考:


https://logging.apache.org/log4j/2.x/performance.html


可以看到,同样都是异步模式,当线程不断增多时,Log4j 2.x 的性能吊打 Log4j 1.x 和 Logback,Logback 和 Log4j 则不相上下。


单从性能来说,Log4j 2.x 无疑是日志框架中的王者,但 Logback 也不甘下风,它凭借作为 Spring Boot 中的默认日志框架,Logback 也得到大量应用。


image.png


如图,如果我们没有指定任何其他日志 Starter,默认的就是 Logback。


image.png


它是从 Spring Boot 默认依赖中带出来的,更多可以看栈长在公众号Java技术栈分享过的《Spring Boot 自定义日志教程》。


很多粉丝说用的 Logback,没有躺枪,可能也是因为使用了 Spring Boot 默认的日志配置吧,Spring Boot 机智了一回?


为什么 Logback 能成为 Spring Boot 的默认日志框架?


个人认为,主要原因是由于 Logback 是原生 SLF4J API(目前最主流的日志门面接口) 的实现,可以很轻松的切换到其他日志框架,而 Log4j 并非原生实现,它们结合 SLF4J API 都需要一个中间适配层。


这个可在参考一张国外的图:


image.png


来源:https://krishankantsinghal.medium.com/logback-slf4j-log4j2-understanding-them-and-learn-how-to-use-d33deedd0c46


SLF4J 接口的直接原生实现是 Logback,但也可以通过中间适配层连接 Log4j 等其他非原生实现的日志框架,你看明白了吗?


Log4j 2.x vs Logback 怎么选?


从上面的性能图来看,Log4j 在并发写到达 4 个线程/秒及以上,性能就开始碾压 Logback 了。


所以,如果日志量很大,对性能又有要求,那么 Log4j 2.x 无疑是首选,否则用啥都无所谓,即对日志记录没有性能要求,日志记录的快慢不会影响系统正常运行,毕竟 Logback 是 SLF4J 原生支持,一般的系统完全足够应对了。


漏洞是不可避免的,Linux、Tomcat 也经常爆严重漏洞,我们依然要用,反过来,Log4j 2.x 也是如此,不要因为一个框架出现漏洞就马上换其他框架,也许其他框架也有漏洞,只是没有爆出来而已。


不多说了,最后,栈长再通知一次,没修复的,尽快了:


突发!Apache Log4j2 报核弹级漏洞。。赶紧修复!!



相关实践学习
通过日志服务实现云资源OSS的安全审计
本实验介绍如何通过日志服务实现云资源OSS的安全审计。
相关文章
|
4月前
|
安全 Java Ruby
我尝试了所有后端框架 — — 这就是为什么只有 Spring Boot 幸存下来
作者回顾后端开发历程,指出多数框架在生产环境中难堪重负。相比之下,Spring Boot凭借内置安全、稳定扩展、完善生态和企业级支持,成为构建高可用系统的首选,真正经受住了时间与规模的考验。
367 2
|
3月前
|
安全 前端开发 Java
《深入理解Spring》:现代Java开发的核心框架
Spring自2003年诞生以来,已成为Java企业级开发的基石,凭借IoC、AOP、声明式编程等核心特性,极大简化了开发复杂度。本系列将深入解析Spring框架核心原理及Spring Boot、Cloud、Security等生态组件,助力开发者构建高效、可扩展的应用体系。(238字)
|
5月前
|
XML JSON Java
Spring框架中常见注解的使用规则与最佳实践
本文介绍了Spring框架中常见注解的使用规则与最佳实践,重点对比了URL参数与表单参数的区别,并详细说明了@RequestParam、@PathVariable、@RequestBody等注解的应用场景。同时通过表格和案例分析,帮助开发者正确选择参数绑定方式,避免常见误区,提升代码的可读性与安全性。
|
4月前
|
人工智能 运维 Java
Flink Agents:基于Apache Flink的事件驱动AI智能体框架
本文基于Apache Flink PMC成员宋辛童在Community Over Code Asia 2025的演讲,深入解析Flink Agents项目的技术背景、架构设计与应用场景。该项目聚焦事件驱动型AI智能体,结合Flink的实时处理能力,推动AI在工业场景中的工程化落地,涵盖智能运维、直播分析等典型应用,展现其在AI发展第四层次——智能体AI中的重要意义。
1622 27
Flink Agents:基于Apache Flink的事件驱动AI智能体框架
|
3月前
|
消息中间件 缓存 Java
Spring框架优化:提高Java应用的性能与适应性
以上方法均旨在综合考虑Java Spring 应该程序设计原则, 数据库交互, 编码实践和系统架构布局等多角度因素, 旨在达到高效稳定运转目标同时也易于未来扩展.
175 8
|
4月前
|
监控 Kubernetes Cloud Native
Spring Batch 批处理框架技术详解与实践指南
本文档全面介绍 Spring Batch 批处理框架的核心架构、关键组件和实际应用场景。作为 Spring 生态系统中专门处理大规模数据批处理的框架,Spring Batch 为企业级批处理作业提供了可靠的解决方案。本文将深入探讨其作业流程、组件模型、错误处理机制、性能优化策略以及与现代云原生环境的集成方式,帮助开发者构建高效、稳定的批处理系统。
544 1
|
4月前
|
安全 数据可视化 Java
AiPy开发的 Spring 漏洞检测神器,未授权访问无所遁形
针对Spring站点未授权访问问题,现有工具难以检测如Swagger、Actuator等组件漏洞,且缺乏修复建议。全新AI工具基于Aipy开发,具备图形界面,支持一键扫描常见Spring组件,自动识别未授权访问风险,按漏洞类型标注并提供修复方案,扫描结果可视化展示,支持导出报告,大幅提升渗透测试与漏洞定位效率。
|
Java Spring
spring框架之AOP模块(面向切面),附带通知类型---超详细介绍
spring框架之AOP模块(面向切面),附带通知类型---超详细介绍
317 0
|
缓存 监控 Java
Spring框架之AOP(面向切面编程)
Spring框架之AOP(面向切面编程)
193 0
|
XML 设计模式 安全
【Spring框架四】——Spring AOP 注解实现和xml方式实现1
【Spring框架四】——Spring AOP 注解实现和xml方式实现
275 0

推荐镜像

更多