パラメータの改ざんの問題を解決するために、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   に答える