

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 在 Amazon Inspector SBOM 產生器中處理未解決或非標準版本參考
<a name="sbom-generator-unresolved-non-standard-version-reference"></a>

 Amazon Inspector SBOM 產生器透過直接從來源檔案識別相依性，在系統中尋找和剖析支援的成品。它不是套件管理員，不會解析版本範圍、根據動態參考推斷版本，或處理登錄查詢。它只會收集專案來源成品中定義的相依性。在許多情況下，套件資訊清單中的相依性，例如 `pom.xml`、 `package.json`或 `requirements.txt`，會使用未解析或範圍型版本來指定。本主題包含這些相依性的外觀範例。

## 建議
<a name="w2aac37c35b5"></a>

 Amazon Inspector SBOM 產生器會從來源成品中擷取相依性，但不會解析或解譯版本範圍或動態參考。如需更準確的漏洞掃描和 SBOMs，我們建議在專案相依性中使用已解析的語意版本識別符。

## Java
<a name="w2aac37c35b7"></a>

 對於 Java，Maven專案可以使用版本範圍來定義 `pom.xml` 檔案中的相依性。

```
<dependency>
    <groupId>org.inspector</groupId>
    <artifactId>inspector-api</artifactId>
    <version>(,1.0]</version>
</dependency>
```

 範圍指定可接受任何最高 1.0 且包含 1.0 的版本。不過，如果版本不是已解析的版本，Amazon Inspector SBOM 產生器將不會收集它，因為它無法映射到特定的版本。

## JavaScript
<a name="w2aac37c35b9"></a>

 對於 JavaScript， `package.json` 檔案可以包含類似下列的版本範圍：

```
"dependencies": {
    "ky": "^1.2.0",
    "registry-auth-token": "^5.0.2",
    "registry-url": "^6.0.1",
    "semver": "^7.6.0"
}
```

 `^` 運算子指定任何大於或等於指定版本的版本皆可接受。不過，如果指定的版本不是已解析的版本，Amazon Inspector SBOM 產生器不會收集它，因為這樣做可能會在漏洞偵測期間導致誤報。

## Python
<a name="w2aac37c35c11"></a>

 對於 Python， `requirements.txt` 檔案可以包含具有布林表達式的項目。

```
requests>=1.0.0
```

 `>=` 運算子指定任何大於或等於 的版本`1.0.0`都是可接受的。由於此特定表達式未指定確切版本，Amazon Inspector SBOM 產生器無法可靠地收集版本以進行漏洞分析。

 Amazon Inspector SBOM 產生器不支援非標準或模棱兩可的版本識別符，例如 Beta、最新或快照。

```
pkg:maven/org.example.com/testmaven@1.0.2%20Beta-RC-1_Release
```

**注意**  
 使用非標準字尾，例如 Beta-RC-1\_Release，不符合標準語意版本控制，且無法評估 Amazon Inspector 偵測引擎中的漏洞。