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)
メソッドを、すべてのパラメーターが汚染された、汚染されたコールバックにします。
int
ではなく、System.Int32
などが必要です。完全修飾名から VDB で通常使用される名前への完全なマッピングを確認するには、DotNetVDBUtil.systemName2VDBShortName
を参照してください。パラメーター:
vdbMethodSig
-callback
メソッドのシグニチャーnumParams
-this
パラメーターを含む、callback
メソッドのパラメーターの数
replaceCalls
public void replaceCalls(java.lang.String oldVDBSig,
java.lang.String newVDBSig)
あるメソッドのすべての呼び出しを別のメソッドの呼び出しに置き換えます。古いメソッドと新しいメソッドの記述子 (つまり、引数の数、引数型、戻り型) が同じである必要があります。
oldVDBSig
が呼び出しサイトで宣言済みターゲットの場合にのみ行われます。そのため、oldVDBSig
が Integer.toString()
であり、Object.toString()
の呼び出しを行う場合、Integer.toString()
が呼び出される場合であっても、置換は実行しません。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
が呼び出しサイトで宣言済みターゲットの場合にのみ行われます。そのため、oldVDBSig
が Integer.toString()
であり、Object.toString()
の呼び出しを行う場合、Integer.toString()
が呼び出される場合であっても、置換は実行しません。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
が呼び出しサイトで宣言済みターゲットの場合にのみ行われます。そのため、oldVDBSig
が Integer.toString()
であり、Object.toString()
の呼び出しを行う場合、Integer.toString()
が呼び出される場合であっても、置換は実行しません。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)
特定のパラメーター・アクセス・パスのみが汚染されているものとして扱われるようにして、一部のメソッドを汚染されたコールバックにします。
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