Назад | Перейти на главную страницу

Не совсем уверен, как аутентификация .htaccess / .htpasswd сохраняет пароли

Это правильно. У меня есть файл .htaccess в папке с именем admin внутри моего веб-каталога. Он содержит это:

AuthType Basic
AuthName "Password Protected Area"
AuthUserFile /storage/ssd2/048/1839048/.htpasswd
Require valid-user

У меня также есть файл .htpasswd над моим веб-каталогом, поэтому посетители его не видят:

test:dGRkPurkuWmW2

Все работает нормально, но я не могу понять, как этот метод аутентификации может сохранять пароли. Когда я впервые получил доступ к защищенному каталогу, он запросил у меня пользователя и пароль, но теперь, когда я обновляю страницу, он меня больше не спрашивает. Я очистил файлы cookie в своем браузере и перезапустил его, но пароль все еще сохранен. Кто-нибудь знает, как это работает?

Очистка файлов cookie не помогла, потому что пароль сохраняется в браузере, но его нет в печенье определено в Механизм управления состоянием HTTP (RFC 6265), например, идентификаторы сеанса:

== Сервер -> Пользовательский агент ==

   Set-Cookie: SID=31d4d96e407aad42; Path=/; Secure; HttpOnly
   Set-Cookie: lang=en-US; Path=/; Domain=example.com

== Пользовательский агент -> Сервер ==

   Cookie: SID=31d4d96e407aad42; lang=en-US

Этот вид SID используется более сложными механизмами аутентификации, которые проверяют пароль только один раз, а затем доверяют аутентификации этого пользователя на основании только наличия файла cookie.

Вместо, AuthType Basic использует Authorization = credentials заголовок из HTTP-аутентификация (RFC 7235, 4.2). Это очень простой механизм аутентификации, который отправляет учетные данные по каждому HTTP-запросу в формате: credentials = auth-scheme [ 1*SP ( token68 / #auth-param ) ].

Браузер продолжает отправлять его, пока не получит новый 401 Unauthorized код состояния в HTTP-ответе:

Если запрос аутентифицирован и указана область, предполагается, что одни и те же учетные данные действительны для всех других запросов в этой области (при условии, что сама схема аутентификации не требует иного, например учетные данные, которые меняются в зависимости от значения запроса или использования синхронизированных данных). часы).

Один из способов заставить это сделать это без активной настройки чего-либо для отправки 401 заключается в том, чтобы заставить пользователя использовать URL-адрес с другим именем пользователя и паролем в нем, т.е. http://forcelog:out@example.com/ (ссылка или JS).

Браузеры обычно очищают базовую информацию аутентификации при перезапуске. Дополнительно (не полный список):

  • Chrome и Chromium очищают его при перезапуске с chrome://restart в адресной строке.
  • Firefox очищает его, когда вы очищаете историю: Активные входы.
  • Internet Explorer позволяет элементу ActiveX очищать его.