內容掃描的最佳實務

請判斷內容工作要掃描的應用程式所正在使用的技術,然後參閱下列各類型的最佳實務。

使用測試使用者帳戶

請使用可追蹤的測試帳戶,以確保不會實際訂購服務,且可以在毀損之時重設。測試之後,測試帳戶也使「管理者」比較容易清理網站。請考量測試帳戶的下列因素:

  • 它只應有權存取資料庫中的測試記錄,因此,修改過的記錄可以還原。
  • 刪除測試帳戶所建立的新記錄。
  • 忽略來自測試帳戶的採購單或其他交易。
  • 如果網站有論壇,測試帳戶只應存取測試論壇,以免真正的客戶在測試階段中看到測試。比方說,看到跨網站 Scripting 蹦現視窗可能令人感到恐懼。
  • 如果網站會針對不同帳戶使用不同專用權,則請使用多個測試帳戶。使用多個測試帳戶可確保能夠進行更全面的應用程式測試。

起始 URL

決定是否要在起始 URL 所包含的目錄上方進行掃描。例如,給定的起始 URL 是 www.example.com/customers/default.aspx,且您已選取在起始網域中,只掃描在每個起始 URL 目錄之中及之下的鏈結勾選框。在這個狀況下,工作無法掃描 www.example.com/partners,因為它不在 customers 目錄內。如果要在 partners 目錄內進行掃描,您必須清除這個勾選框。

依預設,會選取在起始網域中,只掃描在每個起始 URL 目錄之中及之下的鏈結勾選框。

在工作的「安全」頁面上選取的「安全測試原則」及其「伺服器群組」必須對應於起始 URL。如果伺服器群組允許您掃描的 URL 或 IP 位址不在起始 URL 中,就不會測試它們的安全問題。

一般實務是每個掃描工作只限於單一網站。這個最佳實務在儀表板中提供較好的執行層次報告,通常能夠更妥善地反映出組織內不同的事業單位或責任區。請利用報告機制,依照您想要的任何方式,將不同工作的資料聚集起來。

其他網域

判斷是否有起始 URL 以外的網域,也包含有待檢查的內容。如果在第一次掃描時,您發現掃描的內容不夠,請檢查網站架構報告,來查看是否有其他網域可新增為掃描的內部網域。請利用「掃描項目」頁面來新增其他網域。

排除 Cookie 和參數

對於每當特定查詢字串值(POST 資料或 Cookie)有了改變,就可能跟著改變的頁面,倘若只要計算頁面的單一實例,指定已排除的 Cookie 和參數是一個很有效的方法。例如,頁面 URL 可能有稱為 "navmenuhide=" 的參數。參數值決定要在頁面上隱藏或顯示導覽功能表。這個參數值可能是 0 或 1。如果只要掃描這個頁面的一個版本,請在工作的「參數和 Cookie」頁面上,插入 "navmenuhide=" 作為「參數和 Cookie 排除項目」。這個方法可用來縮小掃描範圍,排除頁面只呈現表面差異的重複內容。

靜態 URL

如果網站上的 URL 不會改變,掃描必須知道這個情況,以便能採取替代方法來區分它們。不管網站是用參數(查詢字串或 POST 資料)或 Cookie 來區分不同的頁面,您都可以將它們識別為網域正規化規則的一部分。如果要配置網域的正規化,讓您所有的工作都用相同方式來辨認這個網域的頁面,請移至工作的「掃描項目」頁面,按一下某個網域來編輯它的內容。

JavaScript™ 和 Flash

當進行網站的初步掃描時,請選取剖析 JavaScript 來探索 URL 勾選框。瞭解這些選項之後,請決定在網站上使用 JavaScript 的範圍,以及 JavaScript 的複雜度。

如果網站上有任何在 JavaScript 和 Flash 檔內的鏈結,請確定掃描能夠找到它們。如果無法找到,請將它們新增到「起始 URL」中,利用 XRule 來模擬 Flash 邏輯。XRule 會新增到工作的「進階掃描選項 > XRule」頁面中。

自訂錯誤頁面

當瀏覽器遇到內部中斷鏈結時,部分網站會利用自訂 404 頁面,將瀏覽器重新導向。雖然有賴於這類頁面的設定方式,仍可能導致伺服器發出 200 類型回應,掃描工作會將這個回應解譯為未毀損或正常。如果要降低這個誤判錯誤,請識別這些自訂錯誤頁面,讓掃描工作在遇到它們時,能認得它們,將它們報告為中斷鏈結。

請利用「一般掃描選項 > 自訂錯誤頁面」頁面,告訴掃描工作將哪些頁面視為已毀損。自訂錯誤頁面可以從工作設定,也可以從「管理」標籤設定。

