Задать вопрос
@freshcot

Как защитить изображения по referer?

Есть такой конфиг для защиты от хотлинка:
location ~* ^.*\.(jpeg|jpg|gif|png)$ {

            valid_referers none blocked example.com *.example.com ~(google.|yandex.);

            if ($invalid_referer) {
                return 403;
            }

            root /root/public_html;
            access_log off;
            expires 30d;
            error_page 404 = @apache;

}

Проверяем:
wget --referer=http://ghfj.ru http://example.com/image.jpg
--2016-11-09 17:40:21--  http://example.com/image.jpg
Resolving example.com (example.com)... 10.10.10.1
Connecting to example.com (example.com)|10.10.10.1|:80... connected.
HTTP request sent, awaiting response... 403 Forbidden
2016-11-09 17:40:21 ERROR 403: Forbidden.

Казалось бы - ура, все работает, однако:
wget --referer=ghfj.ru http://example.com/image.jpg
--2016-11-09 17:40:28--  http://example.com/image.jpg
Resolving example.com (example.com)... 10.10.10.1
Connecting to example.com (example.com)|10.10.10.1|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 121414 (119K) [image/jpeg]
Saving to: `image.jpg'

100%[=====================================================================================================================================================================================================>] 121 414     --.-K/s   in 0,003s  

2016-11-09 17:40:28 (39,3 MB/s) - `image.jpg' saved [121414/121414]

Т.е. если в качестве реферера указать просто домен без http, то защита на nginx не работает, как можно решить эту проблему?
  • Вопрос задан
  • 152 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 1
NeLexa
@NeLexa
Бразуер передаёт реферер с http, а о специально смоделированных запросах не стоит беспокоиться, они спокойно и валидный реферер подсунут.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@SKRSKR
а какой вообще смысл этой защиты?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы