我正在使用以下配置来清理我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>
净化后保存的上方网址转换为以下iframe代码
<iframe width="560" height="315" src="https://www.youtube.com/embed/Xe2nlti47kA" frameborder="0"></iframe>
我们如何才能允许allowfullscreen属性安全?正则表达式中的任何更改是否会解决此问题或需要应用自定义解决方案?
答案 0 :(得分:0)
已经有一个有用的链接可以解决问题.....我们需要实现一个自定义类来允许“allowfullscreen”属性。这将在纯化的iframe代码上添加此属性。
参考 http://sachachua.com/blog/2011/08/drupal-html-purifier-embedding-iframes-youtube/ Sonny回答 HTMLPurifier iframe Vimeo and Youtube video
步骤
1)包括上面的网址。
2)完全按照上面的URL中的方式设置Filter.custom。
在框架中设置Html Purifier选项可以有所不同。
答案 1 :(得分:-1)
在HtmlPurifier配置中使用下一个参数。
HTML.IframeAllowFullscreen: true