$invalid_referer
Переменная $invalid_referer устанавливается в 1, если referer запроса не разрешён на основании заданных правил доступа. — NGINX Core (HTTP)
Описание
Переменная $invalid_referer используется в NGINX, чтобы указать, считается ли заголовок referer входящего HTTP-запроса недействительным в соответствии с заранее определёнными правилами доступа. Эта переменная в первую очередь связана с `ngx_http_access_module`, который позволяет администраторам задавать разрешённые или запрещённые referer с помощью директив `allow` и `deny` в конфигурационном файле. Когда запрос обрабатывается, модуль проверяет заголовок `Referer` по отношению к настроенным правилам. Если referer не соответствует ни одной из разрешённых записей и попадает под условие deny, $invalid_referer устанавливается в 1. Эта функциональность особенно полезна в сценариях, где важна безопасность содержимого, например для предотвращения использования ресурсов неавторизованными сайтами. Переменная обычно возвращает значение 1, когда referer неверен; в противном случае она не установлена, что означает корректный referer. Важно учитывать, что referer может быть подделан клиентом, поэтому полагаться только на проверку referer для обеспечения безопасности не следует. Переменная $invalid_referer может помочь контролировать доступ к ресурсам, реализуя условную логику в конфигурации NGINX на основе её значения, что позволяет более тонко управлять доступом и механизмами безопасности.
Пример конфига
location /protected {
valid_referers none blocked example.com;
if ($invalid_referer) {
return 403;
}
}Подсистема
httpКэшируется
ДаКонтексты
http, server, location, ifУбедитесь, что заголовок Referer действительно отправляется клиентами, так как некоторые могут не отправлять его, что приведёт к неожиданному поведению.
Учитывайте последствия использования `if` внутри блока location, так как это может привести к непредвиденным результатам, если не использовать его осторожно.
Имейте в виду, что заголовки Referer могут быть подделаны; не полагайтесь исключительно на эту переменную при принятии критически важных решений по безопасности.