我們有一個公司/私人 maven 注冊表(“artifactory”),我們的專案使用它來解決專案的依賴關系。
這個私有的 Maven 注冊表還代理 Maven Central 的公共依賴項,這意味著內部注冊表首先沒有決議的依賴項。
我們希望避免供應鏈攻擊,即有人使用 Maven Central 中的相同識別符號多載我們在私有/公司 Maven 注冊表中使用的自定義依賴項。再說了,即在發布的Maven中央惡意依賴構件用相同的groupId并artifactId作為內部一個,但具有較高的version-即一會又參加我們的系統優先級和肆虐。
在 npm 中,有一種機制允許“標記”對某個私有注冊表的依賴項(通過scope)。
Maven 中是否有類似的機制,允許某些依賴項僅從內部工件決議,并防止它從 Maven Central 決議?
我在想類似的事情artifactory:
<dependency>
<groupId>org.acme</groupId>
<artifactId>supersecret</artifactId>
<version>3.141</version>
<artifactory>internal_corporate_artifactory_name</artifactory> <!-- as described in settings.xml or Super-Pom -->
</dependency>
uj5u.com熱心網友回復:
你可以用不同的方式解決這個問題。
首先,您<mirror>在您的 中定義 a settings.xml,以便所有請求都轉到您的 Artifactory。
在 Artifactory 中,您為要訪問的所有外部存盤庫定義一個虛擬存盤庫(它將是您用作 mirro 的通用虛擬存盤庫的一部分)。
現在對于該虛擬存盤庫,您可以定義“排除模式”。這允許您告訴 Artifactory 不要com.yourcompany針對外部存盤庫決議 groupId 。
uj5u.com熱心網友回復:
添加到 J Fabian Meier 的回答-
在鏡像 Maven Central 的遠程存盤庫上使用排除模式,例如排除與您公司的組 ID 匹配的工件。
可以在以下鏈接中找到更多資訊:
- JFrog 知識庫:如何使用包含/排除模式?
- JFrog 博客:另一個在遠程存盤庫中使用排除模式的案例:命名空間陰影(又名“依賴混淆”)攻擊
- JFrog 博客:供應鏈攻擊的一年:如何保護您的 SDLC
- JFrog 博客:使用包含和排除模式優化存盤庫安全性和性能
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/329689.html
