Обрезание параметров html тегов фильтром "Filtered html"

Главные вкладки

Аватар пользователя Santi Santi 16 сентября 2009 в 11:49

Filtered html обрезает дополнительные параметры html тегов.
Напр. в коде -
<div style="width: 200px; float: left;">
а остается просто
<div>

Фильтр Full HTML такого не делает... Где можно подправить ситуацию?

Комментарии

Аватар пользователя Santi Santi 16 сентября 2009 в 22:29

> СѓРґР°Р
Ушел думать (я перловод)... Smile
Возможно проще подправить пару строчек в filter.module?
Или такие вещи небезопасны и надо все же использовать фильтр "Full html"?

Аватар пользователя neochief neochief 16 сентября 2009 в 23:00

...и сразу расплачиваемся за самопис:

$vars['content'] = '<div onmouseover="document.write(\'XSS\')">Sometest</div>';

Вместо этого, если бы автор не харкодил стили в контент и делал качественную работу, он бы прописал стили в CSS-файлах, а в контенте бы пользовался классами т.к. аттрибут вида class="someclass" фильтр не съедает.

Аватар пользователя neochief neochief 17 сентября 2009 в 0:31

$vars['content'] = _strip_tags('<div onmouseonmouseover=""over="document.write(\'XSS\')">123</div>', 'div', 'onmouseover');

А здесь? Тридцать баксов в час, да?

Аватар пользователя neochief neochief 17 сентября 2009 в 2:01

Подождите-ка, раз предлагаете решение, так отвечайте за него. Я показал как ваш код ломается минимум двумя способами (и судя по вашей реплике, вы не поняли суть второго метода), предложил _правильную_ альтернативу, а вы говорите мне идти учить матчасть? Дак вот она, двумя комментами выше. Человек сейчас вставит этот код в вывод шаблонов нод или комментов. Зачем тогда бы он про фильтры спрашивал, если б дело было не с юзерским контентом.

Я так понимаю: не прав — скажи «не прав», показали как лучше — скажи «спасибо», улучши свой код. А вы юлить начали.

Аватар пользователя Santi Santi 18 сентября 2009 в 10:26

У меня клиенты имеют право на свой особенный дизайн для своей страницы.
Но раз параметр class не режется, то пока что разрешил тег style и клиент у себя на странице может прямо в тексте объявить стили.

Аватар пользователя neochief neochief 18 сентября 2009 в 0:19

"MDinc" wrote:
Я им режу стили и класс
Но НИКАК не XSS (персоанально для neochief)

То, что ваш код не режет XSS, по чем зря, уже все поняли. Стоит клиенту ввести одну из строк, которую я привел выше, и они получат возможность поломать сайт.

Если бы избыток сарказма не искажал ваши мысли, вы возможно бы и дошли до решения проблемы вашего кода в виде списка разрешенных атрибутов (а не запрещенных, как сейчас). Но, по всей видимости, кроме написания саркастических комментов, вы очень занятой человек, и времени на решение проблем, вызванных вашими хаками, у вас нет.

Аватар пользователя oksoft oksoft 8 апреля 2012 в 2:53

Спасибо, Worth.
Действительно модуль wysiwyg_filter позволяет более серьезно настроить фильтрацию html, чем стандартный filter HTML.
Только ваш список настроек нужно немного расширить, иначе он фильтрует все ссылки. В третью строчку нужно добавить теги href и rel:
a[target<_blank|title|rel|href],

также достоинством этого модуля является настраиваемый фильтр спамерских ссылок, которые добавляет rel="nofollow" к "ненужным" адресам.

Аватар пользователя EDark EDark 1 августа 2012 в 19:54

а не подскажите как сделать чтобы p class не обрезались? а то ckeditor именно классом выравнивание делает