「來源和接收槽」視圖

「來源和接收槽」視圖可用來檢視基於輸入及輸出追蹤的發現項目。

「來源和接收槽」視圖分成三個區段:

  • 來源和接收槽:在左畫面中,有三個最上層節點:
    • 來源:來源是程式的輸入,例如檔案、Servlet 要求、主控台輸入或 Socket。對大部分輸入來源而言,傳回的資料在內容和長度方面並無限制。如果沒有對輸入進行檢查,則會將其視為受到污染。來源列在任何發現項目表格的來源直欄中。
    • 接收槽:接收槽可以是資料能夠寫出的任何外部格式。資料庫、檔案、主控台輸出和 Socket 都是接收槽的範例。未經檢查,便將資料寫入接收槽,可能是一個嚴重的安全漏洞。
    • 遺失的接收槽遺失的接收槽是指無法再追蹤的 API 方法。

    每個節點都可以展開,以顯示受影響的套件。接著,套件又可以展開,以顯示受影響的類別,然後再顯示方法。之後,可以展開這些方法來顯示追蹤內相反端的套件、類別和方法。比方說,如果您關心特定接收槽,您可以往下探查到接收槽根之下的方法。到了這裡,這個方法之下的樹狀結構會顯示返回的路徑,以便回到先前走向這個接收槽的所有來源:

    - Sources
    	- packageA
    		- classA
    			- methodA
    				- packageB
    					- classB
    						- methodB (at opposite end of trace)
    - Sinks
    	- packageB
    		- classB
    			- methodB
    				- packageA
    					- classA
    						- methodA
    - Lost Sinks
    

    在這個樹狀結構視圖中所做的選擇,會決定視圖內另外兩個區段中所顯示的內容。

  • 中間節點:在這個視圖區段中,會顯示追蹤內所有中間節點的聯集,這些中間節點會套用至「來源和接收槽」區段的選項中。它可讓您精簡發現項目表格的內容。

    依預設,會隱藏這個區段。按一下顯示/隱藏中間呼叫表,就能夠顯示它(或再次隱藏)。

    如果只要顯示套件、類別或方法的發現項目,請選取它在必要直欄中的勾選框。如果要濾除套件、類別或方法的發現項目,請選取它在移除直欄中的勾選框。這個區段的過濾器設定可用來建立新的過濾器。

    用法範例:「來源和接收槽」區段的樹狀結構節點如下:

    - Sources
    	- java.util
    		- Properties
    			- getProperty

    當選取 getProperty 時,發現項目表格只會顯示其中含有以 getProperty 為來源之追蹤的發現項目。這時中間節點區段會顯示來源為 getProperty 之所有追蹤的所有中間節點(指追蹤內除了來源和接收槽以外的所有節點)。不過,如果追蹤通過特定的 API,則您就可以不管它。比方說,您可能會有一個驗證常式,能夠確保來自 getProperty 的資料有效,因而不想查看通過這個驗證常式的追蹤。中間節點區段會包括這個驗證常式,因為它是追蹤的一個中間節點。您可以在中間節點區段中,瀏覽到這個驗證常式,按一下它的移除勾選框。這會從發現項目表格中,移除其追蹤通過這個中間節點的所有發現項目。

  • 發現項目:這個區段包含一份與「發現項目」視圖及其他含有發現項目之視圖相同的發現項目表格(以及相關的動作)。它會顯示您選擇在視圖內另外兩個區段中顯示的來源、接收槽和中間節點的發現項目。