Изменение допустимых тегов htmlpurifier для этой разметки

Настройки html-очистителя теперь позволяют только эти теги

$configuration->set('HTML.Allowed', 'p,ul,ol,li'); 

Я хочу разрешить отступы списков, и мой редактор использует этот html

 <ul style="margin-left: 40px;"> 

Как мне изменить допустимые теги HTMLPurifier? Я думал добавить style , но я думаю, что было бы лучше указать, какой именно стиль разрешен, что в этом случае будет margin-left . Каков правильный способ изменения HTML. В этом случае?

Related of "Изменение допустимых тегов htmlpurifier для этой разметки"

Разрешите атрибуты стиля, а затем измените разрешенные атрибуты CSS, используя % CSS.AllowedProperties .

  $ configuration-> set ('HTML.Allowed', 'p, ul [style], ol, li');
 $ configuration-> set ('CSS.AllowedProperties', 'margin-left'); 

PS Я удивлен, как многие люди не понимают, как работает очиститель HTML.

По крайней мере, вы хотите разрешить атрибуты для тегов, которые поддерживает очиститель, например:

 $configuration->set('HTML.Allowed', 'p,ul[style],ol,li'); 

Я не уверен, что вы также можете разрешить / ограничить содержимое атрибутов.

Я предлагаю вам не разрешать атрибуты вообще. Разрешение атрибута style вызывает уязвимость XSS в IE7 (и, возможно, другие версии, на данный момент я не уверен), но дело в том, что это слишком опасно. Вы должны сами проанализировать HTML-код и заменить константы пользователя в своем коде. Разрешение HTML – действительно опасная практика. Для лучшей безопасности вы можете попробовать что-то вроде уценки или создать свой собственный очень простой язык разметки (например, BBcode) для ваших пользователей.

Как и SamT, относительно уязвимости XSS в IE7, будьте осторожны, чтобы разрешить доступ к атрибуту стиля из-за гениального перемещения Microsoft, что позволило использовать javascript в CSS с помощью выражения () (также называемого динамическими свойствами). http://msdn.microsoft.com/en-us/library/ms537634(v=vs.85).aspx

Что касается его удаления в IE8, где Microsoft откровенно признает, что он подвергал пользователей дополнительным уязвимостям: http://blogs.msdn.com/b/ie/archive/2008/10/16/ending-expressions.aspx

пример:

 <a href="" style="width: expression(alert('XSS'));">blah</a> 

Вышеприведенное окно появится в окне MSI 5-7. В соответствии с документами в MSDN он также должен работать на IE8, когда режим Quirks активен. Это также может произойти и в IE9 в режиме quirks, но я не могу быть уверен.

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