3

Htmleditorextender ajax コントロールを asp.net Web アプリケーションに追加し、XSS セキュリティのために XSS サニタイザーを配置しましたが、Htmleditorextender からテキストを取得すると、サニタイザーが HTML5
を削除し、すべての入力が単一になります。インターネットで検索したところ、XSS サニタイザーが HTML5 タグを不明な安全でないタグとして認識するため、これが発生していることがわかりました。そのため、htmleditorextender のフォーマットされた HTML からすべての HTML5 タグが削除されるため、EnableSanitization="false" を作成して htmleditorextender を使用しています
。私のプロジェクトから、または私は行くべきです

  1. TinyMCE または
  2. CKEditor


ただし、これらは両方とも画像のアップロード用に構成されておらず、ユーザーは独自のサードパーティの画像アップローダーを追加する必要があります。
htmleditorextender でフォーマットされた html タグを失うことなく、自分のサイトを XSS 攻撃から防ぐ方法を教えてください。

4

3 に答える 3

1

この理由で、最新の HtmlEditorExtender が代替サニタイザーを提供していることをご存知でしたか? これは、HtmlAgilityPackSanitizerProvider と呼ばれます。Nuget を使用してダウンロードする場合に含まれているかどうかはわかりませんが、CodePlex から zip をダウンロードすると、代替サニタイザーに必要な dll を含む「SanitizerProviders」というフォルダーが含まれます。次に、構成ファイルで代替サニタイザー (ダウンロードに含まれています) を指定できます。

これについて彼が説明している Stephen Waltherのブログへのリンクは次のとおりです。

これで問題が解決するかどうか、または最新のツールキットに更新するオプションがあるかどうかはわかりませんが、これを試すことについて言及していないので、試してみる価値があるようです.

于 2012-07-09T17:12:45.297 に答える
-3

あなた自身の消毒剤を書いてください:

オンラインにはたくさんのパーサーがあります。たとえば、ホワイトリストサニタイザーコードです。

  • まず、適切なホワイトリストを入手してください。
  • ホワイトリストは、有効なhtmlタグのリストです。つまりbrです
  • ホワイトリストを更新して、 HTML5と新しいw3c標準、および/または組織のコーディング標準に準拠します。
  • ソリューションを開発する際に、 Microsoftに手を貸してはいけません。
  • 優れた開発者としてイニシアチブを取り、枠にとらわれずに考えてください。

  • *キャッシュされたホワイトリスト*を使用して独自のサニタイザーを作成しました。 これは、ajaxコントロールだけでなく適切と思われる場所で使用できます。:)

  • Ajax htmlagilitypackプロバイダーのソースコードを確認して、その意図を確認しました:HtmlAgilityPackSanitizerProvider.cs

  • 厳しすぎて人生が再び壮大なAjaxhtmlagilitypackを削除しました。

利点:すべての入力コントロールのテキストプロパティをクレンジング/サニタイズできます。

悪い夢を抱くことなく、構想、開発、単体テストを行い、愛され、安全であると感じるための合計時間: 2時間

これがお役に立てば幸いです....:)

免責事項:今日はスペルと文法の薬を服用しませんでした。ごめん。

参照:

Imports System.Linq
Imports HtmlAgilityPack
于 2012-09-19T01:18:31.933 に答える