Nginx hotlink protection: защита от прямых ссылок

archive view archive save

hotlink-deny Ищете способ, чтобы остановить Hotlinking изображений на Nginx? Что такое Hotlinking изображений? Hotlinking изображений это довольно плохая практика, которая может использоваться для "кражи" пропускной способности Ваших серверов. Что это означает?

Это означает, что кто-то может создать ссылку на одно из Ваших изображений и отображать его на своих сайтах. В результате ваш сервер выступит в роли хостинга изображений для различных сайтов сети и Вы будете платить за чужой трафик.

Итак, что нам нужно для предотвращения Hotlinking-а на Nginx сервере? Ведь мы не хотим платить за чужой трафик? Для предотвращения включения с нашего сервера файлов-изображений или других ресурсов в веб-страницу чужого сайта используйте приведённую ниже комбинацию директив внутри Вашего файла конфигурации Nginx:

server {
    ...
 
    location ~ \.(jpg|jpeg|png|gif)$
    {
        valid_referers none blocked *.mainsite.com *.google.com *.yandex.ru \
            *.subscribe.ru *.feedburner.com *.bing.com *.webalta.ru *.yahoo.com \
            *.mail.ru *.poisk.ru *.rambler.ru *.nigma.ru *.ask.com *.qip.ru \
            *.ukr.net;
        if ($invalid_referer)
        {
            rewrite ^(.*)$ https://dl.dropboxusercontent.com/u/52572427/ \
                images/wrs-hotlink-deny.jpg break;
            break;
            #return   403;
        }
    }
 
    ...
}

В примере выше мы использовали ngx_http_rewrite_module для замены ссылки на реальное изображение ссылкой на изображение-заглушку с внешнего сервера. Если мы хотим просто отдать HTTP код 403, тогда закомментируйте "rewrite ^(.*)$ ... break;" и снимите комментарий с "#return 403;".

Вместо "*.mainsite.com" укажите имя своего домена и удалите или добавьте те домены, с которых будет разрешён Hotlinking.

Аналогичным образом можно прикрыть директорию:

server {
    ...
 
    location /pictures/
    {
        valid_referers none blocked *.mainsite.com *.google.com *.yandex.ru \
            *.subscribe.ru *.feedburner.com *.bing.com *.webalta.ru *.yahoo.com \
            *.mail.ru *.poisk.ru *.rambler.ru *.nigma.ru *.ask.com *.qip.ru \
            *.ukr.net;
        if ($invalid_referer)
        {
            return   403;
        }
    }
 
    ...
}

Добавить комментарий

АХТУНГ! Все комменты гостей модерасятся модерастом.
  1. Мессаги исключительно рекламного содержания, либо содержащие только одни оценочные суждения типа "круто" ("отлично", "спасибо", "автор дебил" и т.п.) не публикуются;
  2. Злостным спамерам, пранкерам и прочей сетевой нечисти рекомендуем напрасно не тратить своего времени и удовлетворять свои больные фантазии на специализированных Интернет ресурсах!;
  3. Разумная обоснованная критика, замечания, дополнения приветствуются. Поля помеченные символом * обязательны к заполнению.


Защитный код
Обновить

Нет комментариев

Вы можете стать первым, кто добавит комментарий к этой записи.

Комментарии в блоге
Новое на форуме