相信昨天,很多小夥伴都因為Log4j2的史詩級漏洞忙翻了吧?
看到群裡還有小夥伴說公司裡還特別建了800+人的群在處理...
好在很快就有了緩解措施和解決方案。同時,log4j2官方也是速度影響釋出了最新的修復版本。各應用方也可以執行較為穩定的修復方案了。
不過我看到群裡發出來的各種修復方法,還真是不好看...所以這裡也提一下Spring Boot使用者怎麼修復最簡單吧。
最簡修復方式
有些小夥伴其實想到了直接通過Spring Boot的Starter去解決,所以還給Spring Boot提了Issue,希望spring-boot-starter-log4j2可以支援最新的2.15版本(提Issue的時候還是rc1,現在已經release了)
但熟悉Spring Boot元件的版本機制的話,其實這個並不需要特地發版解決。只需要加個簡單配置就可以了,具體如下圖:
是的,就是這麼簡單,只需要在pom.xml
中像下面配置就可以了:
<properties>
<log4j2.version>2.15.0</log4j2.version>
</properties>
如果您正在學習Spring Boot,那麼推薦一個連載多年還在繼續更新的免費教程:http://blog.didispace.com/spring-boot-learning-2x/
後記
不知道大家有沒有發現,最近幾次因為漏洞影響到我們Spring Boot應用的都不是Spring Boot原裝的東西。
比如:這次的Log4j2, 其實並不是Spring Boot預設使用的日誌元件,Spring Boot預設使用Logback。所以這次沒有去更改日誌元件的小夥伴們昨天都在群裡看熱鬧。。。
而再之前比較嚴重的漏洞大多都是由另外一位第三方元件引起的,相信你也猜到是誰了吧?
對的,就是Fastjson。
Spring Boot預設的JSON字串序列化和反序列化工具是Jackson,而並非Fastjson。不過不知道從什麼時候開始,就開始流行Fastjson的方案(我記得XML配置時代就開始了,可能是效能考慮?)。
最近DD這邊因為還是都用原裝元件,所以都沒碰到這些問題,還挺舒坦的。所以,最後還是建議大家如果沒有沒有碰到什麼特別的效能要求,或其他原裝元件無法完成的任務時候,再去採用其他方案來替換預設方案,這樣會更加穩定。畢竟,預設方案除了Spring官方,整個生態也是應用最為廣泛的,它們更經得起考驗。
最後,調研下,大家平時使用都替換哪些Spring Boot的預設元件呢?留言區告訴大家吧~
歡迎關注我的公眾號:程式猿DD,分享外面看不到的乾貨與思考!