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