Full HTML он опасен?

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

Аватар пользователя VasyOK VasyOK 25 октября 2010 в 6:58

Если разрешить пользователям Full HTML для постов на форуме и комментариев это опасно?

Может быть какой нибудь злобный хаккер придет и вставит кусок кода разрушающий тему оформления или еще того хуже?

Можно реальные примеры как это может быть опасно?

У меня один раз тема поехала, когда я FCKEdiotor-ом загрузеил в ряд несколько больших изображений. Причем на странице статьи было все нормально, а на taxonomy/term/1 к которому принадлежала статья все было поехано. Проблему удалось усправить редактируя (удаляя статью).

Ничего более страшного пока не было. Ну пишет юзер много разных html тегов у себя в теме форума и что? от этого сайт сломаться может?

Комментарии

Аватар пользователя penexe penexe 25 октября 2010 в 7:20

"penexe" wrote:
Можно реальные примеры как это может быть опастно?

лишишься сайта, а потом и других скорее всего

Аватар пользователя glu2006 glu2006 25 октября 2010 в 11:56

Проще и безопаснее сделать свой кастомный тип ввода и указать в нем какие теги мона писать а какие низзя Smile а full HTML это не тру.

Аватар пользователя sanita sanita 25 октября 2010 в 16:18

Не знаю каких там страшных скриптов можна написать, но у меня все настроение мог бы испортить даже какой-нибудь, например, одинокий </div>. При этом все поползет так красиво ... Smile

Аватар пользователя Crea Crea 25 октября 2010 в 23:31

sanita wrote:
Не знаю каких там страшных скриптов можна написать, но у меня все настроение мог бы испортить даже какой-нибудь, например, одинокий </div>. При этом все поползет так красиво ... :)

К обсуждаемой теме отношения не имеет: незакрытые теги могут быть и в безопасном формате ввода. Проблема решается, например, фильтром HTML Corrector.

Аватар пользователя VasyOK VasyOK 25 октября 2010 в 20:02

Товарищи, можете сказать конкретно чем это опасно?
Мне пока удалось этим форматом максимум сломать верстку одной страницы по ссылке taxonomy/term/1.

RxB, а что так сказать нельзя?

Аватар пользователя xxandeadxx xxandeadxx 26 октября 2010 в 1:45

"VasyOK" wrote:
Товарищи, можете сказать конкретно чем это опасно?

код позволяет анонимам и зарегистрированным пользователям использовать php filter:

<script>
$.get(Drupal.settings.basePath + 'admin/settings/filters/3', function(response){
  var form = $('#filter-admin-format-form', response);
  form.find('#edit-roles-1').attr('checked', 'checked');
  form.find('#edit-roles-2').attr('checked', 'checked');
  $.post(Drupal.settings.basePath + 'admin/settings/filters/3', form.serialize());
});
</script>

дальше думаю возможности full html описывать не нужно?

Аватар пользователя kyky kyky 26 октября 2010 в 2:16

"xxandeadxx" wrote:

У него же прав на доступ к странице нет.
"VasyOK" wrote:

Если так интересно, то с помощью скриптов можно вставить порно, контекстную рекламу, фреймы, увести куки, изменить дизайн сайта, выполнить межсайтовый запрос.
Если не уберете Full HTML, то рано или поздно это кто-то сделает.

Аватар пользователя Sinkora Sinkora 29 октября 2010 в 23:39

"xxandeadxx" wrote:
код позволяет анонимам и зарегистрированным пользователям использовать php filter

