valid_referers

Директива `valid_referers` определяет список разрешённых URL-адресов referer для входящих запросов. — NGINX HTTP Core

valid_referers
serverlocation
Синтаксисvalid_referers string | blocked | none;
По умолчаниюnone
Контекстserver, location
МодульNGINX HTTP Core
Аргументы1+

Описание

Директива `valid_referers` используется для указания набора допустимых URL-адресов referer, которые могут получить доступ к ресурсу или локации, определённой в вашей конфигурации NGINX. Когда к ресурсу поступает запрос, NGINX проверяет заголовок HTTP `Referer` по отношению к указанному списку допустимых referer. Если referer не находится в указанном списке, запрос может быть отклонён в зависимости от настроенного поведения (обычно с помощью директивы `deny`). Директива принимает несколько аргументов, позволяя указать столько шаблонов referer, сколько необходимо. referer можно указать как полностью квалифицированное доменное имя, как шаблон с подстановочными символами (например, `*.example.com`), или по IP-адресам. Если referer не указан в списке или не соответствует ни одному из заданных шаблонов, NGINX можно настроить так, чтобы либо разрешать, либо запрещать запрос в зависимости от наличия или отсутствия referer. Обычно используемая в сочетании с директивами `deny` и `allow`, `valid_referers` является важным инструментом для управления доступом на основе источника входящего запроса, помогая предотвращать хотлинкинг или несанкционированный доступ к ресурсам.

Пример конфига

location /protected {
    valid_referers none blocked;
    valid_referers https://www.example.com https://example.com;
    # Optionally deny requests without a valid referer
    if ($invalid_referer) {
        return 403;
    }
}

Будьте осторожны при использовании wildcards: они могут непреднамеренно соответствовать большему числу URLs, чем ожидалось.

Убедитесь, что вы настроили обработку запросов без referer, особенно если используете 'blocked' в качестве аргумента.

Не забудьте включить 'none', чтобы при желании разрешить доступ без referers.