「內容」視圖:選取的專案

在「內容」視圖的這個模式之下,您可以配置所選專案的參數。專案屬性相依於先前建立的廣域屬性。內容會隨著所選的專案而不同。

「選取的專案概觀」標籤

「概觀」標籤會顯示:

  • 專案名稱。在欄位中輸入新名稱,可以將專案重新命名。
  • 專案檔案名稱和路徑
  • 專案類型
  • 配置:這個區段顯示目標配置。如果是 .NET 和 C++Objective-C 專案,這個區段會顯示儲存在「專案相依關係」標籤中的目標配置。如果是所有其他專案類型,這個區段會顯示預設值
  • 過濾選項:選取過濾外部來源所包含的發現項目,以濾除在所掃描專案之原始檔以外的檔案中發現的任何發現項目。這個選項會減少在編譯器產生的檔案或暫存檔中報告發現項目之專案的雜訊,例如 ASP.NET
  • 漏洞分析快取選項:如果您要反覆掃描及新增自訂規則,然後在不變更原始碼的情況下重新掃描,以精簡您的程式碼庫評量,您可以設定專案內容來使用漏洞分析快取,掃描的時間會縮短許多。如果要這麼做,請在專案內容中選取啟用漏洞分析快取勾選框。選取這個勾選框之後,當您第一次掃描項目時,會建立一項漏洞分析快取。以後每一次掃描這個專案,都會使用這個漏洞分析快取,掃描時間會減少。

    如果要清除漏洞分析快取,請按一下清除快取。下一次掃描專案時,將會進行完整掃描,並建立新的漏洞分析快取。在下列情況下,您可以清除快取:

    • 前次掃描之後,專案中的原始碼又有了改變。
    • 您已進行專案配置變更,例如,新增或刪除原始檔。
    • 您已變更程式碼配置選項。例如,如果您要掃描 Java,且類別路徑已經改變,或您要掃描 C 或 C ++,且已變更 include 路徑或前置處理器定義,您可能會想清除快取。
    註: 您也可以在利用「自訂規則精靈」來建立自訂規則時,選取清除快取勾選框來清除漏洞分析快取。
  • 字串分析:字串分析會監視 JavaMicrosoft .NET 專案中的字串操作。它能夠自動偵測消毒器和驗證器常式。當進行這項偵測時,可以減少誤判 (false positive) 及假性無侵害攻擊 (false negative) 的情況。選取啟用字串分析來尋找驗證器/消毒器功能勾選框來啟用字串分析。將匯入的規則套用於廣域範圍勾選框會決定所發現的消毒器或驗證器常式,是否應該套用到單一專案或廣域層次(套用至所有專案)。
    註: 套用字串分析,掃描可能會變慢。因此,建議只應在程式碼變更之後才套用,而且應於後續掃描中停用。另外,還應該將發現的常式視為建議,由審核員來檢閱。您可以在「自訂規則」視圖中檢視這些常式。
  • 檔案編碼:您必須設定專案中各檔案的字元編碼,AppScan® 來源 才能適當讀取檔案並且(舉例來說)在程式碼視圖中正確顯示它們。
    註: AppScan® 來源 專案的預設檔案編碼是 ISO-8859-1。您可以在「一般」喜好設定頁面中,變更預設檔案編碼。

過濾器

此標籤可讓您指定所選取專案的現有過濾器,及如何套用過濾器(可直接套用過濾器 - 或套用它的反轉)。如需過濾器的相關資訊,請參閱分類及分析 - 如需全域套用它們的詳細資料,請參閱全域套用過濾器

型樣規則和規則集

當在「瀏覽器」視圖中選取專案時,「內容」視圖中的「型樣規則和規則集」標籤可讓您新增在掃描該專案時將套用的型樣規則和規則集。您可以利用基於型樣的掃描,來搜尋要呈現為發現項目的文字型樣。個別規則和規則集可同時套用至應用程式和專案。請參閱利用基於型樣的規則自訂,以瞭解基於型樣的分析,並參閱套用型樣規則和規則集,以瞭解如何在「內容」視圖中套用規則和規則集。

副檔名

使用這個標籤,來配置或新增專案的有效副檔名 - 並且將檔案從掃描中排除,以及將副檔名指定為 Web 檔。

副檔名區段列出現行專案類型的專案副檔名喜好設定頁面中已廣域設定的副檔名 (您可以使用副檔名設定功能表,為不同的專案類型選擇副檔名)。如果要將某個副檔名從現行專案的掃描中排除,請在清單中選取它,並按一下排除副檔名。這會將該副檔名列在標籤的排除的副檔名區段中。

