3

ユーザーが投稿/コメントで動画リンクを送信し、埋め込み動画としてレンダリングできるようにしたいと考えています。

たとえば、YouTube は次のような動画を埋め込むためのコードを提供しています。

<iframe width="420" height="345" src="http://www.youtube.com/embed/Rr6PWlOgPrs" frameborder="0" allowfullscreen></iframe>

ユーザーが上記のコード フラグメントをコメントに入れた場合、どうすれば正しくレンダリングできますか?

Django はすべての HTML タグを自動エスケープするため、デフォルトでは上記のコードは機能しません。しかし、自動エスケープを無効にすると、大量のセキュリティ リスクが発生します。

これを処理する最良の方法は何ですか?

4

3 に答える 3

3

ユーザーが HTML を直接挿入できないようにする必要があります。django-oembed を調べてください。このように、ユーザーは URL を貼り付けるだけで、oembed がそれを照合し、一致した URL をオブジェクト埋め込みコードで自動的に切り替えます。

于 2011-08-30T21:33:26.727 に答える
1

私が自分のサイトで行っていることは、ユーザーに YouTube ビデオへのリンクを送信してもらうことです。リンクだけで、埋め込みはありません。次に、oEmbed APIを使用して、特定のリンクの埋め込み HTML コードを YouTube に要求します。YouTube を信頼している場合は、YouTube が提供する HTML をエスケープせずに使用できます。

私はこれを6か月間行っていますが、非常にうまく機能しています。

于 2011-08-30T21:32:47.003 に答える
1

django-embed-videoを試してみてください。それは非常に簡単です。

于 2013-12-01T11:54:13.643 に答える