Как я могу предотвратить хотлинкинг? (Nginx)

Я использую nginx, и у меня нет доступа к серверу conf.

Может быть с аналогом.htaccess?..

5 ответов

Решение

Без доступа к конфигурации сервера вы не сможете изменить какие-либо настройки. В nginx нет эквивалента.ht access Apache httpd.

location ~* (\.jpg|\.png|\.gif|\.jpeg)$ {
 valid_referers blocked www.domain.com domain.com;
 if ($invalid_referer) {
    return 403;
 }
  root   /srv/www/domain.com/public_html;
}

На случай, если у вас есть доступ к веб-серверу:

location ~* (\.jpg|\.png|\.gif|\.jpeg|\.png)$ {
 valid_referers none blocked www.example.com example.com;
 if ($invalid_referer) {
    return 403;
 }
}

Джоски прав: nginx управляется одним файлом конфигурации, который вы не можете редактировать. Ваша единственная возможность - использовать скрипт перенаправителя с надписью "403 Access Denied" для горячих ссылок и "301 Moved Permanently" для обычных ссылок.

Одним из решений является создание всех ваших страниц и контента динамически и с разными URL каждый раз, срок действия которых истекает через некоторое время. Это делает горячую ссылку невозможной.

Если это не практично, вы также можете проверить реферер. Если вы не можете перенастроить nginx, вам, вероятно, придется сделать это на языке сценариев, который генерирует страницы динамически.

Другие вопросы по тегам