Искать  
 
   
 
Сделать безопасный html еще безопаснее
Отправлено: 03 Апрель 2009 11:58 A.M.   [ Игнорировать ]
Новичок
Rank
Всего сообщений:  39
Зарегистрирован  2009-03-05

цитата из доков:

Разрешить только безопасный HTMLЭта опция разрешает обрабатывать только "безопасный код" HTMLкоторый включает: (<b>, <i>, <u>, <em>, <strike>, <strong>, <pre>, <code>, <blockquote>, <h2>, <h3>, <h4>, <h5>, <h6>). Весь другой код HTML будет преобразован в символьные объекты

А как мне запретить часть этих тегов, а также часть атрибутов в разрешенных тегах? В частности, я не хочу давать моим пользователям разрешения на

<em>, <strong>, <pre>, <code>, <blockquote>, <h2>, <h3>, <h4>, <h5>, <h6

и атрибуты тегов, позволяющие изменять цвет или размер шрифта. Как, например, style=”” в <a>.

Профиль
 
 
Отправлено: 03 Апрель 2009 12:11 P.M.   [ Игнорировать ]   [ # 1 ]
Администратор
RankRankRankRank
Всего сообщений:  1354
Зарегистрирован  2008-01-02

Самое просто - convert html into character entities. Тогда все теги будут восприниматься как текст.

 Подпись 

booooring…

Профиль
 
 
Отправлено: 03 Апрель 2009 12:15 P.M.   [ Игнорировать ]   [ # 2 ]
Новичок
Rank
Всего сообщений:  39
Зарегистрирован  2009-03-05

Не вариант, я хочу оставить часть тегов для использования.

в каком файле это все парсится? буду копать.

Профиль
 
 
Отправлено: 03 Апрель 2009 12:27 P.M.   [ Игнорировать ]   [ # 3 ]
Новичок
Rank
Всего сообщений:  39
Зарегистрирован  2009-03-05

ага, в core.typography.php

сейчас покопаю файл, попробую починить, что надо.

Профиль
 
 
Отправлено: 03 Апрель 2009 12:31 P.M.   [ Игнорировать ]   [ # 4 ]
Администратор
RankRankRankRank
Всего сообщений:  1354
Зарегистрирован  2008-01-02

ну можно еще поставить плагин автозамены и им проходить по тексту, используя регулярные выражения.

 Подпись 

booooring…

Профиль
 
 
Отправлено: 03 Апрель 2009 12:35 P.M.   [ Игнорировать ]   [ # 5 ]
Новичок
Rank
Всего сообщений:  39
Зарегистрирован  2009-03-05

Все, сам все сделал. В том файлике все довольно понятно даже для не-программиста )

Профиль
 
 
Отправлено: 03 Апрель 2009 12:37 P.M.   [ Игнорировать ]   [ # 6 ]
Администратор
RankRankRankRank
Всего сообщений:  1354
Зарегистрирован  2008-01-02

но только теперь вам будет нужно постоянно помнить о данной модификации. Самым правильным бы было повесит расширение на хук окончания публикации и в нем уже стирать ненужные тэги.

 Подпись 

booooring…

Профиль
 
 
Отправлено: 03 Апрель 2009 12:39 P.M.   [ Игнорировать ]   [ # 7 ]
Новичок
Rank
Всего сообщений:  39
Зарегистрирован  2009-03-05

Да, придется. Но плагины-расширения я писать не умею, а вот изменить что-то существующее - всегда пожалуйста )

Профиль
 
 
Отправлено: 03 Апрель 2009 02:09 P.M.   [ Игнорировать ]   [ # 8 ]
Студент
RankRank
Всего сообщений:  73
Зарегистрирован  2008-05-21
nch - 03 Апрель 2009 12:39 P.M.

Да, придется. Но плагины-расширения я писать не умею, а вот изменить что-то существующее - всегда пожалуйста )

  Необходимый Вам плагин написан лет пять тому назад!  http://expressionengine.com/downloads/details/html_strip/  Простая, удобная штучка с параметром  “keep” - необходимым для тонкого дирижирования...

Профиль
 
 
Отправлено: 03 Апрель 2009 02:19 P.M.   [ Игнорировать ]   [ # 9 ]
Новичок
Rank
Всего сообщений:  39
Зарегистрирован  2009-03-05

Sezarin, хорошая штука, но недостаточная для меня.
{exp:html_strip keep="a,b,u,strike"} - сохранит все указанные теги, включая <a style="font-size: 500px;">
А мне этого не надо.

Профиль
 
 
Отправлено: 03 Апрель 2009 02:51 P.M.   [ Игнорировать ]   [ # 10 ]
Студент
RankRank
Всего сообщений:  73
Зарегистрирован  2008-05-21
nch - 03 Апрель 2009 02:19 P.M.

Sezarin, хорошая штука, но недостаточная для меня.  {exp:html_strip keep="a,b,u,strike"} - сохранит все указанные теги, включая <a style="font-size: 500px;"> А мне этого не надо.

  Подредактируйте плагин, дописав несколько строчек в конце программы 

...  $template str_replace(\'/\'\'&#47;\'$template);  ==============  Здесь Ваш обработчикну что-то типа:   $template ereg_replace("конструкция вашего условного выражения""<a...>...</a>"$template);   ==============   $this->return_data $template
Профиль