secure_link_secret
Директива `secure_link_secret` задаёт общий секрет, используемый для проверки защищённых ссылок в NGINX. — NGINX HTTP Core
Описание
Директива `secure_link_secret` используется в конфигурации NGINX для указания секретного ключа, который применяется при генерации и проверке защищённых ссылок. Это особенно полезно для защиты конфиденциальных ресурсов, поскольку гарантирует, что доступ к ссылкам возможен только у клиентов, обладающих корректной подписью, что ограничивает доступ к целевым файлам для неавторизованных пользователей. Когда создаётся защищённая ссылка, она состоит из исходного имени файла и метки времени истечения срока действия, которые криптографически хэшируются с помощью `secure_link_secret`. Это делает ссылку защищённой от подделки: любое изменение ссылки приведёт к отказу в проверке. Когда пользователь пытается получить доступ по защищённой ссылке, NGINX проверяет эту подпись с использованием `secure_link_secret` и разрешает доступ только если хэш корректен и срок действия не истёк. Директива принимает один аргумент — строку общего секрета. Её следует настраивать в контекстах `http`, `server` или `location`; использование этой директивы включает функциональность, связанную с защищёнными ссылками, которая также может требовать применения директивы `secure_link` для управления генерацией и проверкой самих ссылок. Необходимо тщательно хранить общий секрет в конфиденциальности, чтобы предотвратить неавторизованный доступ к ресурсам.
Пример конфига
http {
secure_link_secret "1mVm0gfR1cuNzU3nXqRxVhbSe3";
}
server {
location /protected {
secure_link $arg_hash,$arg_time;
if ($secure_link = "0") {
return 403;
}
# Serve the protected content...
}
}Убедитесь, что общий секрет хранится в тайне и ни в коем случае не раскрывается публично и не записывается в логи.
Изменение секрета после выдачи ссылок сделает эти ссылки недействительными и потребует генерации новых ссылок с использованием нового секрета.
Тестирование защищённых ссылок в процессе разработки может потребовать сложной настройки, чтобы убедиться, что секрет установлен правильно. Любое несоответствие заблокирует доступ.