3

このリンクは、fckEditorを使用した私のアプリへのエクスプロイトについて説明しています:http: //knitinr.blogspot.com/2008/07/script-exploit-via-fckeditor.html

fckEditorを使用しながらアプリを安全にするにはどうすればよいですか?それはfckEditor構成ですか?fckEditorからテキストを取得した後、サーバー側で実行することになっている処理ですか?

fckEditorはフォーマットにhtmlタグを使用しているため、これはパズルです。そのため、テキストを表示するときにHTMLエンコードだけを行うことはできません。

4

7 に答える 7

7

HTMLサーバー側をサニタイズします。他に選択肢はありません。PHP の場合はHTML Purifierになりますが、.NET の場合はわかりません。HTML をサニタイズするのは難しいです。script タグを削除するだけでは十分ではありません。たとえば、IE の愚かさのおかげで、on* イベント ハンドラなどにも注意する必要があります。

また、カスタム html と css を使用すると、サイトの外観とレイアウトを簡単に乗っ取ることができます。すべての画面をカバーするオーバーレイ (絶対配置) などを使用します。そのための準備をしてください。

于 2008-09-15T19:11:08.827 に答える
4

このバグは、実際には FCKeditors のせいではありません。Web サイトに表示される HTML をユーザーが編集できるようにしている限り、出力する前にデータをチェックしない限り、ユーザーが害を及ぼす可能性は常にあります。

これを行うために HTML エンコーディングを使用する人もいますが、そうすると、FCKeditor によって行われたすべての書式設定が破棄されます。


おそらく、 Microsoft Anti-Cross Site Scripting Libraryを使用できます。MSDNのサンプル

于 2008-09-15T19:10:15.273 に答える
2

fckEditor からテキストを取得した後、サーバー側で実行することになっている処理はありますか?

正確に。StackOverflow にも、これに関連する初期の問題がいくつかありました。これを解決する最も簡単な方法は、HTML ライブラリを使用してユーザーの入力を解析し、出力に不要なタグをエスケープすることです。これは、ページに印刷するときの後処理手順として実行します。データベース内のデータは、ユーザーが入力したものとまったく同じである必要があります。

たとえば、ユーザーがを入力する<b><script>evil here</script></b>と、コードは<b>&lt;script&gt;evil here&lt;/script&gt;</b>ページをレンダリングする前にそれを に変換します。

そして、これを解決するために正規表現を使用しないでください。

于 2008-09-15T19:14:49.940 に答える
2

FCKEditor は、少数のタグのみを使用するように構成できます。これらのいくつかのタグを除いて、すべてをエンコードする必要があります。

これらのタグは次のとおりです: <strong> <em> <u> <ol> <ul> <li> <p> <blockquote> <font> <span>。

font タグには、face 属性と size 属性のみを含める必要があります。span タグには class 属性のみを含める必要があります。

これらのタグには他の属性を許可しないでください。

于 2009-05-29T17:52:24.740 に答える
0

一部の人が提起した問題は、Fckeditorが少数のタグしかエンコードしないということではないと思います。これは、邪悪なユーザーがFckeditorを使用して悪意を書くという素朴な仮定です。入力を手動で変更できるツールは非常に豊富です。

私はすべてのユーザーデータを汚染されたものとして扱います。Markdownを使用してテキストをHTMLに変換します。テキストで見つかったHTMLをサニタイズし、悪意を減らします。

于 2010-01-22T23:41:49.017 に答える
0

禁止事項を理解しています。DOが不足しています。

FCKEditor の使用は必須ですか、それとも別のエディター/マークアップ言語を使用できますか? StackOverflow で使用されているのと同じ言語である Markdown と WMD Editor を使用することをお勧めします。.NET の Markdown ライブラリには、すべての HTML タグをエスケープするオプションが必要です。必ずオンにしてください。

于 2008-09-15T19:22:19.050 に答える
0

XSS はトリッキーです。私はいくつかの読書をお勧めします:

とにかく、私の要約は、厳密に許可されたアイテムのみを許可する必要があるということです。既知の悪用ベクトルを拒否することはできません.

于 2009-01-28T01:56:13.473 に答える