您可以在瀏覽器中輸入不正確的網站 URL,看它會產生含有唯一錯誤標題的頁面,還是重新導向到唯一 URL,來迅速判定網站是否使用自訂 404 頁面。若是使用自訂 404 頁面,請將產生的頁面標題或 URL,新增至「自訂錯誤頁面」頁面。

排除

識別可從掃描中排除,或至少可從初步掃描中排除的任何鏈結,例如下列鏈結:

  • 變更密碼
  • 停用帳戶
  • 刪除項目,尤其是不可逆的刪除
  • 以友善列印格式提供相同內容
  • 指向用來作為 HTML 位置保留元,如 blank.gif 或 spacer.gif 之類不存在的間格桿影像。這些影像通常不在 Web 伺服器上,可從報告中排除,以避免雜亂。

購物車功能

一律排除從「新增至購物車」類型應用程式產生的 URL 型樣。當每秒有多個執行緒命中這些應用程式時,掃描作業有可能會對這些應用程式造成過度的負荷。請手動探索一個「新增至購物車」項目,確定會測試它。

請利用「排除路徑和檔案」頁面,從掃描中排除網站區段。排除 regexp:.*addtocart.*

行事曆

行事曆可能導致系統掃描行事曆中的每年每天,讓掃描陷入無限迴圈。請利用「階段作業 ID」型樣和排除項,盡可能降低此一發生機率。

媒體檔

.wmv 和 .mov 之類的大型媒體檔,通常可以從掃描中排除。如果將它們排除,則這些檔案會使得掃描網站所花的時間遽增。

請利用「排除路徑和檔案」頁面,從掃描中排除網站區段。

排序表格中的列或欄

當頁面內容可以排序時(像是含有可排序欄的表格),請考慮排除每個排序頁面的 URL。例如,報告有兩個不同的 URL,但內容相同 -「漏洞」直欄的排序是唯一變更之處。如果您未排除每個重新排序之頁面的 URL,掃描工作就會對相同內容進行多次掃描。請利用「排除路徑和檔案」頁面,從掃描中排除網站區段。

登入和逐步執行的應用程式

當試圖掃描通過登入頁面時,部分考量事件如下:

  • 應用程式需要一次性登入嗎?請利用「登入管理」頁面來輸入使用者名稱和密碼,讓掃描為您自動登入。
  • 登入頁面會重新導向到其他網域嗎?若是如此,請將其他網域當作內部網域新增到工作中。如果要將網域新增為內部網域,請移至「掃描項目」頁面,然後按一下新增網域
  • 網站或應用程式的登入或進入網頁是由一系列逐步執行的表單組成嗎?若是如此,請利用已錄製的登入序列來啟動內容掃描。請利用「登入管理」頁面來錄製登入序列。
  • 網站使用階段作業 ID 嗎?若是如此,您可能需要新增階段作業 ID 作為掃描工作內容的一部分。如果要設定階段作業 ID,請移至「參數和 Cookie」頁面。當配置為參數和 Cookie 排除項目時,會新增它們來將 URL 正規化。當配置為「階段作業 ID」時,它們可讓掃描繼續通過網站,不會因為階段作業值不正確而岔斷。
  • 網站利用 Cookie 來登入嗎?只有在您執行掃描之前先設定 Cookie 來自動登入,通過登入的掃描才能夠運作。
  • 在登入表單之後,有登出鏈結嗎?若是如此,請排除登出鏈結,以免內容掃描順著這個鏈結,而將自己登出。最常見的登出是「登出」按鈕的形式。其他常見的變化有「登出」、「簽出」和「退出」。甚至在某些曾經報告過的情況中,特定網頁的鏈結可能會強制登出使用者。如果登出按鈕的位置不明顯,或使您登出階段作業的狀況並不明顯,您最好聯絡網站開發人員。

表單

部分表單的屬性值會改變。如果在兩次掃描之間,這些屬性有了改變,掃描工作會考量各項變更來反映唯一表單,且會報告每份已變更的表單,這代表報告結果會隨著表單的重複而放大。如果要避免這種問題,請將正規化規則套用到所掃描的網域上。您可以從「掃描項目」頁面中,藉由編輯網域的內容,將掃描工作找到的 URL 和表單正規化。

請將常用表單的值自動提供給掃描,以便繼續掃描而不受到岔斷。比方說,如果在您的網站或應用程式中,掃描工作多次發現某份表單,則可能在每次遇到時,都會需要提供表單內容。請利用「自動表單填入」頁面來新增表單值,如國家或地區名稱,以免每次出現國家或地區名稱表單時,都必須親自進行互動。