首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >验证/允许YouTube嵌入代码

验证/允许YouTube嵌入代码
EN

Stack Overflow用户
提问于 2010-12-21 18:46:43
回答 2查看 2.4K关注 0票数 1

希望这是一个简单的问题。我有一个简单的自定义论坛在我的网站上写的PHP。出于安全原因,我不允许在论坛帖子中使用任何HTML。我只允许某些BBCode标记。然而,我想允许嵌入式YouTube视频。

所以我的问题是:验证YouTube嵌入代码的最佳(最安全)方法是什么?YouTube目前正在使用iframe嵌入视频,但显然我不能只允许使用iframe标签。我还需要确保iframe的src是一个YouTube URL,并确保iframe代码中没有其他恶意代码。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-12-21 18:52:17

你应该允许用户使用类似这样的东西:

代码语言:javascript
复制
[youtube]http://www.youtube.com/watch?v=te-TiL9YVaE[/youtube]

然后在显示消息时使用PHP将其转换为嵌入代码:

代码语言:javascript
复制
function bb_youtube($post) {
    return preg_replace(
                            "#\[youtube].*?v=([^&]+).*?\[/youtube\]#im",
                            '<object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/$1?fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/$1?fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object>',
                            $post
                           );
}
票数 2
EN

Stack Overflow用户

发布于 2010-12-21 18:51:26

最安全的方法是创建一个youtube标签。http://www.youtube.com/watch?v=PVHzXnS5Gms可以变成[youtube v='PVHzXnS5Gms'][/youtube] (或者你选择的语法)。

要将此代码转换为YouTube嵌入代码,请获取<object width="640" height="385"><param name="movie" value="http://www.youtube.com/v/VIDEO_ID?fs=1&amp;hl=en_US"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/VIDEO_ID?fs=1&amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"></embed></object>并将VIDEO_ID替换为标识符。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4498447

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档