Для каждого обратного вызова аутентификации HTTP принимайте решение об учетных данных в таком порядке:

  1. Проверьте, что запрашивающая сторона — это прокси, а не целевой сервер.
  2. Сопоставьте запрашиваемые хост и порт с одобренной записью прокси.
  3. Верните учетную запись этой записи или не возвращайте учетные данные для несовпадающего запроса.

Одни безусловные имя пользователя/пароль не могут выразить учетные записи двух прокси и могут утечь их другому получателю.

Предпочитайте Authenticator, привязанный к клиенту, при использовании конструктора HTTP-клиента Java. Authenticator JVM по умолчанию влияет и на другой участвующий код.

Определяйте любое сопоставление псевдонимов хоста намеренно, а не принимайте произвольные имена. Это шаблон HTTP; SOCKS может использовать другой путь реализации даже при похожем имени хоста.

Для диагностики записывайте тип запроса и идентификатор сопоставленной учетной записи без ее секрета. Это объясняет решение об области действия без журналирования паролей.

Похожие статьи