支援的註釋和屬性

掃描期間會處理一些用來裝飾程式碼的註釋或屬性。於掃描期間,當程式碼中發現支援的註釋或屬性時,會利用這項資訊,將裝飾的方法標示為污染的回呼。針對標示為污染回呼的方法,會將其所有引數都視為包含受污染的資料。這會產生更多含有追蹤資料的發現項目。這個說明主題中會列出所支援的註釋和屬性。

支援的 Java™ 註譯

表 1. 支援的 Java 註譯
註釋 縮寫
javax.xml.ws.WebServiceProvider @WebServiceProvider
javax.jws.WebService @WebService
javax.jws.WebMethod @WebMethod

支援的 AppScan® 來源 Java 註譯

使用 AppScan 來源 來掃描 Java 時,支援 @ValidatorMethod@CallbackMethod@SuppressSecurityTrace 方法層次註釋。

使用 AppScan 來源 註釋

您可以透過遵循下列步驟來使用註釋:

  1. 依預設會啟用註釋支援。註釋 .jar 檔為 <install_dir>\lib\SecurityAnnotations.jar(其中 <install_dir>AppScan 來源 安裝位置
  2. 如果您要掃描經過前置編譯的類別、.war 檔或 .jar 檔,請找出包含加註程式碼的 Java 專案。
  3. SecurityAnnotations.jar 新增至專案的類別路徑。
  4. 重建專案。

您可以在掃描之前新增註釋至原始碼;或是在掃描之後及分類期間新增註釋,以便識別及刪除誤判。

系統提供註釋,讓您可以將知識以安全註釋的形式直接插入原始碼中。由於註釋可用於宣告程式碼安全的部分,因此應謹慎使用。屬性不應用於需掃描是否有安全漏洞的程式碼。如果您使用註釋,安全分析師可以選擇在 <data_dir>\config\scanner.ozsettings(其中 <data_dir>AppScan 來源 程式資料的位置,如安裝和使用者資料檔位置 中停用此特性,以忽略註釋。在這個檔案中,請尋找這項設定:

<Setting
name="process_security_annotations" 
value="true"
default_value="true" 
description="When turned on, security annotations in the 
     source code will be processed by AppScan Source." 
display_name="Process Security Annotations" 
type="bool" 
/> 

若要停用此特性,請將 value="true" 變更為 value="false"

@ValidatorMethod

驗證器是在輸入資料上執行檢查的方法,經常會傳回布林值,以指出輸入是否有效。您可以將使用者輸入變更為可接受的格式,而不是使用驗證器來接受或拒絕輸入。這些方法稱為消毒器。

您可以使用 @ValidatorMethod 註釋,識別應用程式原始碼中的所有驗證器和消毒器方法。在 AppScan 來源 掃描期間,將會使用這項資訊來移除通過這些方法的資料流程,原因是現在已將該資料視為安全。

註: 目前,並沒有規定要指定註解方法的哪些參數應被視為經過驗證。在 AppScan 來源 掃描期間,會假設所有輸入參數都已經過驗證。

@SuppressSecurityTrace

所有流經標有此註釋方法的追蹤資料都將移除。當某一組追蹤資料被識別為誤判,或是比其他追蹤資料較不重要或較不引起關注時,這會非常有用。您可以使用這個註釋來過濾掉或隱藏這些追蹤資料,以便減少雜亂。

@CallbackMethod

這個註釋用來識別應用程式的回呼點或進入點。所有的引數都被視為帶有污染。

支援的 Microsoft™ .NET 屬性

表 2. 支援的 Microsoft .NET 屬性
屬性 縮寫
System.Web.Services.WebServiceAttribute WebService
System.Web.Services.WebMethodAttribute WebMethod