Есть несколько проблем с HTTP Basic Auth:
- Пароль отправляется по проводам в кодировке base64 (которую можно легко преобразовать в открытый текст).
- Пароль отправляется повторно, для каждого запроса. (Увеличенное окно атаки)
- Пароль кешируется веб-браузером, как минимум для длины окна / процесса. (Может быть повторно использован любым другим запросом к серверу, например, CSRF).
- Пароль может постоянно храниться в браузере, если пользователь запрашивает. (Аналогично предыдущему пункту, кроме того, он может быть украден другим пользователем на общем компьютере).
Из них использование SSL решает только первое. И даже при этом, SSL защищает только до тех пор, пока веб-сервер - любая внутренняя маршрутизация, регистрация сервера и т. Д. Не увидят незашифрованный пароль.
Итак, как и во всем, важно взглянуть на всю картину.
Защищает ли HTTPS пароль при передаче? Да.
Этого достаточно? Обычно нет. (Я хочу сказать, всегда нет - но это действительно зависит от того, какой у вас сайт и насколько он должен быть защищен.)
Полный ответ на ответ ниже (скопированное слово в слово)
https://security.stackexchange.com/questions/988/is-basic-auth-secure-if-done-over-https