Junior
Негизги аутентификация деген эмне (Basic Auth)?
sobes.tech AI
AIден жооп
Базовая аутентификация — это самый простой способ аутентификации клиента HTTP, определённый в стандарте RFC 7617:
Принцип работы:
- Клиент отправляет HTTP-запрос к защищённому ресурсу:
- Сервер возвращает ответ со статусом
401 Unauthorizedи заголовкомWWW-Authenticate: Basic realm="<realm>", где<realm>— это текстовое описание защищаемой области (ресурса): - Браузер или клиентское приложение отображает диалоговое окно для ввода имени пользователя и пароля:
- Клиент кодирует имя пользователя и пароль в строку формата
username:password: - Полученная строка кодируется с помощью Base64:
- Клиент повторяет запрос, добавляя заголовок
Authorization: Basic <base64_encoded_string>, где<base64_encoded_string>— результат кодирования Base64: - Сервер декодирует строку Base64, разделяет имя пользователя и пароль и проверяет учётные данные:
- Если учётные данные верны, сервер отправляет запрошенный ресурс. Иначе, снова возвращает
401 Unauthorized:
Пример заголовка Authorization:
Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l
где YWxhZGRpbjpvcGVuc2VzYW1l — это Base64-кодированная строка aladdin:opensesame:
Особенности:
- Простота: Легко реализовать как на стороне клиента, так и на стороне сервера.
- Небезопасность: Учётные данные передаются, пусть и в Base64-кодированном виде, но не шифрованно. Base64 - это кодирование, а не шифрование. При перехвате трафика данные легко декодируются. Только в связке с HTTPS она обеспечивает минимальный уровень безопасности.
- Состояние: Не сохраняет состояние на сервере между запросами (без stateless). Каждому запросу требуется заголовок
Authorization. - Пользовательский опыт: Браузерное диалоговое окно менее гибкое и пользовательско-дружелюбное по сравнению с кастомными формами аутентификации.
Использование: Чаще всего применяется для защиты API, статических ресурсов или в простых внутренних системах, где безопасность не является критически важной, или обязательно в сочетании с SSL/TLS (HTTPS).