我正在使用下面的配置来清理我的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属性是安全的呢?在正则表达式中做任何改变都可以解决这个问题吗?还是需要应用一个自定义的解决方案?
2条答案
按热度按时间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纯化器选项。
kuarbcqp2#
请使用HtmlPurifier配置中的下一个参数。