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 обеспечивает безопасную передачу, шифруя все между клиентом и сервером.
Смотрите также
- Официальная документация cURL: https://curl.haxx.se/docs/manpage.html
- HTTP Authentication: Basic and Digest Access Authentication (IETF RFC 7617): https://tools.ietf.org/html/rfc7617
- Введение в OAuth: https://oauth.net/2/introduction/