3

私の状況は少し異なります。編集と表示の両方にCKEditorを使用しており、送信された文字列はCKEditor内にのみ表示され、他の場所には表示されません。

私はこのXSSを試しました:

<IMG """><SCRIPT>alert("XSS")</SCRIPT>">

攻撃者はCKEditorを処理せずに生のhttpリクエストを常に送信できるため、データベースに入る前にCKEditorが何をするかは問題ではないことがわかっているため、これをバックエンドから直接データベースに追加しました。

驚いたことに、CKEditorは私にこれを示しています:

{cke_protected_1}">

そのため、CKEditorはXSSを防ぐために何かを行っており、XSSセキュリティはクライアント側から実現できることに気づきました。

私の質問は、CKEditorがどれだけ優れているか、そして属性なしのタグとプラスを使用するだけで信頼できるかどうかです。

<a><img><table><span><pre>
(<a> and <table> could be disabled if it makes things easier)

PS:CKEditorはデフォルト設定を使用しています。

4

1 に答える 1

7

サーバー側でXSSから保護する必要があります。この可能性がある場合は、安全でないデータを削除してから保存してください。

wysiwygエディターは、編集されたコンテンツを破棄しないように、編集されたHTMLに含まれるJavaScriptコードを何らかの方法で保護する必要があることに注意してください。これには、Wysiwygモード<script>タグでの非表示やonclickイベントハンドラーの「data-」属性への変更などが含まれます。

{cke_protected_1}は、CKEditorによって<script>タグを非表示にしようとした結果ですが、XSSチートシートから取得した少し「ハック」なHTMLが原因で、完全には正しく機能しませんでした。

wysiwygエディターに組み込まれている部分的な保護は、XSSに対するサーバー側の保護の代わりと見なすべきではありません。

于 2012-08-23T20:26:34.130 に答える