Одиночные кавычки отклонены очистителем HTML - PullRequest
0 голосов
/ 26 июля 2010

Это относится к HTMLPurifier - добавление в список игнорирования .Я добавил пару тегов в белый список.У меня есть этот код сейчас -

$config->set('HTML', 'AllowedElements', array("customreport", "column", "columnseq"));

$def = $config->getHTMLDefinition(true);
$def->addElement("customreport", 'Block', 'Flow', 'Common', array());
$def->addElement("column", 'Block', 'Inline', 'Common', array());
$def->addElement("columnseq", 'Inline', 'Empty', 'Common', array('path'=>'CDATA', 'label'=>'CDATA'));

Проблема в том, что если я отправляю HTML-тег, который имеет значение атрибута в одинарных кавычках, htmlpurifier меняет его на двойные кавычки.Например,

<columnseq path='test' label='tlabel' />

Это происходит даже на демонстрационном сайте (http://htmlpurifier.org/demo.php), с тестовой строкой

<A HREF='http://www.google.com/'>XSS</A>

Может ли это поведение быть переопределено

1 Ответ

3 голосов
/ 26 июля 2010

Канонизация кавычек атрибутов в двойные кавычки была намеренным дизайнерским решением, вытекающим из того факта, что когда мы строим наше представление HTML в памяти, у нас есть только ассоциативный массив имен атрибутов для значений, и никакой информации о каким был оригинальный стиль цитирования. Если вы используете синтаксический анализатор стиля DOM, вы также не сможете получить эту информацию.

...