$secure_link
Переменная $secure_link используется для проверки защищённой ссылки на ресурс на основе хэшированного токена. — NGINX Core (HTTP)
Описание
Переменная $secure_link используется в NGINX для управления и проверки защищённых ссылок на ресурсы, такие как файлы или данные, обеспечивая, что доступ ограничен авторизованными пользователями на основе токенов. Когда защищённая ссылка генерируется, она обычно хэшируется с использованием параметров, включая document root, URI и expiration timestamp, среди прочих. Таким образом, эта переменная содержит значение этого хэшированного линка, которое клиенты используют для аутентификации и получения доступа к защищённому ресурсу. Переменная устанавливается при определённых условиях, в частности, когда включён secure_link module и в конфигурации задана соответствующая `secure_link` директива в контексте http, server или location. Она валидирует запросы, сравнивая предоставленный токен с ожидаемой защищённой ссылкой, гарантируя, что ссылки имеют ограниченный срок действия (действительны только в течение определённого периода) и уникальны для каждого клиента. Типичные значения для этой переменной обычно отражают хэш, сгенерированный на основе настроек, установленных в директивах secure_link. На практике это помогает предотвратить несанкционированный доступ к конфиденциальным файлам, что делает механизм полезным для приложений, которым требуется защита контента, таких как приватные медиафайлы или загрузки программного обеспечения. Для обеспечения корректной работы необходимо тщательно управлять не только генерацией этих токенов, но и их сроком действия и политиками деактивации для повышения безопасности доступа.
Пример конфига
location /protected_file {
secure_link $arg_st,$arg_e;
secure_link_secret your_secret;
# Validate secure link
if ($secure_link = "") {
return 403; # deny access
}
# Allow access if validation passes
root /path/to/your/files;
add_header Content-Disposition "attachment; filename=protected_file";
}Подсистема
httpКэшируется
ДаКонтексты
http, server, location, ifУбедитесь, что secure link secret сохраняется в тайне; его раскрытие может поставить безопасность под угрозу.
Tokens должны генерироваться корректно; передача некорректных параметров приведёт к недействительным secure links.
Всегда задавайте сроки действия, чтобы предотвратить неограниченный доступ через устаревшие tokens.