secure_link_secret
Директива `secure_link_secret` задаёт общий секрет, используемый для проверки защищённых ссылок в NGINX.
Описание
Директива 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...
}
}Убедитесь, что общий секрет хранится в тайне и ни в коем случае не раскрывается публично и не записывается в логи.
Изменение секрета после выдачи ссылок сделает эти ссылки недействительными и потребует генерации новых ссылок с использованием нового секрета.
Тестирование защищённых ссылок в процессе разработки может потребовать сложной настройки, чтобы убедиться, что секрет установлен правильно. Любое несоответствие заблокирует доступ.