私はJSoupを見て、OWASP Java HTML sanitizer projectよなぜブラックリスト信頼アプローチではなく、OWASPがHTMLをホワイトリストに登録するのですか?
悪い用語を更新しました。 API層に渡されたユーザー入力を消毒してXSS攻撃を防止する目的で、私はこのようなツールに興味があります。 OWASPプロジェクトによれば、
「AntiSamyのユニットテストに95 +%以上のテストを加えただけです。
しかし、私はこれらのテストを自分で見ることはできません。これらのテストは何をカバーしていますか?もっと簡単に言えば、これらのツールが信頼をホワイトリストに設定する理由を知りたいのですが。
ホワイトリストとブラックリストを選択する理由があると確信しています。私はscript
のような既知のXSSの安全でないタグと、on*
のような属性だけを許可しません。ブラックリストアプローチは可能ではないようです。
私は推論がこれにどのようなものであるかを知る必要があり、それはテストにあると思われます。たとえば、style
タグを許可しない理由は何ですか? XSSの面で危険ですか、それとも他の理由で存在しますか? (style
はコメントで述べたようにXSSは安全ではないかもしれません:XSS attacks and style attributes)
他のタグのXSSの安全でない正当な理由を探しています。ユニットテスト自体は、誰かがそれらを見つける場所を知っていれば十分であるはずです。十分な安全でないタグがあれば、ホワイトリストのアプローチが必要な理由がわかります。
"ブラックリスト"と "ホワイトリスト"を使用すると、私は混乱します。ブラックリストメカニズムは、デフォルトですべてを許可し、ユーザが禁止したいものを明示的にリストする必要があります。 「ホワイトリスト」はデフォルトですべてを拒否し、ユーザーが許可したいものをリストする必要があります。 OWASP Java HTMLサニタイザはホワイトリストを使用します。デフォルトですべてが拒否され、指定したマークアップを許可してポリシーを構築します。 – erickson
@erickson - わかった、私の専門用語は変なものです。リンクをありがとう、それは非常に便利です。前述の「AntiSamyの単体テスト」へのリンクを誰かが提供できる場合、この質問は100%回答されるでしょう。 –