Передавая имя пользователя и пароль в URL-адресе в защищенный домен htpasswd, будет ли он зашифрован? - PullRequest
4 голосов
/ 24 июня 2019

Я знаю, что вы можете ввести имя пользователя, пароль и домен для защищенного URL-адреса htpasswd, используя следующую схему:

http://$username:$password@$Domain

например:

http://sam:1234@example.com

Но сработает ли это для домена HTTPS?И если так, то имя пользователя и пароль будут зашифрованы в пути?

1 Ответ

8 голосов
/ 26 июня 2019

Есть несколько проблем с HTTP Basic Auth:

  • Пароль отправляется по проводам в кодировке base64 (которую можно легко преобразовать в открытый текст).
  • Пароль отправляется повторно, для каждого запроса. (Увеличенное окно атаки)
  • Пароль кешируется веб-браузером, как минимум для длины окна / процесса. (Может быть повторно использован любым другим запросом к серверу, например, CSRF).
  • Пароль может постоянно храниться в браузере, если пользователь запрашивает. (Аналогично предыдущему пункту, кроме того, он может быть украден другим пользователем на общем компьютере).

Из них использование SSL решает только первое. И даже при этом, SSL защищает только до тех пор, пока веб-сервер - любая внутренняя маршрутизация, регистрация сервера и т. Д. Не увидят незашифрованный пароль.

Итак, как и во всем, важно взглянуть на всю картину.

Защищает ли HTTPS пароль при передаче? Да.

Этого достаточно? Обычно нет. (Я хочу сказать, всегда нет - но это действительно зависит от того, какой у вас сайт и насколько он должен быть защищен.)

Полный ответ на ответ ниже (скопированное слово в слово)

https://security.stackexchange.com/questions/988/is-basic-auth-secure-if-done-over-https

...