如果要為專案新增其他副檔名,請在其他副檔名區段中選取新增副檔名,然後輸入副檔名,並指出是否應掃描使用該副檔名的檔案、將它們視為 Web 檔或加以排除。

1. 副檔名設定
設定 說明 用法範例
掃描評量 將使用所指副檔名的檔案包含在完整分析中。
  • 如果為 Java 專案建立 .xxx 副檔名,並將該副檔名標示為掃描評量,則會編譯和掃描具有該副檔名的檔案。
  • 檔案可以是專案的一部分,但如果不應該編譯和掃描該檔案,則不要將其標示為掃描評量 (例如 C++ 標頭檔)。這些檔案會包含在專案中,並在執行基於型樣的分析期間進行搜尋
Web 檔 標示使用所指副檔名的檔案,以進行 JSP 編譯。這項設定容許 AppScan® 來源 將 Web 原始檔與非 Web 原始檔加以區隔。 如果為 Java 專案建立 .yyy 副檔名,並將該副檔名標示為 Web 檔,則會將具有該副檔名的檔案安排成專案中的 Web 原始檔。當 AppScan® 來源 準備分析時,會將這些檔案前置編譯成要分析的類別。
排除 不在專案中為使用所指副檔名的檔案建立原始檔。將不會掃描使用這個副檔名的檔案。 為專案需要編譯的檔案建立 .zzz 副檔名,但不需要將該附檔名納入分析中。

來源

請指定要併入掃描的來源。

  • 工作目錄:AppScan® 來源 專案檔 (ppf) 的位置,且是所有相對路徑的基本目錄。
  • 新增原始碼根目錄移除原始碼根目錄:「來源」標籤會顯示從「專案配置」精靈為專案建立的內容,或在匯入的 ppf 中所定義的內容。

    只有在選取原始碼根目錄圖示時,才有移除原始碼根目錄可用。它用來移除原始碼根目錄。

  • 尋找原始碼根目錄(只限 Java 專案):可讓 AppScan® Source for Analysis 自動尋找所有有效的原始碼根目錄。
  • 原始碼根目錄圖示下會列出專案檔。遭排除在掃描之外的檔案有紅色檔案圖示(如果用滑鼠右鍵按一下遭排除的檔案,則其功能表已停用排除且已啟用併入)。如果要排除已併入的檔案,請用滑鼠右鍵按一下它,然後在功能表中選擇排除。如果要併入已排除的檔案,請用滑鼠右鍵按一下它,然後在功能表中選擇併入

JavaServer Pages (JSP) 專案相依關係

「JSP 專案相依關係」標籤會顯示針對指定的 JSP 專案所建立的內容。

  • 包含 Web (JSP) 內容:識別專案是否為包含 JavaServer Pages 的 Web 應用程式。
  • Web 環境定義根目錄:一個 WAR 檔,或一個含有 WEB-INF 目錄的目錄。Web 環境定義根目錄必須是有效 Web 應用程式的根目錄。
  • JSP 編譯器:依預設,Tomcat 7 是預設 JSP 編譯器設定(您可以在 Java 和 JSP 喜好設定頁面中變更預設 JSP 編譯器)。如果要瞭解 AppScan® 來源 支援的編譯器,請參閱 系統需求和安裝必備項目

    AppScan® 來源 的安裝架構包含 Apache Tomcat 第 7 版和第 8 版。如果未配置 Tomcat 7Tomcat 8 喜好設定頁面,AppScan® 來源 會利用提供的 Tomcat JSP 編譯器(目前標示為預設編譯器)來編譯 JSP 檔。如果您想要使用外部支援的 Tomcat 編譯器,請利用 Tomcat喜好設定頁面來指向您的本端 Tomcat 安裝架構。

    如果您使用 Oracle WebLogic 伺服器WebSphere® 應用程式伺服器,您必須配置適用的喜好設定頁面來指向應用程式伺服器的本端安裝架構,以便在分析期間用來編譯 JSP。如果您尚未完成此配置,當您選取 JSP 編譯器時,會出現訊息來提示您這麼做。如果您在訊息中按一下,就會看到適當的喜好設定頁面。如果您按一下,JSP 編譯器選項旁邊會顯示警告鏈結(遵循此鏈結會開啟喜好設定頁面)。

專案相依關係

「專案相依關係」標籤會顯示專案內容。這個標籤的配置設定會隨著語言而改變,例如:

  • 選項可讓您選取任何其他必要的編譯器參數。
  • JDK 設定專用於 Java
  • 前置處理器定義專用於 C/C++ 程式碼。當您指定前置處理器定義時,請勿併入編譯器的 -D 選項(例如:請指定 a=definition1 而非 -Da=definition1)。當您指定多個定義時,請使用以分號區隔的清單。
  • 目標配置只適用於 .NET 和 C++Objective-C 專案。
