F4FActions

java.lang.Object
  extended by com.ibm.appscan.frameworks.highlevelapi.F4FActions

public class F4FActions
extends java.lang.Object

アプリケーションのフレームワーク構造をモデル化する方法を指定するクラス。F4FHandler は、アプリケーションを分析しながら、F4FHandler.handleApp(F4FApp, F4FActions) に渡された F4FAction オブジェクトを変化させます。

コンストラクターの詳細

F4FActions

public F4FActions()

空の F4FActions オブジェクトを作成します。関連する F4FActions オブジェクトが F4FHandler.handleApp(F4FApp, F4FActions) に渡されるため、新しいフレームワーク・ハンドラーの実装には必要ありません。

addTaintedCallback

public void addTaintedCallback(IMethod method,
                               int numParams)

addTaintedCallback (String, int) と同じですが、VDB シグニチャーではなく IMethod を直接受け取ります。

addTaintedCallback

public void addTaintedCallback(java.lang.String vdbMethodSig,
                               int numParams)

メソッドを、すべてのパラメーターが汚染された、汚染されたコールバックにします。

注: .NET アプリケーションの場合、完全修飾 VDB シグニチャーが必要です。したがって、パラメーターのタイプとして、int ではなく、System.Int32 などが必要です。完全修飾名から VDB で通常使用される名前への完全なマッピングを確認するには、DotNetVDBUtil.systemName2VDBShortName を参照してください。

パラメーター:

  • vdbMethodSig - callback メソッドのシグニチャー
  • numParams - this パラメーターを含む、callback メソッドのパラメーターの数

replaceCalls

public void replaceCalls(java.lang.String oldVDBSig,
                         java.lang.String newVDBSig)

あるメソッドのすべての呼び出しを別のメソッドの呼び出しに置き換えます。古いメソッドと新しいメソッドの記述子 (つまり、引数の数、引数型、戻り型) が同じである必要があります。

注: 置換は、oldVDBSig が呼び出しサイトで宣言済みターゲットの場合にのみ行われます。そのため、oldVDBSigInteger.toString() であり、Object.toString() の呼び出しを行う場合、Integer.toString() が呼び出される場合であっても、置換は実行しません。
注: .NET アプリケーションの場合、完全修飾 VDB シグニチャーが必要です。したがって、パラメーターのタイプとして、int ではなく、System.Int32 などが必要です。完全修飾名から VDB で通常使用される名前への完全なマッピングを確認するには、 以下を参照してください。 DotNetVDBUtil.systemName2VDBShortName

パラメーター:

  • oldVDBSig - 呼び出しの置換元メソッドのシグニチャー
  • newVDBSig - 呼び出しの置換先メソッドのシグニチャー

replaceCallsWithSyntheticExpr

public void replaceCallsWithSyntheticExpr(java.lang.String vdbSig,
    com.ibm.appscan.frameworks.specinfo.SyntheticExpr expr)

メソッドのすべての呼び出しを任意の WAFL SyntheticExpr に置き換えます。例えば、呼び出しを AssignmentExpr による割り当てに置き換えることができます。

注: 置換は、oldVDBSig が呼び出しサイトで宣言済みターゲットの場合にのみ行われます。そのため、oldVDBSigInteger.toString() であり、Object.toString() の呼び出しを行う場合、Integer.toString() が呼び出される場合であっても、置換は実行しません。
注: .NET アプリケーションの場合、完全修飾 VDB シグニチャーが必要です。したがって、パラメーターのタイプとして、int ではなく、System.Int32 などが必要です。完全修飾名から VDB で通常使用される名前への完全なマッピングを確認するには、 以下を参照してください。 DotNetVDBUtil.systemName2VDBShortName

パラメーター:

  • vdbSig - 呼び出しの置換元メソッドのシグニチャー
  • expr - 呼び出しの置換先の合成式

replaceCallsWithParamPattern

public void replaceCallsWithParamPattern(java.lang.String oldVDBSig,
                                         java.util.Map<java.lang.String,
                                         java.util.Map<java.lang.Integer,
                                         java.util.regex.Pattern>> 
                                         newSig2Pattern)

String 型のパラメーターが、指定したパターンと一致する定数である場合にのみ、あるメソッドの呼び出しを別のメソッドの呼び出しに置き換えます。古いメソッドと新しいメソッドの記述子 (つまり、引数の数、引数型、戻り値の型) が同じである必要があります。

注: 置換は、oldVDBSig が呼び出しサイトで宣言済みターゲットの場合にのみ行われます。そのため、oldVDBSigInteger.toString() であり、Object.toString() の呼び出しを行う場合、Integer.toString() が呼び出される場合であっても、置換は実行しません。
注: .NET アプリケーションの場合、完全修飾 VDB シグニチャーが必要です。したがって、パラメーターのタイプとして、int ではなく、System.Int32 などが必要です。完全修飾名から VDB で通常使用される名前への完全なマッピングを確認するには、 以下を参照してください。 DotNetVDBUtil.systemName2VDBShortName

