由處理程式執行的一般動作

建立 Web 服務進入點

許多架構提供自己的應用程式進入點。一般常見的範例是對外公開配置檔或程式碼中的註釋所識別的 Web 服務。在應用程式的配置檔或直接在位元組碼中搜尋指定的進入點之後,可使用 F4FAction.addTaintedCallback 方法在適當的方法建立受汙染的資料進入點。

觀察這個範例:在 EJB 2,是藉由在應用程式的配置檔 (ejb-jar.xml) 中定義端點,以宣告 Web 服務進入點。然後,handleApp 會循環處理在 ejb-jar.xml 中宣告的所有 Bean,如果有定義端點類別,就會取得方法名稱的清單。接著,使用 addTaintedCallback 方法,將其實作宣告為 Web 服務進入點。

取代方法

現代的架構經常會使用虛擬函數和抽象,使商業元件更加鬆散地耦合。雖然這可以改良開發處理程序,但是當虛擬函數及其實作之間的關連性,是在配置檔或透過程式碼中的註釋來處理時,將會對靜態分析帶來困難。F4FAction.replaceCalls 可讓處理程式指定這些關連性。

觀察這個範例:在 EJB 2,每一個 Bean 有一組介面(本端或遠端),宣告其他的 Bean 該如何來互動。這表示,只要呼叫 Bean 的 class.method 介面,都會被架構取代為實際的 ImplementationClass.method

從第 62 行開始,範例處理程式迴圈處理每一個 Bean,取得其遠端和本端介面,並將介面取代為實際的實作。

Logging

在執行期間,處理程式可以使用 com.ibm.wala.andromeda.util.logging.TaintLogger 類別來記載具參考價值的訊息,並讓錯誤訊息出現在 AppScan® 來源 使用者介面中。TaintLogger 類別會運用 log4j 程式庫。如果要記載訊息,請先呼叫 TaintLogger.i().getLogger(),取得 Logger 物件。然後在 Logger 上呼叫記載方法(例如 Logger.warn),以記載您要的訊息。日誌訊息將出現在 <data_dir>\logs\StaticAnalyzer_Errors.log(其中 <data_dir>AppScan® 來源 程式資料的位置,如安裝和使用者資料檔位置 中。如果使用 Logger.errorLogger.fatal 來記載訊息,錯誤訊息也會出現在 AppScan® 來源 使用者介面的「主控台」視圖中。