Сбой защиты горячих ссылок nginX

У меня есть следующая конфигурация для отключения хотлинкинга на nginX.

        location / {
        root   /var/www/html;
        index  index.html index.htm;
    }

    location ~ \.(xml|jpg|jpeg)$  {
         root /var/www/html;
         valid_referers  none blocked  www.domain.com dev.domain.net;
         if ($invalid_referer)  {
              return 444;
         }
     }

Я перезагружал nginX несколько раз, и у меня все еще есть доступ к изображениям из Facebook. У меня есть несколько папок в /var/www/html.

Я что-то пропустил?

2 ответа

Не уверен, если вы знаете, но есть ошибка в nginx, и если этот код находится в отдельном файле (не nginx.conf, перезагрузка не получит изменения во включенном файле; вам нужно будет остановить / запустить nginx.

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

if (!$valid_referrer)

Проверьте ссылку в журнале доступа:

IP - - [20/Feb/2011:20:11:51 +0000] "GET /GET HTTP/1.1" 200 3710 "REFER" "USER_AGENT"

valid_referers:

  • none означает отсутствие заголовка "Referer".
  • заблокирован означает скрытый заголовок Referer брандмауэром (не http(s))
Другие вопросы по тегам