server names при проверке valid referers

iron.udjin nginx-forum at nginx.us
Mon Jun 2 13:18:57 UTC 2014


Доброго времени суток,

Имеется:
server {
        listen 80;
        server_name _;
        ...
}

При проверке valid_referers:
 location ~* ^.+\.(jpg|jpeg|gif|css|png|js|ico|bmp)$ {
        valid_referers none blocked server_names *.domain.com;
        if ($invalid_referer) {
              return   403;
        }
}

... в server_names не присутствует доменное имя по которому клиент пришел на
сайт.
Смысл таков: при регистрации на сайте пользователь получает сабдомен
<username>.domain.com (именно по этому все запросы отправляются в
"server_name _" да бы не клепать сотни виртуалхостов). Но при желании он
может подключить свой домен к сервису. Хочется пресечь возможность
хотлинкинга загружаемых им статических файлов. Пробовал добавлять $host в
valid_referers, но так не работает. Подскажите пожалуйста как решить данную
проблему.

Заранее благодарен!

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,250569,250569#msg-250569



Подробная информация о списке рассылки nginx-ru