2

ホステッド CMS のような顧客向けサービスの開始を検討しています。

顧客はテキストを入力する必要があり、そのテキストはサイトを訪れた人に提供されます。大きなテキスト ブロックには、おそらく WMD (SO が使用するライブ マークダウン プレビュー) と組み合わせて、Markdown を使用する予定です。

さて、html の入力をサニタイズする必要がありますか? 「CMS」を編集しているのはほんの一握りの人であり、すべて有料の顧客であることを考えると、悪い HTML を削除する必要がありますか、それともそのまま放置する必要がありますか? 結局のところ、それは彼らの「サイト」です

編集:私がそれを行う主な理由は、彼らに独自のjavascriptを使用させ、独自のcssとdivを持たせ、出力に何をしないかです。

4

5 に答える 5

12

入力をサニタイズしないのはなぜですか?

そうしないと、顧客または自分自身、あるいはその両方に災難を招くことになります。

于 2008-10-06T21:09:42.040 に答える
4

あなたの質問は尋ねます:

「編集:私がそれを行う主な理由は、彼らに独自のjavascriptを使用させ、独自のcssとdivを持たせ、出力に何を持たせないかです」.

ユーザーが任意の JavaScript を提供できるようにすると、入力のサニタイズは無駄になります。クロスサイト スクリプティング (XSS) の定義は、基本的に「ユーザーは JavaScript を提供でき、一部のユーザーは悪い」です。

現在、一部の Web サイトでは、ユーザーが JavaScript を提供することを許可しており、次の 2 つの方法のいずれかでリスクを軽減しています。

  1. 個々のユーザーの CMS を別のドメインでホストします。Blogger と Tumblr (例: myblog. blogspot .com と blogger.com) は、ユーザーのテンプレートが他のユーザーの Cookie を盗むのを防ぐためにこれを行います。自分が何をしているのかを理解し、ルート ドメインでユーザー コンテンツをホストしないようにする必要があります。
  2. ユーザー コンテンツがユーザー間で共有されない場合、悪意のあるユーザーがどのようなスクリプトを提供しても問題ありません。ただし、CMS は共有に関するものなので、これはおそらくここには当てはまりません。

機能する可能性のあるブラックリスト フィルターがいくつかありますが、それらは今日しか機能しません。HTML 仕様とブラウザーは定期的に変更されるため、フィルターを維持することはほとんど不可能です。ブラックリストへの登録は、セキュリティと機能の両方の問題を確実に引き起こす方法です。

ユーザーデータを扱うときは、常に信頼できないものとして扱ってください。製品の早い段階でこれに対処せず、シナリオが変更された場合、ユーザーを動揺させずに XSS を防止するために戻ってすべての XSS ポイントを見つけたり、製品を変更したりすることはほとんど不可能です。

于 2009-06-02T15:50:51.417 に答える
2

また、不満を抱いた従業員、クロスカスタマー攻撃、またはその他のばかげた行動を再び保護することになります.

ユーザーや視聴者に関係なく、常にサニタイズする必要があります。

于 2008-10-06T21:14:12.357 に答える
1

少なくともエントリを解析して、HTML タグの特定の「安全な」サブセットのみを許可します。

于 2008-10-06T21:12:30.583 に答える
1

常に入力をサニタイズする必要があると思います。ほとんどの人は、自分の Web サイトをゼロから作成するのではなく、簡単にアクセスしてページを編集したいので、CMS を使用します。これらのユーザーは、おそらくサニタイズされるテキストを入力しようとはしませんが、サニタイズから保護することで、ユーザーを保護しています。

于 2008-10-06T21:14:10.533 に答える