2017-12-21 16 views
0

owss ESAPIインターフェイスのxss保護に関する質問がありました。簡単で短く保つために、私はfortifyを使用してソースコードのレビューを行っています。 アプリケーションはESAPIを実装し、ESAPI.encoder()を呼び出して正規化(ユーザー入力)し、それ以上の検証は行わず、出力を出力します。これはまだxssに対して脆弱ですか PS:反射点はhtml要素の中にあります。 私は、スタックオーバーフローでESAPIインタフェースに関するすべてのポストを介して行ってきましたが、非常にそれはすべてのヘルプだけではJava ESAPIの実装

+0

詳細情報が必要な場合はお知らせください。 申し訳ありませんが質問を提示する私の方法は奇妙です。 ありがとうございます – itzkmv

+0

これについてさらに詳しい情報が必要かどうかお知らせください。 申し訳ありませんが質問を提示する私の方法は奇妙です。 ありがとうございます – itzkmv

答えて

1

canonicalizeをいただければ幸いですべてのXSSを防ぐことはできません 得ることができませんでした。データをデコードしますが、その逆のデータをエンコードする必要があります。

のようなコンテンツはストレートスルーだけでなく、実行可能でないスクリプトから実行可能なスクリプトにもデコードされます(<script>alert(1)</script>)。

代わりに、方法はencodeForHTMLです。これにより、データがHTMLコンテキストに安全に挿入できるようにデータがエンコードされるため、<&lt;になります。

また、これらの文字が受け入れられているかどうかを確認して、HTMLエンコードを行っているかどうかを確認してください。一部のテンプレート言語とタグでは、自動的にエンコードが行われます。

+0

ここでは、ESAPI.encodr()を使用してエンコーダを呼び出すこともあります。 canonicalize()。エンコーダーは正規化メソッドのデコードされた出力をエンコードしません – itzkmv

+0

@itzkmvエンコーディングメソッドの1つを呼び出すと、エンコーダーはエンコーディングを行います。代わりに、いくつかのメソッドがデコードします。 – fgb

+0

ESAPI.encoder()にはencodevmethodはありませんか? canonicalize()は正規化メソッドでデコードされた出力をエンコードします – itzkmv