$remote_passwd

$remote_passwd возвращает декодированный пароль из заголовка 'Authorization' при базовой HTTP-аутентификации. — NGINX CoolKit Module

$remote_passwd NGINX CoolKit Module

Описание

Переменная $remote_passwd является частью модуля NGINX CoolKit и играет ключевую роль в обработке базовой HTTP-аутентификации. Конкретно, она извлекает декодированный пароль, который содержится в заголовке 'Authorization' HTTP‑запроса, когда клиент проходит аутентификацию с помощью имени пользователя и пароля. Когда клиент отправляет запрос аутентификации, имя пользователя и пароль обычно кодируются в base64 и отправляются в формате 'Authorization: Basic base64(username:password)'. NGINX с помощью модуля CoolKit декодирует эту информацию, чтобы пароль мог быть использован в последующей обработке. Переменная устанавливается во время обработки HTTP‑запросов, которые содержат заголовок Authorization. Если заголовок отсутствует или не соответствует ожидаемому формату для базовой аутентификации, значение $remote_passwd будет пустым. Это означает, что в защищённых приложениях, где важны авторизация и проверка личности, эту переменную необходимо использовать осторожно, проверяя наличие действительных учетных данных перед использованием пароля в логике приложения. На практике $remote_passwd может быть критически важной информацией при работе с аутентификацией на бэкенде против баз данных или сервисов, которые требуют проверки имени пользователя и пароля, как показано в примерах конфигурации, приведённых в документации модуля.

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

location = /auth {
    internal;
    set_quote_sql_str  $user $remote_user;
    set_quote_sql_str  $pass $remote_passwd;
    postgres_pass      database;
    postgres_query     "SELECT login FROM users WHERE login=$user AND pass=$pass";
    postgres_rewrite   no_rows 403;
    postgres_output    none;
}

Подсистема

http

Кэшируется

Нет

Контексты

http, server, location

Убедитесь, что ваш веб-сервер настроен на корректную обработку Basic Authentication, поскольку отсутствие заголовков может привести к пустому $remote_passwd.

Используйте с осторожностью во внутренней логике, чтобы избежать потенциальных проблем с безопасностью. Незакодированные пароли не следует логировать или раскрывать ненадлежащим образом.

В зависимости от конфигурации Authorization header может быть удалён upstream proxies, что приведёт к пустой переменной.