2

私のアプリケーションにはいくつかのtinymceエディターがあり、ユーザー入力は次のように表示されます

<h:outputText escape="false"/>

しかし、javascript や iframe などの悪意のある入力を防ぐにはどうすればよいでしょうか? 入力文字列をフィルタリングできるライブラリはありますか?

更新:「htmlpurifier」を見つけましたが、それは php 用です。Java 用にこのようなものはありますか?

4

1 に答える 1

2

タグ/属性のクリーニング/ホワイトリスト登録をサポートする HTML パーサーを使用する必要があります。その中にはJsoupがあり、clean()まさにこの目的のためのメソッドがあります。これは、そのサイトからの関連性の抜粋です。

信頼できない HTML をサニタイズする

問題

信頼できないユーザーが、Web サイトでの出力用に HTML を提供できるようにしたい (コメントの送信など)。クロスサイト スクリプティング(XSS) 攻撃を回避するには、この HTML を消去する必要があります。

解決

Cleanerで指定された構成でjsoup HTML を使用しますWhitelist

String unsafe = 
      "<p><a href='http://example.com/' onclick='stealCookies()'>Link</a></p>";
String safe = Jsoup.clean(unsafe, Whitelist.basic());
      // now: <p><a href="http://example.com/" rel="nofollow">Link</a></p>
于 2012-07-03T14:16:47.870 に答える