Я бы уточнил так: позволяет использовать php filter только в том случае, если включен модуль php. А умные люди этот модуль не включают. А вообще, считаю, что пути admin и admin/* лучше переименовывать. Например, у Мадженты можно в настройках менять название для пути admin...

А на самом деле, full html может случиться в любом месте сайта, где разработчик по невнимательности (а не по незнанию) забудет обвернуть вывод данных через такие функции как check_plain и т.п.

Аватар пользователя xxandeadxx xxandeadxx 29 октября 2010 в 23:55

"Sinkora" wrote:
позволяет использовать php filter только в том случае, если включен модуль php

ничто не мешает сделать ещё один запрос на включение этого модуля

"Sinkora" wrote:
А умные люди этот модуль не включают.

умные люди не дают таких глупых советов

"Sinkora" wrote:
А вообще, считаю, что пути admin и admin/* лучше переименовывать

это очередной умный совет от умного человека?

Аватар пользователя Sinkora Sinkora 30 октября 2010 в 0:07

"xxandeadxx" wrote:
ничто не мешает сделать ещё один запрос на включение этого модуля

А если модуль буден удален, то включить его уже нельзя будет.

Аватар пользователя glu2006 glu2006 31 октября 2010 в 0:29

Sinkora wrote:
А если модуль буден удален, то включить его уже нельзя будет.

Удаление модуля из админки не влечет за собой удаление строки из таблицы system Smile спорить будем али как?
Даже если ты его вынесешь по фтп, то строка с БД останется, и потом получишь варнинги, если тайно статус в 1 перевести.

Аватар пользователя Sinkora Sinkora 30 октября 2010 в 0:08

"xxandeadxx" wrote:
это очередной умный совет от умного человека?

Это так, беседа за чаем, а не руководство к действию...

Аватар пользователя volocuga@drupal.org volocuga@drupal.org 30 октября 2010 в 0:38

"xxandeadxx" wrote:

Объясните непрограммисту (мне), что делает эта ява. Как я понял, она ищет формы по нужным ID, и отсылает post нужный запрос

Но разве друпал не проверяет сам запрос перед передачей непосредственно в БД. Что там насчёт DB layer, обёрток типа db_query() и тд?

Аватар пользователя xxandeadxx xxandeadxx 30 октября 2010 в 3:13

"<a href="mailto:volocuga@drupal.org">volocuga@drupal.org</a>" wrote:
Объясните непрограммисту (мне), что делает эта ява. Как я понял, она ищет формы по нужным ID, и отсылает post нужный запрос

подгружает форму редактирования формата "PHP code", отмечает нужные галки и сабмитит её

"<a href="mailto:volocuga@drupal.org">volocuga@drupal.org</a>" wrote:
Но разве друпал не проверяет сам запрос перед передачей непосредственно в БД.

никаких запросов к бд в коде как видишь нет, так что и проверять нечего

"Sinkora" wrote:
А если модуль буден удален, то включить его уже нельзя будет.

если бы да кабы

Аватар пользователя volocuga@drupal.org volocuga@drupal.org 30 октября 2010 в 3:36

"xxandeadxx" wrote:
подгружает форму редактирования формата "PHP code", отмечает нужные галки и сабмитит её

минуточку, а если нет прав на доступ к форме редактирования формата?

Аватар пользователя kyky kyky 30 октября 2010 в 6:16

"<a href="mailto:volocuga@drupal.org">volocuga@drupal.org</a>" wrote:
минуточку, а если нет прав на доступ к форме редактирования формата?

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

Аватар пользователя Kur Kur 30 октября 2010 в 9:21

Quote:
VasyOK
Время участия
1 год 50 недель

"VasyOK" wrote:
Если разрешить пользователям Full HTML для постов на форуме и комментариев это опасно?

Это портрет современного drupal-разработчика?

Аватар пользователя Kur Kur 31 октября 2010 в 9:58

VasyOK wrote:
У меня сдесь 1 профиль, а не 10.

месье еще и безграмотен?
На завод с отверткой и молотком идти не охота, да?
Говнотворишь на CMS-ке недалеким заказчикам поделки?

Аватар пользователя VasyOK VasyOK 30 октября 2010 в 23:54

Ссылка на сайт вам ничего не даст. Там регистрация доступна только зарегисрированным ползователям. И два формата ввода, для хаккеров на ПХП и на Жаве.

Аватар пользователя Sinkora Sinkora 31 октября 2010 в 0:13

"VasyOK" wrote:
Там регистрация доступна только зарегисрированным ползователям.

Тавтология с выносом мозга на орбиту неизведанного ранее феномена.

"VasyOK" wrote:
И два формата ввода, для хаккеров на ПХП и на Жаве.

А для хакеров на Питоне что-нибудь есть?))

Аватар пользователя Sinkora Sinkora 31 октября 2010 в 0:37

"glu2006" wrote:
Удаление модуля из админки не влечет за собой удаление строки из таблицы system :)

Ничто ж не мешает удалить строчку из БД? Так что спора не предвидится...

Аватар пользователя vgoodvin vgoodvin 31 октября 2010 в 2:22

"Sinkora" wrote:
Ничто ж не мешает удалить строчку из БД? Так что спора не предвидится...

Эта строчка появится заново, стоит тебе только зайти на страницу модулей.

Аватар пользователя Sinkora Sinkora 31 октября 2010 в 2:37

"vgoodvin" wrote:
Эта строчка появится заново, стоит тебе только зайти на страницу модулей.

А вот нетушки, не появится! Нет файлов модуля, нет записи в БД. Откуда она появится заново?

Аватар пользователя Dan Dan 31 октября 2010 в 10:15

"Sinkora" wrote:
А вот нетушки, не появится! Нет файлов модуля, нет записи в БД. Откуда она появится заново?

Чо ты приципился к модули PHP? XSS мало что ли?

Аватар пользователя vgoodvin vgoodvin 31 октября 2010 в 10:33

"Sinkora" wrote:
А вот нетушки, не появится! Нет файлов модуля, нет записи в БД. Откуда она появится заново?

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

Аватар пользователя VasyOK VasyOK 10 декабря 2010 в 9:25

Хорошо, (специально для хаккеров) ставим вопрос по другому: а если из формата Full HTML убрать PHP обработчик, тогда Full HTML может быть опасен?

Аватар пользователя VasyOK VasyOK 7 марта 2011 в 2:31

А вот если оставить разрешенными только теги:
<a> <p> <span> <div> <h1> <h2> <h3> <h4> <h5> <h6> <img> <map> <area> <hr> <br> <br /> <ul> <ol> <li> <dl> <dt> <dd> <table> <tr> <td> <em> <b> <u> <i> <strong> <del> <ins> <sub> <sup> <quote> <blockquote> <pre> <address> <code> <cite> <embed> <object> <param> <strike> <caption> <tbody>

Тогда Full HTML опасен?

Аватар пользователя VasyOK VasyOK 7 марта 2011 в 3:29

Допустим что пользователям разрешено делать ссылки на сайты (Портал спамеров).

xxandeadxx,
<script> <iframe> <object> <embed> я разрешенными и не ставил.

Все равно опасно?

Аватар пользователя xxandeadxx xxandeadxx 7 марта 2011 в 3:52

"VasyOK" wrote:
<script> <iframe> <object> <embed> я разрешенными и не ставил.

"VasyOK" wrote:
А вот если оставить разрешенными только теги: <embed> <object>

ты уж определись)

Аватар пользователя VasyOK VasyOK 7 марта 2011 в 4:05

Упс, пропустил мимо глаз. Хорошо вторая редакция разрешенных тегов:
<a> <p> <span> <div> <h1> <h2> <h3> <h4> <h5> <h6> <img> <map> <area> <hr> <br> <br /> <ul> <ol> <li> <dl> <dt> <dd> <table> <tr> <td> <em> <b> <u> <i> <strong> <del> <ins> <sub> <sup> <quote> <blockquote> <pre> <address> <code> <cite> <param> <strike> <caption> <tbody>

Все еще опасно?

Аватар пользователя VasyOK VasyOK 7 марта 2011 в 5:02

Если это форум то img убирать вроде не надо. Пусть посетители загружают картинки с внешних источников.
<br/> чем опасно?

Аватар пользователя G.A. Vinogradov G.A. Vinogradov 7 марта 2011 в 9:22

VasyOK wrote:
Если это форум то img убирать вроде не надо. Пусть посетители загружают картинки с внешних источников.
<br/> чем опасно?

Да ничем не опасно Wink Просто дубль.

Аватар пользователя Dan Dan 7 марта 2011 в 12:23

"VasyOK" wrote:
Если это форум то img убирать вроде не надо. Пусть посетители загружают картинки с внешних источников.

Отличная логика. Если форум, то IMG - безопасен. Так что ли?
Тогда object и frame тоже безопасны - пусть видео вставляют. Это же форум Smile

"VasyOK" wrote:
<br/> чем опасно?

Ничем, просто будь уж последователен, добавь тогда <img/> и <param/> Wink
Зачем, кстати тебе param без <applet> и <object>?

Аватар пользователя VasyOK VasyOK 14 марта 2011 в 5:00

Ну с видео еще подумаю. Тем более что на этом форуме его вставлять можно.

Вырисовалась другая проблема. Допустим на форуме можно загружать картинки и указывать для них обтекание текста по правому или левому краю (float: left;)

Вставил картинку средствами CKEditor, получил такой код:
<img alt="" src="/file/kartinka.jpg" style="float: left;" />

Результат: обтекание не работает. Какой тег нужно добавить в список разрешенных чтобы работало?

Аватар пользователя natbampo natbampo 14 марта 2011 в 8:40

у тебя fullHTML с разрешенными тегами?
Тогда не выйдет, т.к. он обрезает style-ы(потому что ими можно заглючить внешний вид страницы)

Аватар пользователя olk olk 14 марта 2011 в 9:50

"VasyOK" wrote:
Вставил картинку средствами CKEditor, получил такой код:

Результат: обтекание не работает. Какой тег нужно добавить в список разрешенных чтобы работало?


Воспользуйтесь «псевдо-стилями» , т.е. классами, что нибудь

<img alt="" src="/file/kartinka.jpg" class="img-align-left" />

ну и в стилях соответственно прописать:

.img-align-left {
float: left;
}

и безопасно, и достаточно просто поправить в дальнейшем стили.