私のアプリケーションにはいくつかのtinymceエディターがあり、ユーザー入力は次のように表示されます
<h:outputText escape="false"/>
しかし、javascript や iframe などの悪意のある入力を防ぐにはどうすればよいでしょうか? 入力文字列をフィルタリングできるライブラリはありますか?
更新:「htmlpurifier」を見つけましたが、それは php 用です。Java 用にこのようなものはありますか?
私のアプリケーションにはいくつかのtinymceエディターがあり、ユーザー入力は次のように表示されます
<h:outputText escape="false"/>
しかし、javascript や iframe などの悪意のある入力を防ぐにはどうすればよいでしょうか? 入力文字列をフィルタリングできるライブラリはありますか?
更新:「htmlpurifier」を見つけましたが、それは php 用です。Java 用にこのようなものはありますか?
タグ/属性のクリーニング/ホワイトリスト登録をサポートする 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>