0

XSS 攻撃を防ぐためにユーザー入力をきれいにしたいのですが、ユーザーが HTML / CSS を投稿する必要がないため、必ずしも HTML ホワイトリストを用意する必要はありません。

そこにある代替案を見て、どれがより良いでしょうか? [Apache Commons Text の StringEscapeUtils] [1] または [JSoup Cleaner][2]?

ありがとう!

アップデート:

JSoup と Apache Commons Text の両方の単体テストを作成した後、JSoup を使用しました。

JSoup が単一引用符をいじらない点が気に入っています (つまり、"Alan's mom" は変更されませんが、Apache Commons Text はそれを "Alan's mom" に変えます)。

そして、ホワイトリストはまったく問題ではありませんでした. 構成は必要ありませんが、HTML タグの一部のサブセットを許可することを選択した場合に役立ついくつかの組み込みオプションが含まれています。[1]: https://commons.apache.org/proper/commons-text/apidocs/org/apache/commons/text/StringEscapeUtils.html [2]: http://jsoup.org/cookbook/cleaning-html /ホワイトリストサニタイザー

4

2 に答える 2

0

"より良い"?関係ないと思います。Cleaner には Whitelist.none() があり、エスケープ utils はすべてをエスケープします。

それは、「クリーンな」入力をどのようにレンダリングするかによって異なります。テキスト ノードだけが必要ですか、それともエスケープされた HTML を表示する必要がありますか?

于 2012-02-08T16:15:19.430 に答える