Если разрешить пользователям Full HTML для постов на форуме и комментариев это опасно?
Может быть какой нибудь злобный хаккер придет и вставит кусок кода разрушающий тему оформления или еще того хуже?
Можно реальные примеры как это может быть опасно?
У меня один раз тема поехала, когда я FCKEdiotor-ом загрузеил в ряд несколько больших изображений. Причем на странице статьи было все нормально, а на taxonomy/term/1 к которому принадлежала статья все было поехано. Проблему удалось усправить редактируя (удаляя статью).
Ничего более страшного пока не было. Ну пишет юзер много разных html тегов у себя в теме форума и что? от этого сайт сломаться может?
Комментарии
да
лишишься сайта, а потом и других скорее всего
в Full HTML работают срипты, а это epic fail, тут даже обьяснять нечего.
Дайте вашу ссылку, где можно писать Full HTML.
Проще и безопаснее сделать свой кастомный тип ввода и указать в нем какие теги мона писать а какие низзя а full HTML это не тру.
Не знаю каких там страшных скриптов можна написать, но у меня все настроение мог бы испортить даже какой-нибудь, например, одинокий
</div>
. При этом все поползет так красиво ...К обсуждаемой теме отношения не имеет: незакрытые теги могут быть и в безопасном формате ввода. Проблема решается, например, фильтром HTML Corrector.
Товарищи, можете сказать конкретно чем это опасно?
Мне пока удалось этим форматом максимум сломать верстку одной страницы по ссылке taxonomy/term/1.
RxB, а что так сказать нельзя?
Васёк, скинь мне в личку этот сайт, я тебе покажу
в этом фулл. яваскрипты ведь работают. так?
Совершенно верно :), еще php разрешите вводить
код позволяет анонимам и зарегистрированным пользователям использовать php filter:
$.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 описывать не нужно?
Аплодирую стоя на стуле
У него же прав на доступ к странице нет.
Если так интересно, то с помощью скриптов можно вставить порно, контекстную рекламу, фреймы, увести куки, изменить дизайн сайта, выполнить межсайтовый запрос.
Если не уберете Full HTML, то рано или поздно это кто-то сделает.
это xss для админа
хех, точно )
Я бы уточнил так: позволяет использовать php filter только в том случае, если включен модуль php. А умные люди этот модуль не включают. А вообще, считаю, что пути admin и admin/* лучше переименовывать. Например, у Мадженты можно в настройках менять название для пути admin...
А на самом деле, full html может случиться в любом месте сайта, где разработчик по невнимательности (а не по незнанию) забудет обвернуть вывод данных через такие функции как check_plain и т.п.
ничто не мешает сделать ещё один запрос на включение этого модуля
умные люди не дают таких глупых советов
это очередной умный совет от умного человека?
А если модуль буден удален, то включить его уже нельзя будет.
Удаление модуля из админки не влечет за собой удаление строки из таблицы system спорить будем али как?
Даже если ты его вынесешь по фтп, то строка с БД останется, и потом получишь варнинги, если тайно статус в 1 перевести.
Это так, беседа за чаем, а не руководство к действию...
Объясните непрограммисту (мне), что делает эта ява. Как я понял, она ищет формы по нужным ID, и отсылает post нужный запрос
Но разве друпал не проверяет сам запрос перед передачей непосредственно в БД. Что там насчёт DB layer, обёрток типа db_query() и тд?
подгружает форму редактирования формата "PHP code", отмечает нужные галки и сабмитит её
никаких запросов к бд в коде как видишь нет, так что и проверять нечего
если бы да кабы
минуточку, а если нет прав на доступ к форме редактирования формата?
у админа не может не быть каких-то прав
Нужно заманить на страницу с этим кодом админа, и код выполнится от его имени с полными правами.
Это портрет современного drupal-разработчика?
У меня сдесь 1 профиль, а не 10.
месье еще и безграмотен?
На завод с отверткой и молотком идти не охота, да?
Говнотворишь на CMS-ке недалеким заказчикам поделки?
Дайте уже ссылку на сайт!
Вот, теперь дошло
Ссылка на сайт вам ничего не даст. Там регистрация доступна только зарегисрированным ползователям. И два формата ввода, для хаккеров на ПХП и на Жаве.
Тавтология с выносом мозга на орбиту неизведанного ранее феномена.
А для хакеров на Питоне что-нибудь есть?))
Ничто ж не мешает удалить строчку из БД? Так что спора не предвидится...
Эта строчка появится заново, стоит тебе только зайти на страницу модулей.
А вот нетушки, не появится! Нет файлов модуля, нет записи в БД. Откуда она появится заново?
Чо ты приципился к модули PHP? XSS мало что ли?
После обновления ядра, если вдруг шаристый друпал-хакер
-быдло-пхп-прогерзабудет удалить модуль.Хорошо, (специально для хаккеров) ставим вопрос по другому: а если из формата Full HTML убрать PHP обработчик, тогда Full HTML может быть опасен?
читай выше. если разрешён javascript, то сайт дыряв чуть боле чем полностью
Про javascript, где его запрещать? В формате ввода такой натройки не вижу.
admin/settings/filters - настроить - Фильтры - Фильтр HTML
Не вижу про javascript
И не увидишь
http://img686.imageshack.us/img686/2140/20101210112349.png
А вот если оставить разрешенными только теги:
<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 опасен?
Да.
Как? Неужели из этих тегов можно сложить что-то опасное?
http://help.yandex.ru/webmaster/?id=1059440#1059448
http://hacker-pro.net/showthread.php?t=3083
Допустим что пользователям разрешено делать ссылки на сайты (Портал спамеров).
xxandeadxx,
<script> <iframe> <object> <embed>
я разрешенными и не ставил.Все равно опасно?
ты уж определись)
Упс, пропустил мимо глаз. Хорошо вторая редакция разрешенных тегов:
<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>
Все еще опасно?
Тэг img может быть небезопасен.
(<br/> убери)
если на сайте нет активных csrf, то img безопасен. остальные вроде тоже
Если это форум то img убирать вроде не надо. Пусть посетители загружают картинки с внешних источников.
<br/>
чем опасно?Да ничем не опасно Просто дубль.
М-да действительно. Я ж этот набор копировал с документации по CKEditor. Пусть остается мало ли.
Отличная логика. Если форум, то IMG - безопасен. Так что ли?
Тогда object и frame тоже безопасны - пусть видео вставляют. Это же форум
Ничем, просто будь уж последователен, добавь тогда <img/> и <param/>
Зачем, кстати тебе param без <applet> и <object>?
DELETED
Ну с видео еще подумаю. Тем более что на этом форуме его вставлять можно.
Вырисовалась другая проблема. Допустим на форуме можно загружать картинки и указывать для них обтекание текста по правому или левому краю (float: left;)
Вставил картинку средствами CKEditor, получил такой код:
<img alt="" src="/file/kartinka.jpg" style="float: left;" />
Результат: обтекание не работает. Какой тег нужно добавить в список разрешенных чтобы работало?
у тебя fullHTML с разрешенными тегами?
Тогда не выйдет, т.к. он обрезает style-ы(потому что ими можно заглючить внешний вид страницы)
Воспользуйтесь «псевдо-стилями» , т.е. классами, что нибудь
ну и в стилях соответственно прописать:
float: left;
}
и безопасно, и достаточно просто поправить в дальнейшем стили.