Сбой защиты горячих ссылок 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))