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

Igor Sysoev igor на sysoev.ru
Сб Мар 31 11:03:31 UTC 2012


On Sat, Mar 31, 2012 at 01:43:25PM +0400, Михаил Монашёв wrote:
> Здравствуйте.
> 
> Есть  проблема  с  непониманием  юзерами  происходящего.  Если  кто-то
> вставляет  на  сайт картинку с внешнего сайта, а вебсервер этого сайта
> вдруг  начинает  вместо  картинки  выдавать  запрос  на  ввод логина и
> пароля,  то  юзеры  вбивают  туда  свою  логины и пароли, отправляя их
> нехорошим юзерам.
> 
> Проблема решается через
> http://nginx.org/ru/docs/http/ngx_http_image_filter_module.html ,
> когда  все  картинки,  вместо отдачи напрямую, проксируются с внешнего
> сервера  и  проверяются,  что они картинки, а не запрос на авторизацию
> или вирусня какая.
> 
> Но  возникает  другая  проблема.  Хакер  может  передавать нам урл, по
> которому пойдёт вебсервер за картинкой. Это чревато следующим:
> 
> 1) полученная  картинка  может  быть  огромной  и  libgd  не сможет её
> переварить;
> 
> 2)  url  может  вести  в  нашу  внутреннюю  подсеть и слать туда левые
> запросы не хотелось бы.
> 
> 3)  nginx начинает использоваться, как досилка на хорошем канале. Ведь
> достаточно  в запрашиваемом урле менять один символ и nginx полезет по
> этому  урлу.  Сценарий  такой.  Вставляется  много  картинок с разными
> урлами  на  много  страниц  и  потом  на каждую страницу пригонятся по
> парочке  юзеров.  Они  все  шлют запросы к nginx-у, а тот фигачит их с
> нашего  ip по жертве. Абузы от правайдеров точно будут приходить после
> таких  атак.  Конечно  можно  в  firewall-е  настроить  ограничение на
> количество запросов к одному ip, но всёравно неприятный момент.
> 
> Как  избежать  описанных  проблем  или  может есть иной способ решения
> исходной проблемы с напрошенной авторизацией?

В Политбюро, как известно, не дураки не сидят, поэтому в Рамблере при
произвольном проксировании картинок image-фильтр использовался совместно с
http://nginx.org/ru/docs/http/ngx_http_secure_link_module.html


-- 
Igor Sysoev



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