1

私はリッチ テキスト エディター (CKEditor) を使用して、ユーザーが HTML/CSS をレンダリングする書式設定されたテキストを入力できるようにしています。

信頼できないユーザーによるXSS攻撃を防ぐために、 Jsoup Java ライブラリを使用しています。これは、たとえば、次のようなアンカー タグのようなユーザー入力の必要なタグや属性をフィルター処理/ホワイトリスト化します。

<a href='http://example.com/' onclick='executeMaliciousTask();'>Click Here</a>

に変わります

<a href="http://example.com/" rel="nofollow">Click Here</a>

Jsoup によって生成されたリンクは、XSS 攻撃に対して安全なようです。


ユーザーがエディターを介して画像を入力できるようにする必要があります。これがそうであるように、私はJsoupの次の方法を使用しています。

org.jsoup.Jsoup.clean(editorContents, org.jsoup.safety.Whitelist.basicWithImages();

ユーザーがこの方法で画像を投稿できるようにすると、何らかの方法で XSS 攻撃に対して脆弱になる可能性がありますか?

4

1 に答える 1

1

リスクは、生成されたクリーンな HTML ではなく、画像を提供するサーバーにあります。私の主な関心事はCSRFです。ただし、他の問題が発生する可能性があります (悪意のある画像によってバッファ オーバーランが発生したり、応答のコンテンツ タイプが変更されてブラウザがだまされてスクリプトが実行されたり、トラッキング Cookie が設定されたりするなど)。

私の提案は、イメージをリモートでホストすることを許可しないことです。ユーザーが img を含めることを許可しますが、画像を取得し、検証/正規化し、独自のホストから提供します。

于 2013-11-18T07:16:28.977 に答える