パラメーター:

  • oldVDBSig - 呼び出しの置換元メソッドのシグニチャー
  • newSig2Pattern- 可能な各置換メソッド m の VDB シグニチャーを、Patterns への整数パラメーター位置のマップ M にマップします。該当する位置の文字列定数パラメーターが一部の呼び出しサイトで M のパターンと一致する場合、m への置換が実行されます。

addFrameworkInfo

public void addFrameworkInfo
(com.ibm.appscan.frameworks.specinfo.IFrameworkInfo info)

任意の追加フレームワーク情報を追加します。このメソッドは、まれに、提供されている他の API では不十分な場合にのみ必要となります。

addTaintedCallback

public void addTaintedCallback(java.lang.String vdbMethodSig,
                               java.util.Collection<TaintedParam> 
                               taintedParams)

特定のパラメーター・アクセス・パスのみが汚染されているものとして扱われるようにして、一部のメソッドを汚染されたコールバックにします。

注: .NET アプリケーションの場合、完全修飾 VDB シグニチャーが必要です。したがって、パラメーターのタイプとして、int ではなく、System.Int32 などが必要です。完全修飾名から VDB で通常使用される名前への完全なマッピングを確認するには、 以下を参照してください。 DotNetVDBUtil.systemName2VDBShortName

パラメーター:

  • vdbMethodSig - コールバック・メソッドの VDB フォーマットのシグニチャー
  • taintedParams - どのパラメーター・アクセス・パスが汚染されるかに関する情報

addHighLevelSyntheticMethod

public void addHighLevelSyntheticMethod(HighLevelSyntheticMethod m)

同等: addHighLevelSyntheticMethod(m, true)

addHighLevelSyntheticMethod

public void addHighLevelSyntheticMethod(HighLevelSyntheticMethod m,
                                        boolean isEntrypoint)

高位合成メソッドを追加します。対応する WAFL 合成メソッド (エントリー・ポイントの可能性がある) が生成されます。

パラメーター:

  • m - メソッド
  • isEntrypoint - WAFL でメソッドをエントリー・ポイントとしてマークする必要があるかどうか。

createGlobal

public Global createGlobal(java.lang.String name,
                           java.lang.String declaredVDBType,
                           boolean isEntrypointScoped)

HighLevelSyntheticMethods からアクセスできる新しいグローバルを作成します。

パラメーター:

  • name - グローバルの名前
  • declaredVDBType - グローバルの宣言された型 (java.lang.String など)。
    注: .NET アプリケーションの場合、完全修飾 VDB 型が必要です。したがって、パラメーターのタイプとして、int ではなく、System.Int32 などが必要です。完全修飾名から VDB で通常使用される名前への完全なマッピングを確認するには、 以下を参照してください。 DotNetVDBUtil.systemName2VDBShortName
  • isEntrypointScoped - true の場合、グローバルは単一のエントリー・ポイントにスコープ指定されます (つまり、リクエスト・スコープとなります)。それ以外の場合、グローバルはエントリー・ポイントにわたってスコープ指定されます (つまり、「セッション」または「アプリケーション」スコープとなります)。

戻り値:

  • 次の内部で読み取り/書き込みできるグローバル・オブジェクト: HighLevelSyntheticMethod

createGlobal

public Global createGlobal(java.lang.String name,
                           IClass declaredClass,
                           boolean isEntrypointScoped)

createGlobal(String, String, boolean) と同様ですが、型名の代わりに宣言された型の IClassを取ります。

getGlobals

public java.util.Collection<Global> getGlobals()

内部使用。

getAdditionalFrameworkInfo

public java.util.Collection
<com.ibm.appscan.frameworks.specinfo.IFrameworkInfo> 
getAdditionalFrameworkInfo()

内部使用。

getCallReplacement2SigsInfo

public java.util.Map
<java.lang.String,java.util.Map
<java.lang.String,java.util.Map
<java.lang.Integer,java.util.regex.Pattern>>>
getCallReplacement2SigsInfo()

内部使用。

getCallReplacement2ExprInfo

public java.util.Map
<java.lang.String,com.ibm.appscan.frameworks.specinfo.SyntheticExpr>
getCallReplacement2ExprInfo()

内部使用。

getCallback2TaintedParams

public java.util.Map
<java.lang.String,java.util.Collection<TaintedParam>> 
getCallback2TaintedParams()

内部使用。

getHighLevelSyntheticMethods

public java.util.List
<com.ibm.wala.util.collections.Pair
<HighLevelSyntheticMethod,java.lang.Boolean>> 
getHighLevelSyntheticMethods()

内部使用。

toString

public java.lang.String toString()

オーバーライド:

  • toString - クラス java.lang.Object