Отправка HTTP-запроса с базовой аутентификацией

Bash:
Отправка HTTP-запроса с базовой аутентификацией

Как это сделать:

Давайте погрузимся в код. Мы будем использовать curl, общеизвестный инструмент командной строки. Замените username:password на ваши учетные данные и http://example.com/resource на ваш целевой URL.

curl -u username:password http://example.com/resource

Или заранее закодируйте свои учетные данные в base64 и используйте их так:

# Кодирование учетных данных
credentials=$(echo -n username:password | base64)

# Отправка запроса
curl -H "Authorization: Basic $credentials" http://example.com/resource

Пример вывода для успешного запроса может выглядеть вот так:

{
  "data": "Некоторая ограниченная информация",
  "message": "Доступ предоставлен"
}

Подробнее

Исторически базовая аутентификация была частью HTTP с ранних дней, но она не без недостатков – в основном из-за уязвимости, если не использовать ее по защищенному каналу, такому как HTTPS.

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

Что касается механики, когда вы отправляете учетные данные базовой аутентификации, они включаются в HTTP-заголовок, закодированный в Base64. Это не шифрование, поэтому если вы не используете HTTPS, любой, кто перехватит запрос, может легко его декодировать. Использование HTTPS обеспечивает безопасную передачу, шифруя все между клиентом и сервером.

Смотрите также