Авторизация HTTP-прокси и ошибка 407
Код 407 означает, что клиенту нужно авторизоваться именно перед прокси. Он похож на 401, но относится к другому участнику цепочки и использует отдельные заголовки. Правильное различение этих ответов упрощает поддержку и предотвращает передачу прокси-реквизитов целевому сайту.
Главное за минуту
- 407 приходит от прокси, а 401 — от сервера назначения.
- Proxy-Authenticate содержит вызов авторизации.
- Proxy-Authorization передаёт ответ клиента прокси.
- Реквизиты нужно отправлять только доверенному прокси и по защищённому каналу.
Модель challenge-response
Прокси, которому не хватает подходящих реквизитов, отвечает 407 и сообщает одну или несколько схем. Клиент выбирает поддерживаемую схему и повторяет запрос с новым Proxy-Authorization. Повтор должен учитывать безопасность исходной операции.
Basic не является шифрованием
В Basic логин и пароль объединяются и кодируются Base64. Это обратимое представление. HTTPS целевого сайта защищает данные внутри CONNECT-туннеля, но само по себе не шифрует реквизиты на участке от клиента до обычного HTTP-прокси. Для защиты этого участка нужен HTTPS-прокси, VPN либо иной доверенный защищённый канал. Пароли не следует повторно использовать для других сервисов.
Почему 401 и 407 отображаются отдельно
После успешной авторизации прокси целевой сайт всё ещё может потребовать собственную авторизацию и вернуть 401. Интерфейс должен указать источник ответа, иначе пользователь начнёт менять исправный пароль прокси вместо учётной записи приложения.
Практика журналирования
Записывайте время, адрес прокси, схему, код и идентификатор операции, но не пароль и не полный заголовок авторизации. Повторяющиеся 407 могут означать неверные реквизиты, неподдерживаемую схему, неправильный порт или потерю заголовка в клиенте.
Практический чек-лист
- 1Убедиться, что 407 пришёл от ожидаемого прокси.
- 2Проверить поддерживаемую схему авторизации.
- 3Не сохранять Proxy-Authorization в журнале.
- 4Отличать 407 от 401 целевого сайта.
- 5Отзывать скомпрометированный пароль, а не маскировать проблему.
Источники и документы
Материал подготовлен по первичным, официальным и техническим источникам. Формулировки статьи являются самостоятельным изложением.