パラメータの改ざんの問題を解決するために、struts2 アプリケーションに取り組んでいます。アクションに ParameterNameAware インターフェイスを実装することでこれを解決できると聞きましたが、この状態を説明する最良の例が見つかりません。ParameterNameAware の使用方法の良い例を教えてください。迅速な回答をいただければ幸いです。
質問する
3717 次
1 に答える
1
このインターフェースの全体的な考え方は、有効なパラメータ名のリストを維持し、このリスト (ホワイトリスト) にないリクエスト パラメータを拒否することです。これは、ハッカーが不要なフォーム フィールド値を特定の状況で実行される可能性が高い隠し変数。
これを実装したら、現在のリクエスト スコープ内の不要なパラメータをすぐに拒否するか、この状況をより適切に制御できます。
考えられる実装:
次のように、インターフェイスを実装し、そのメソッドParameterNameAware
をオーバーライドします。acceptableParameterName
public boolean acceptableParameterName(String parameterName) {
boolean allowedParameterName = true ;
if ( parameterName.contains("session") || parameterName.contains("request") ) {
allowedParameterName = false ;
}
return allowedParameterName;
}
getter メソッドと setter メソッドを持つフォーム Bean にこのインターフェイスを実装する必要があります。この特定の例では、現在のリクエストにリクエストやセッションなどのフォーム フィールド変数が含まれている場合、それは失敗のシナリオです。これは典型的な例です。このリンクに完全なドキュメントがあります Class ParametersInterceptor
于 2012-09-18T05:40:43.820 に答える