Насколько безопасно использовать тег IMG?

Комментарии

Аватар пользователя Ветер Ветер 24 января 2009 в 11:55

Вот вам пример. Имеем формат ввода FilteredHTML
Если у вас IE с включенными java-скриптами попробуйте в BUEDITORE нажать на ГЛАЗ предватительно написав вот этот код

<IMG src=http://www.botik.ru/~robot/sidorov/pic/title1.gif
ondragstart="alert('Друпал самая продвинутая система!!!')">
</img>

При нажатии кнопки мыши и одновременном сдвиге появится всплывающее окно.
Я хочу сказать что удаление скриптов не происходит при предпросмотре в Bueditor.
Если использовать Друпаловский предпросмотр, то все ОК, скрипты удаляются.

Аватар пользователя Demimurych Demimurych 24 января 2009 в 12:10

В случае если вы собираетесь выводить то что ввел пользователь с этим тегом не пользуясь соответствующим фильтром, то это КРАЙНЕ ОПАСНО. Если Вы будете использовать, напрмиер FiltereHtml, то относительно безопасно. Относительно потому что теоретически в нем можно найти ошибку позволяющую все таки вставить в img джаваскрипт код. Хотя это пока никому не удалось.

"Ветер" wrote:
При нажатии кнопки мыши и одновременном сдвиге появится всплывающее окно.
Я хочу сказать что удаление скриптов не происходит при предпросмотре в Bueditor.
Если использовать Друпаловский предпросмотр, то все ОК, скрипты удаляются.

В этом нет ничего опасного. Разве что баловство с самим собой.

Аватар пользователя WiseMan WiseMan 24 января 2009 в 12:13

такой предпросмотр не отправляет информацию ни на сервер, ни на чужой комп. Так что считаю что с безопасностью здесь нормально, не будет же хакер к посетителям в гости ходить и Bueditor-ом пользоваться

Сасмому себе заподлить тоже вроде как ни к чему Smile

Аватар пользователя alexandr.poddubsky alexandr.poddubsky 24 января 2009 в 13:46

вообще то человек правильно задал вопрос, еессть калечные системы и в прошлом через этот тэг делались иньекции

Аватар пользователя direqtor direqtor 24 января 2009 в 18:21

В HTML-фильтре Drupal эта проблема решается. Стоит посмотреть на код функции [ru-api=_filter_xss_attributes].

$skip = ($attrname == 'style' || substr($attrname, 0, 2) == 'on');

Здесь выявляются атрибуты style (используя его пользователь может поломать дизайн сайта) и жабоскриптовые вставки начинающиеся на on. Далее они убираются из кода.