支援的 Java 原始碼註釋
使用靜態分析來掃描 Java™ 時,支援 @ValidatorMethod
、@CallbackMethod
和 @SuppressSecurityTrace
方法層次註釋。
使用註釋
您可以透過遵循下列步驟來使用註釋:
- 依預設會啟用註釋支援。註釋 .jar 檔位於解壓縮的
SAClientUtil_<version>_<os>.zip
檔的 \annotation 目錄。 - 如果您要掃描經過前置編譯的類別、.war 檔或 .jar 檔,請將
\annotation\com.static.analyzer.annotation.jar
新增至包含加註的程式碼的 Java 專案,然後重建專案。 - 如果您要在已安裝靜態分析外掛程式的整合開發環境 (IDE) 中掃描,請將
\annotation\com.static.analyzer.annotation.jar
新增至 Java 類別路徑。 - 如果您要使用靜態分析 CLI,請建立配置檔,並在其中設定
CustomBuildInfo additional_classpath="dependency_path"
,使得dependency_path
包含\annotation\com.static.analyzer.annotation.jar
檔的位置。
您可以在掃描之前新增註釋至原始碼;或是在掃描之後及分類期間新增註釋,以便識別及刪除誤判。如果您要在已安裝靜態分析外掛程式的 IDE 中掃描,可以使用掃描報告中的「幫助我修正此問題」按鈕。當您選取此按鈕時,系統會顯示可在其中新增註釋的可能點。
系統提供註釋,讓您可以將知識以安全註釋的形式直接插入原始碼中。由於註釋可用於宣告程式碼安全的部分,因此應謹慎使用。屬性不應用於需掃描是否有安全漏洞的程式碼。如果您使用註釋,則安全分析師可以透過停用 irgen-engine.apsettings 檔中的功能來忽略它們,該檔案位於解壓縮的 SAClientUtil_<version>_<os>.zip 檔案的 \config 目錄。在這個檔案中,請尋找這項設定:
<Setting
name="process_security_annotations"
value="true"
default_value="true"
description="When turned on, method annotations will be processed - used by DotNet and Java LSPs"
display_name="Process Security Annotations"
type="bool"
/>
若要停用此功能,請將 value="true"
變更為 value="false"
。
value="false"
,當您想使用註釋時,請設為 value="true"
。@ValidatorMethod
驗證器是在輸入資料上執行檢查的方法,經常會傳回布林值,以指出輸入是否有效。您可以將使用者輸入變更為可接受的格式,而不是使用驗證器來接受或拒絕輸入。這些方法稱為消毒器。
您可以使用 @ValidatorMethod
註釋,識別應用程式原始碼中的所有驗證器和消毒器方法。由於現在將資料視為安全,因此在靜態分析掃描期間,將會使用這項資訊來移除通過這些方法的資料流程。
@SuppressSecurityTrace
所有流經標有此註釋方法的追蹤資料都將移除。當某一組追蹤資料被識別為誤判,或是比其他追蹤資料較不重要或較不引起關注時,這會非常有用。您可以使用這個註釋來過濾掉或隱藏這些追蹤資料,以便減少雜亂。
@CallbackMethod
這個註釋用來識別應用程式的回呼點或進入點。所有的引數都被視為帶有污染。