Назад | Перейти на главную страницу

Защита 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.

Я что-то упускаю?

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

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))

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

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

if (!$valid_referrer)