鑒于最近的 Log4J漏洞 ,在 gradle 專案中升級傳遞依賴項的最安全方法是什么?我的專案沒有明確使用 log4j(它使用 logback),但它有許多依賴項,這些依賴項帶來了易受攻擊的版本(< 2.15.0)。首先,如果我的 SLF4J 使用 logback,是否需要升級任何東西?如果我要升級,如何強制 2.15 出現在類路徑中而不是舊版本中?
uj5u.com熱心網友回復:
將以下內容添加到您的gradle.build檔案中:
configurations.all {
resolutionStrategy.eachDependency { details ->
if (details.requested.group == 'org.apache.logging.log4j') {
details.useVersion '2.16.0'
details.because 'zero-day-exploits suck'
}
}
}
dependencies {
…
}
請注意,正如檔案指出的那樣:
以下機制允許您撰寫直接注入決議引擎的規則。因此,它們可以被視為蠻力解決方案,這可能會隱藏未來的問題(例如,如果添加了新的依賴項)。因此,一般的建議是僅在其他方法不充分時才使用以下機制。
我意識到 OP 要求以“最安全”的方式來升級依賴項——我選擇將其解釋為最有可能消除零日漏洞。盡管如此,我確實認識到這種蠻力方法并不能保證庫之間的兼容性,但這應該確保沒有易受攻擊的 log4j 版本最終出現在您的依賴樹/構建中。
您當然應該gradle dependencies在進行更改后運行,以確保更改已生效并且您沒有任何遺留問題的版本。
更新:洗掉了版本比較,如這里推薦的。
更新 2:將版本增加到 2.16.0
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/384729.html
下一篇:安全restapi節點js
