image_filter и хацкеры.

Михаил Монашёв postmaster на softsearch.ru
Сб Мар 31 09:43:25 UTC 2012


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

Есть  проблема  с  непониманием  юзерами  происходящего.  Если  кто-то
вставляет  на  сайт картинку с внешнего сайта, а вебсервер этого сайта
вдруг  начинает  вместо  картинки  выдавать  запрос  на  ввод логина и
пароля,  то  юзеры  вбивают  туда  свою  логины и пароли, отправляя их
нехорошим юзерам.

Проблема решается через
http://nginx.org/ru/docs/http/ngx_http_image_filter_module.html ,
когда  все  картинки,  вместо отдачи напрямую, проксируются с внешнего
сервера  и  проверяются,  что они картинки, а не запрос на авторизацию
или вирусня какая.

Но  возникает  другая  проблема.  Хакер  может  передавать нам урл, по
которому пойдёт вебсервер за картинкой. Это чревато следующим:

1) полученная  картинка  может  быть  огромной  и  libgd  не сможет её
переварить;

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

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

Как  избежать  описанных  проблем  или  может есть иной способ решения
исходной проблемы с напрошенной авторизацией?

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



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