auth_hash_message

Определяет сообщение, которое будет хешироваться для аутентификации защищённой ссылки в NGINX.

Синтаксисauth_hash_message string;
По умолчаниюnone
Контекстhttp, server, location
Аргументы1

Описание

Директива auth_hash_message является неотъемлемой частью модуля Secure Link Hash в NGINX, который расширяет функциональность защищённых ссылок, позволяя задать пользовательское сообщение, которое будет хешироваться для генерации безопасного токена. Указав эту директиву, пользователь может определить, какие части запроса будут включены в формирование токена, который затем проверяется при доступе к защищённым ресурсам. Сообщение обычно комбинирует URI запроса, временные метки или другие динамические аргументы с секретным ключом, задаваемым директивой auth_hash_secret. Безопасный токен помогает гарантировать, что ссылки истекают после заданного времени и при необходимости может включать диапазон срока действия.

Чтобы задать эту директиву, в качестве её аргумента передаётся сложная переменная, ссылающаяся на части сообщения. Эта переменная может включать NGINX-переменные (например, $uri, аргументы запроса или пользовательские переменные), которые можно конкатенировать в строку, служащую основой для хеша. При поступлении запроса NGINX вычисляет хеш, используя полное сообщение, заданное директивой auth_hash_message, сравнивает его с предоставленным токеном и проверяет другие условия, такие как корректность временной метки, задаваемую auth_hash_check_time, и формат токена через auth_hash_check_token. Такая гибкость помогает создавать безопасные короткоживущие URL, которые трудно подделать.

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

location ^~ /files/ {
    auth_hash on;
    auth_hash_check_time $arg_ts range_end=$arg_e format=%s;
    auth_hash_check_token $arg_st format=hex;
    auth_hash_secret "my_secret_key";
    auth_hash_message "$uri|$arg_ts|$arg_e|$auth_hash_secret";
    auth_hash_algorithm sha256;
    
    if ($auth_hash != "1") {
        return 403;
    }
    rewrite ^/files/(.*)$ /files/$1 break;
}

Убедитесь, что переменные, используемые в сообщении, корректно заданы; неопределённые переменные приведут к неверным хэшам.

Убедитесь, что строка сообщения содержит все ожидаемые компоненты, необходимые для валидации; отсутствующие элементы могут скомпрометировать безопасность URLs.

Тщательно проверьте формат метки времени истечения; несовпадающие форматы могут помешать успешной валидации токена.

← Ко всем директивам