註: 在 Objective-C 專案的「專案相依關係」標籤中,只能編輯目標配置。標籤中的所有其他區段都是唯讀的。

編譯

  • 選項:專案配置所需要的其他編譯器參數。
  • 使用 JDK:依照「喜好設定」所配置,識別專案編譯所用的 JDK。請參閱喜好設定

    Java 專案可以參照本端 Java Development Kit (JDK) 位置。當專案移到伺服器時,JDK 路徑可能不再有效。如果要將本端專案傳送到伺服器,您必須指出每個指定了具名 JDK 的專案之預設 JDK 路徑。

    註: 既有的 JSP 專案預設編譯器是 Tomcat 7,這需要 Java 1.6 版或更新版本。如果保留 Tomcat 7 作為預設值,則使用較舊的 JDK 會導致在掃描期間發生編譯錯誤。
  • 驗證:驗證可確保已正確配置專案相依關係。它會檢查 Java 專案在來源和類別路徑之間的配置衝突,也會檢查編譯錯誤。如果在原始碼根目錄中,類別路徑中的類別重複,就會發生衝突。(如果發生衝突,請修改類別路徑來移除衝突的類別。)

    檢查衝突之後,驗證會判斷專案是否進行編譯,且會報告任何編譯錯誤。

最佳化

  • 經過前置編譯的類別:使用經過前置編譯的 Java 或 JSP 類別檔,而不在掃描期間編譯。選取之後,這個選項會停用來源暫置選項。
  • 暫置原始檔,將編譯錯誤的影響減到最少:控制 AppScan® 來源 是否將原始碼複製到暫置目錄。

    修正不符合目錄的套件需要「Java 編譯」來開啟每個原始檔。

    清除掃描之間的暫置區會提高掃描之間的效能。

前置編譯標籤(只限 ASP.NET)

前置編譯是藉由向網站中的特殊頁面(依預設是 precompile.axd)發出 HTTP 要求來完成。這個頁面由 web.config 中所指定的特殊 HTTP 處理程式來處理。這個處理程式會將整個網站(包括 client.aspx 檔)編譯到 .NET 架構目錄之下的 Temporary ASP.NET Files 目錄中,它們接著會全部在這裡進行掃描。

如果要掃描 ASP.NET 1.1,您必須設置網站來編譯及建置除錯資訊。接著,網站會編譯及建置除錯資訊,這種情況本身就是一個安全漏洞。您可以放心忽略這個漏洞,因為掃描需要它。不過,請務必不要在 web.config 中,以 debug=true 來編譯已部署的應用程式。

如果要前置編譯 ASP.NET 1.1 網站,請在 web.config 檔中,新增這個元素作為 <system.web> 元素的子項:

<httpHandlers><add verb="*" path="precompile.axd"
type="System.Web.Handlers.BatchHandler"/></httpHandlers>

您也應該在編譯元素中設定 debug=true。例如:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
	<system.web>
		<httpHandlers><add verb="*" path="precompile.axd"
		type="System.Web.Handlers.BatchHandler"/>
		</httpHandlers>
			<compilation
				defaultLanguage="c#"
				debug="true"
			/>
...

這個元素向網站指定由特殊的 .Net System.Web.Handlers.BatchHandler 類別來處理 precompile.axd 頁面。這個類別會將網站內容前置編譯到 Temporary ASP.NET Files 目錄中。

  • 網站:網站前置編譯的要求目標。預設位罝是 precompile.axdPrecompile.axd 是一個虛擬檔案,對映至 web.config 檔中所指定的檔案。
  • 輸出目錄:前置編譯的目標目錄。AppScan® 來源會在這個目錄尋找前置編譯的輸出。
  • 前置編譯 ASP.NET 網站:AppScan® 來源 在掃描期間會自動前置編譯及掃描經過前置編譯的輸出。
  • 如果前置編譯失敗,就停止掃描:選取前置編譯 ASP.NET 網站如果前置編譯失敗,就停止掃描,以便在前置編譯失敗時停止掃描。否則,只會在網站的主要輸出上繼續進行掃描。
  • 立即編譯:在掃描之前進行測試,看看基於現行設定的前置編譯是否成功。編譯輸出會顯示在「前置編譯輸出」窗格中。
  • 其他組合:對於任何 .NET 專案類型,請指定其他要掃描的組合。
  • 專案參照:列出要在其中搜尋 .NET 組合專案及現有的 .NET 專案中所參照之組合的目錄。