HTML.Allowed
— это белый список всех разрешенных тегов, поэтому вы, вероятно, хотите объединить $config->get('HTML.Allowed')
с ,audio
в качестве значения.
Тем не менее, подход HTML Purifier к безопасности основан на HTML-разновидностях — например, вместо того, чтобы просто добавлять теги и атрибуты в белый список, он также гарантирует, что теги имеют смысл в контексте, в котором они находятся, а значения атрибутов выглядят так, как ожидалось, что означает, что он должен на самом деле понять определение HTML, которое вы ему передаете. Например, вы не хотите, чтобы тег <td>
был встроен в тег <div>
, это не имеет смысла; и вы бы не хотели width="foo"
в своем HTML, это тоже не имеет смысла.
Поскольку, насколько я знаю, HTML Purifier до сих пор не разбирается в HTML5, тег <audio>
, вероятно, не является тем, о котором он изначально знает. Вам нужно будет просмотреть "Настроить!" документация конечного пользователя, где рассказывается, как добавлять теги и атрибуты, о которых HTML Purifier не знает.
Процитируем самый яркий пример кода из связанной документации (этот код учит HTML Purifier работе с тегом <form>
):
Время для некоторого кода:
$config = HTMLPurifier_Config::createDefault();
$config->set('HTML.DefinitionID', 'enduser-customize.html tutorial');
$config->set('HTML.DefinitionRev', 1);
$config->set('Cache.DefinitionImpl', null); // remove this later!
$def = $config->getHTMLDefinition(true);
[...]
$form = $def->addElement(
'form', // name
'Block', // content set
'Flow', // allowed children
'Common', // attribute collection
array( // attributes
'action*' => 'URI',
'method' => 'Enum#get|post',
'name' => 'ID'
)
);
$form->excludes = array('form' => true);
Каждый из параметров соответствует одному из заданных нами вопросов. Обратите внимание, что мы добавили звездочку в конец атрибута действия, чтобы указать, что это необходимо. Если кто-то укажет форму без этого атрибута, тег будет удален. Кроме того, дополнительная строка в конце — это специальное дополнительное объявление, которое предотвращает вложение форм друг в друга.
После того, как вы выполнили эти инструкции, чтобы ваша процедура очистки знала о <audio>
, добавление тега <audio>
в ваш белый список конфигурации будет работать.
person
pinkgothic
schedule
06.07.2016