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