secure_link

Директива 'secure_link' используется для защиты ресурсов, требуя наличия действительной защищённой ссылки для доступа. — NGINX HTTP Core

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

Описание

Директива 'secure_link' добавляет дополнительный уровень защиты, гарантируя, что запросы к определённым ресурсам содержат защищённый токен. Этот токен генерируется на основе конкретного URL и секретного ключа, что позволяет серверу проверять подлинность и действительность запроса. Эта директива особенно полезна для медиаконтента или файлов для скачивания, когда нужно ограничить несанкционированный доступ. После настройки директива 'secure_link' проверяет наличие защищённой ссылки в URL запроса. Защищённая ссылка обычно состоит из хеша, который вычисляется с использованием URL запрашиваемого ресурса и секретного ключа, а также включает время истечения срока действия, что предотвращает бесконечное повторное использование ссылок. Если защищённая ссылка валидна, запрос обрабатывается; если она недействительна или отсутствует, доступ отклоняется. Синтаксис этой директивы позволяет задавать формат защищённой ссылки, а также секретный ключ, используемый для её генерации. Директиву можно применять в контекстах 'http', 'server' или 'location' для эффективного контроля доступа к ресурсам, повышая общую безопасность приложения.

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

location /protected {
    secure_link "$arg_md5$arg_time$uri";
    secure_link_md5 "secret_key";
}

Убедитесь, что секретный ключ, используемый для хеширования, хранится конфиденциально и надежно.

Будьте осторожны при выборе времени истечения срока действия: слишком раннее или слишком позднее истечение ссылок может привести к атакам типа отказа в обслуживании.