Nginx защита от hotlink

Статус
В этой теме нельзя размещать новые ответы.
K

kenny

Гость
Уникальный контент важен для любого сайта, каждый для себя решает вопросы как защитить свой контент от воровства.
Сегодня я Вам расскажу, как защитить изображения от hotlink на примере веб сервера Nginx.

Хотлинк (англ. hotlink) — включение в веб-страницу файлов-изображений или других ресурсов с чужого сервера.


Опишим общую конструкцию для location

Код:
location ~ \.(jpeg|png|gif|jpg)$ {
valid_referers none blocked ya.ru *.ya.ru;
if ($invalid_referer) {
return 403;
}
}

Из примера видно что для изображения у нас заданы реферы которые разрешены, то есть Вы с легкостью можите указать, несколько доменов на которых разрешены показы Ваших файлов.
Далее идет конструкция для проверки реферов, если домен с которого идет запрос не входит в число разрешенных то на запрос вернется 403 ошибка.
Рассмотри более интересный пример.
Код:
location ~* ^.+\.(svg|mp3|ogg|mpe?g|zip|gz|bz2?|rar|jpg|png|gif|jpeg|flv|torrent)$ {
root /path/to/site/;
valid_referers none blocked server_names ;
if ($invalid_referer) {
rewrite ^(.*)$ /path/pic/1x1.png redirect;
}
}
root /path/to/site/ - путь где у Вас расположен сайт
server_names - дружественные домены, не забываем что Ваш домен должен находится в джружественных.
Для всех остальных мы делаем реврайт rewrite ^(.*)$ /path/pic/1x1.png redirect; и вместо реального контента отдаем изображение по заданому пути.
Вот таким легким движением руки и немного подумав мы сделали инструмент для борьбы с hotlink

Please Login or Register to view hidden text.

 
Статус
В этой теме нельзя размещать новые ответы.
Сверху