yii HtmlPurifier删除了allowfullscreen属性

ao218c7q  于 2022-11-09  发布在  其他
关注(0)|答案(2)|浏览(123)

我正在使用下面的配置来清理我的Yii项目中来自用户的输入,使用它内置的HtmlPurifier支持

array(
        'URI.AllowedSchemes' => array(
            'http' => true,
            'https' => true,
        ),
        "HTML.SafeEmbed" => true,
        'HTML.TargetBlank' => true,
        "HTML.SafeIframe" => true,
        "Filter.YouTube" => true,
        'URI.SafeIframeRegexp' => '%^(https?:)?//(www\.youtube(?:-nocookie)?\.com/embed/|player\.vimeo\.com/video/)%'
    ),

范例:-

<iframe width="560" height="315" src="https://www.youtube.com/embed/Xe2nlti47kA" frameborder="0" allowfullscreen></iframe>

净化后保存时,上面的URL转换为下面的iframe代码

<iframe width="560" height="315" src="https://www.youtube.com/embed/Xe2nlti47kA" frameborder="0"></iframe>

我们怎样才能允许allowfullscreen属性是安全的呢?在正则表达式中做任何改变都可以解决这个问题吗?还是需要应用一个自定义的解决方案?

yhxst69z

yhxst69z1#

已经有一个有用的链接可以解决这个问题了.....我们需要实现一个自定义类来允许“allowfullscreen”属性。这将在纯化的iframe代码中添加此属性。
参考http://sachachua.com/blog/2011/08/drupal-html-purifier-embedding-iframes-youtube/由Sonny回答HTMLPurifier iframe Vimeo and Youtube video
步骤数
1)包含上述url中的类。
2)请按照上面URL中显示方式设置Filter.custom
可以在不同的框架中设置Html纯化器选项。

kuarbcqp

kuarbcqp2#

请使用HtmlPurifier配置中的下一个参数。

HTML.IframeAllowFullscreen: true

相关问题