【问题标题】:Validating/Allowing YouTube Embed Code验证/允许 YouTube 嵌入代码
【发布时间】:2011-05-28 18:14:48
【问题描述】:

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

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

【问题讨论】:

    标签: php youtube


    【解决方案1】:

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

    [youtube]http://www.youtube.com/watch?v=te-TiL9YVaE[/youtube]
    

    然后在显示消息时转成使用PHP嵌入代码:

    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】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-07-10
        • 2010-12-30
        • 1970-01-01
        • 2010-12-30
        • 1970-01-01
        • 1970-01-01
        • 2022-06-30
        • 2012-04-21
        相关资源
        最近更新 更多