После событий на хабре возник вопрос: Как с таким бороться?

24 января 2008 в 2:41
Аватар пользователя habralex habralex 0 26

еще бяка. не корысти ради, а демонстрации для

Комментарии

Любопытный эффект, пофиксил по-быстрому - блокируются изображения содержащие logout (интересно какие ещё вредные ссылки можно вызвать?) и не содержащие расширения. Больше не отлогинивает.

Но к хабрахабру это отношения не имеет.
В тему топика http://webplanet.ru/news/security/2008/01/23/habr_ddos.html

24 января 2008 в 7:51

logout ты пофиксал, а вторую бяку? посмотри внутрь топика и на его рейтинг.

P.S. ты все пропустил. до ddos-а на хабре таким развлекались.

24 января 2008 в 12:13

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

24 января 2008 в 17:33

Именно так. Просто сделал защиту от этого разлогинивания. В регвыражение фильтра несложно добавить защиту от других вредных ссылок, либо ограничить доступ локальным картинкам определёнными путями. В любом случае тут не нужна правка чего либо в ядре - подобный фильтр на img src решает проблему.

25 января 2008 в 16:13

мда, реитинг зашкаливает Lol
После хабра т оже подумал, о том что это же и в друпале вероятно осуществимо

Мда, а можно мне код (для изучения) по мылу ?

24 января 2008 в 14:06

А если сделать обработчик вывода, который анализирует атрибут src для изображений и фильтрует все изображения, которые ссылаются на файлы вне каталогов тем и files ?

24 января 2008 в 21:54

mityok wrote:
А если сделать обработчик вывода, который анализирует атрибут src для изображений и фильтрует все изображения, которые ссылаются на файлы вне каталогов тем и files ?

А если изображение не с сайта а с фликра ?
Поидее ничто не мешает анализировать является ли прикрепляемый файл картинкой или нет

А как вообще это в деталях работает? Браузер просто так обрабатывает тэг image тупо обращаясь куда угодно?
Поидее так можно и куки воровать вызывая удалённый пхп скрипт или я не прав?

25 января 2008 в 2:11

Нас, как я понимаю, в первую очередь интересует защита от вызова скриптов (в том числе и административных) на НАШЕМ сервере.
Соответственно, все пользовательские изображения должны быть в каталоге files, все изображения модулей и тем должны находиться в каталоге sites. Все обращения за изображением в другие каталоги должны быть пресечены как провокаторские.
Внешние ресурсы нас мало интересуют, хотя вполне возможна и такая атака - если у посетителя открыта сессия на другом сайте, код которого вызывается при помощи IMG.

А по поводу обработки тэга IMG - браузеру все равно, какой URI указан в атрибуте src - его задача обратиться по указанному адресу, поптыаться получить документ и если документ можно отобразить - то отобразить его. Т.е. если в атрибуте src указан правильно сформированный адрес - то браузер обратиться по нему.

25 января 2008 в 14:30

Поидее так можно и куки воровать вызывая удалённый пхп скрипт или я не прав?
Не прав. Куки устанавливаются для домена

25 января 2008 в 20:50

- А если изображение не с сайта а с фликра ?
Анализировать откуда изображение и запрещать все что не с файлс и темс

- Поидее ничто не мешает анализировать является ли прикрепляемый файл картинкой или нет
Конечно ничего. Но я что-то не припомню таких функций в пхп.

26 января 2008 в 10:47
Аватар пользователя B.X B.X 0

просто не нужно использовать html-теги, они же потенциально небезопасны... заткнули одну дырку, появится другая... гораздо лучше использовать механизмы, которые уже есть, типа BBCode и тд... их же не зря придумали...

27 января 2008 в 3:12

чтобы защитить и vote_up_down линки:
case 'process':
$strings_to_block = 'logout|vote_up_down';
return preg_replace("//iU", "[ИЗОБРАЖЕНИЕ $1 БЛОКИРОВАНО]", $text);
?>

27 января 2008 в 10:19
Аватар пользователя Dan Dan 0

В принципе этим способом можно запустить любой скрипт. Другое дело, что запустит его только привилегированный пользователь (правда узнает об этом опосля Smile когда зайдёт на страницу с фиктивным адресом (не сидите под рутом в *nix'ах и под админом в друпале! Smile

2B.X: При чём тут BBCode? Вот так это будет для BBCode:
[img]http://site.ru/logout[/img]

Какими ещё способами можно заставить браузер обратиться по нужному адресу (кроме JS)?

27 января 2008 в 12:15