乌里。SafeIframeRegexp不允许YouTube视频使用HTMLPurifier



我正在尝试允许youtube视频与HTMLPurifier的代码:

require_once __DIR__.
'/lib/HTMLPurifier/HTMLPurifier.auto.php';
$config = HTMLPurifier_Config::createDefault();
$config - > set('URI.AllowedSchemes', array('data' => true)); //autoriser les image base64
$config - > set('HTML.MaxImgLength', null); //autoriser les dimensions en %
$config - > set('HTML.SafeIframe', true);
$config - > set('URI.SafeIframeRegexp', '%.+%'); //allow everything to test
$config - > set('HTML.Trusted', true); //trying
$config - > set('HTML.SafeObject', true); //also trying that
$purifier = new HTMLPurifier($config);
$html = $purifier - > purify($html);

但是iframe是在没有src的情况下保存的。

URI.AllowedSchemes是一个白名单,您正在覆盖它,以便在此处仅包括data模式:

$config - > set('URI.AllowedSchemes', array('data' => true));

为了能够使用youtube URL,您至少需要将https添加到数组中。

就其价值而言,默认的白名单是:

array (
'http' => true,
'https' => true,
'mailto' => true,
'ftp' => true,
'nntp' => true,
'news' => true,
'tel' => true,
)

记住再次删除这些设置:

$config - > set('HTML.Trusted', true);
$config - > set('HTML.SafeObject', true);

并收紧URI.SafeIframeRegexp的正则表达式。

最新更新