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, но всёравно неприятный момент.
>
> Как избежать описанных проблем или может есть иной способ решения
> исходной проблемы с напрошенной авторизацией?