Re[2]: image_filter и хацкеры.

Михаил Монашёв postmaster на softsearch.ru
Сб Мар 31 20:32:07 UTC 2012


Здравствуйте, Anton.

>> Есть  проблема  с  непониманием  юзерами  происходящего.  Если  кто-то
>> вставляет  на  сайт картинку с внешнего сайта, а вебсервер этого сайта
>> вдруг  начинает  вместо  картинки  выдавать  запрос  на  ввод логина и
>> пароля,  то  юзеры  вбивают  туда  свою  логины и пароли, отправляя их
>> нехорошим юзерам.
>>
>> Проблема решается через
>> http://nginx.org/ru/docs/http/ngx_http_image_filter_module.html ,
>> когда  все  картинки,  вместо отдачи напрямую, проксируются с внешнего
>> сервера  и  проверяются,  что они картинки, а не запрос на авторизацию
>> или вирусня какая.
>>
>> Но  возникает  другая  проблема.  Хакер  может  передавать нам урл, по
>> которому пойдёт вебсервер за картинкой. Это чревато следующим:
>>
>> 1) полученная  картинка  может  быть  огромной  и  libgd  не сможет её
>> переварить;

> http://nginx.org/ru/docs/http/ngx_http_image_filter_module.html#image_filter_buffer

> При превышении размера сервер вернёт ошибку 415 (Unsupported Media Type).

Спасибо. Игорь уже об этом написал.

>> 2)  url  может  вести  в  нашу  внутреннюю  подсеть и слать туда левые
>> запросы не хотелось бы.

> Запрети nginx-ку проксирующему картинки ходить во внутреннюю сеть. 
> Например с помощью файрвола.
> Ну и плюс секретные данные даже во внутренней сети должны требовать 
> авторизации.

Если  nginx  проксирует  ещё  куда-то,  то  спомощью firewall-а уже не
отделишь пакеты.

Я  пока придумал иное решение: разделить url картинки на 2 части: хост
и путь с аргументами. Например вот так:
muysite.ru/s018.radikal.ru/?u=%2Fi503%2F1201%2F40%2F64d1e692b053.jpg

Тогда хороший хост от внутренних ip можно отделить через разные
локейшны:

location / {
 проксируем
}
location 10.xx.xx.xx 192.168.xx.xx localhost и т.п. {
 посылаем в лес
}

>> 3)  nginx начинает использоваться, как досилка на хорошем канале. Ведь
>> достаточно  в запрашиваемом урле менять один символ и nginx полезет по
>> этому  урлу.  Сценарий  такой.  Вставляется  много  картинок с разными
>> урлами  на  много  страниц  и  потом  на каждую страницу пригонятся по
>> парочке  юзеров.  Они  все  шлют запросы к nginx-у, а тот фигачит их с
>> нашего  ip по жертве.

> Смысла нет - DoSить с кучи пользовательских IP эффективнее, чем с одного
> ip твоего сервера. IMHO проблема достаточно надуманная.

Дело  не  в  эффектиности  доса,  а эффективности абуз, которые придут
моему  провайдеру  после такого доса. Я конечно всё объясню. Но навряд
ли объяснения устроят, если ситуации будут повторяться.

-- 
С уважением,
 Михаил                          mailto:postmaster at softsearch.ru



Подробная информация о списке рассылки nginx-ru