XSS対策として入力値チェックライブラリを考えているんですが、入力値としてHTMLを許可する場合、これを解析してなんとかならんもんかと思ってたりします。
JavaのHTMLパーサ
XMLスキーマとかも使えそうなもんですが、柔軟になる分、ユーザはXMLスキーマの書き方を覚えなければならないわけで、いろんなチェックを、フィルタを通すように使える設計で作っておいて、「IE8がでたー!」となったときでも「IE8Filter」を追加で作って、フィルタに追加するだけー・・・とかにしようかと。
調べてみると、いがぴょんさんのJavaで実装された HTML Parser (HTMLパーサ) を調べてみましたがとても素敵です。これにパフォーマンスとか、使い勝手を加えてまとめてみます。
今回、Google先生や、いがぴょんさんも言及しているOpen Source HTML Parsers in Javaから、以下を調査対象とした。結果はそれぞれまとめていき、結果はまとめページに載せる予定です。
名前 | URL | 調査結果 |
---|---|---|
HTML Parser | http://htmlparser.sourceforge.net/ | Maybe Comming Soon. |
Jericho HTML Parser | http://jericho.htmlparser.net/docs/index.html | Maybe Comming Soon. |
javax.swing.text.html.parser.Parser | http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/javax/swing/text/html/parser/Parser.html | Maybe Comming Soon. |
Java Mozilla Html Parser | http://mozillaparser.sourceforge.net/ | Maybe Comming Soon. |
CyberNeko HTML Parser | http://sourceforge.net/projects/nekohtml/ | Maybe Comming Soon. |
JTidy | http://sourceforge.net/projects/jtidy/ | Maybe Comming Soon. |
The Validator.nu HTML Parser | http://about.validator.nu/htmlparser/ | Maybe Comming Soon. |
TagSoup | http://mercury.ccil.org/~cowan/XML/tagsoup/ | Maybe Comming Soon. |
HotSAX | http://hotsax.sourceforge.net/ | Maybe Comming Soon. |
Cobra: Java HTML Renderer & Parser | http://lobobrowser.org/cobra.jsp | Maybe Comming Soon. |
HtmlCleaner | http://htmlcleaner.sourceforge.net/ | Maybe Comming Soon. |
VietSpider HTMLParser | https://sourceforge.net/projects/binhgiang/ | Maybe Comming Soon. |