ユーザーがビデオ、スライド共有などを埋め込むことができるようにするユーザー生成コンテンツ サイトを構築しています。十分な量の埋め込み可能なコンテンツ/html フォーマットを許可しながら、かなり優れたセキュリティ?
3 に答える
がオフになっている限り、オブジェクトを許可できるはずです。オブジェクト タグの実際の許容パラメータを定義して、ホワイトリストのみを許可し、任意のオブジェクトを含めることができないようにすることもできます。
ただし、埋め込み用の UI サポートを提供した方がよい場合があります。たとえば、ユーザーに YouTube の URL を入力するように求め、そこから動画の埋め込みコードを導き出します。
いくつかの利点: - デフォルトの YouTube コードは標準に準拠していないため、独自のオブジェクト コードを作成できます - 埋め込み要素を出力ページに含める方法を完全に制御できます
これには素晴らしいプロジェクトがあります。たとえば、YouTube の埋め込みのみを許可する埋め込み分析もあります。
ユーザーに WYSIWYG Html エディターの使用を許可することを正直に言うと、良さそうに聞こえるかもしれませんが、実際には、ユーザーと開発者の両方にとってうまく機能しません。理由は次のとおりです。
- ブラウザによって動作が異なります。
- ホワイトリストはサイトを保護することを許可しますが、ユーザーは電話をかけ、OBJECT タグなどの別のパラメーターを許可するように要求することになります。ブラックリストは安全ではありません。
- HTMLタグが何であるかを知っているユーザーは多くありません。
- ユーザーにとって、テキストをフォーマットするのは難しいです (BOLD+FONT-SIZE の代わりに HEADER を使用するようユーザーに指示するにはどうすればよいでしょうか)。
- 一般に、ユーザーが HTML を適切に使用していないため、必要に応じてサイトのデザインを変更することは非常に困難であり、実際には変更できません。
私が今CMSのようなシステムをやっているとしたら、おそらくセマンティックマークアップを使うでしょう。
ほとんどのユーザーは、すぐに慣れて、単なるプレーン テキストになります (SO のように)。
また、適切な HTML を生成し、必要なタグをサポートすることもできます。
たとえば、画像を埋め込む必要がある場合は、次のように記述します。
次のような HTML が生成されます。
<a class='image-link' title='My Face' href='http://here.there/bla.gif'>
<img alt='My Face' src='http://here.there/bla.gif' />
</a>
マークアップ言語はたくさんあるので、自分に適したものを選んで独自の変更を加えてください。
たとえば、GitHub は modifiedmarkdown
を使用しており、それを解析するコードはわずか数行です。
欠点の 1 つは、ユーザーが言語を習得する必要があり、WYSIWYG ではないことです。
よろしく、
ドミトリー。