2016-11-07 10 views
0

こんにちは、私は、スクリプト攻撃を避けるために、エンコードとデコード文字列のESAPIを使用していると私はこのようにそれを使用しています:JAVA ESAPIエンコーダ

public static String encode(String value) { 
    if (value == null) { 
     return null; 
    } 
    Encoder encoder = ESAPI.encoder(); 
    return encoder.encodeForHTML(encoder.canonicalize(value)); 
} 

私は「%」記号で文字列を渡す場合、問題があり、 StringEscapeUtilsを使用してデコードするunescapeHtmlエスケープ処理に異なる方法を使用する必要がありますか?

答えて

0

私は、これはESAPIのdefaultencoderのcanonilize方法の問題であると思われると信じて、ただ問題は、あなたがここでやっているようEncoder.canonicalize()を使用している言及したGitHubのリンク https://github.com/ESAPI/esapi-java/issues/1

+0

したい、実際の問題はhttps://github.com/ESAPI/esapi-java-legacy/issues/377ですが、それはここでは適用されません。 – avgvstvs

0

に1課題追跡を発見しました。出力の前ではなく、入力検証前に正規化する。

ここではエンコード方式を使用していますが、標準方式を使用しないでください。カノニカル化のための

その他の賢明な提案:

  1. は、正規化された値を保持しないでください。これを使用して 検証ロジックに対してのみ実行してください。意味、RawInput-> Canonicalize-> Validate。検証された場合は、元の値を保持または処理します。

  2. この方法の主な利点は、複数のエンコーディング攻撃の混在を検出することにあります。

関連する問題