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向 YouTube 询问给定链接的嵌入 HTML 代码。如果您信任 YouTube,那么您就可以使用他们提供给您的 HTML 而无需转义它。

我已经这样做了 6 个月了,效果非常好。

于 2011-08-30T21:32:47.003 回答
1

试试django-embed-video。这很简单。

于 2013-12-01T11:54:13.643 回答