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

Михаил Монашёв postmaster на softsearch.ru
Сб Мар 31 15:34:26 UTC 2012


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

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

А как secure_link спасал Политбюро от первой проблемы?

P.S.
Есть  подозрение,  что  соль  для  secure_link  можно  рассчитать.  На
коротких ссылках и небольшой соли через rainbow tables, например. Или,
если соль длинная, то на графических картах или через инет-сообщества.
И  тогда  получится,  что  надо  менять  соль  и потом для всех ссылок
пересчитывать хэш.

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



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