Python:
Wysyłanie zapytania http z podstawową autoryzacją
Jak to zrobić:
Wykorzystamy bibliotekę requests
do wysłania żądania HTTP. Upewnij się, że instalacja tej biblioteki jest już wykonana (pip install requests
). Oto przykład:
import requests
from requests.auth import HTTPBasicAuth
# Twój URL zasobu
url = 'http://twojserwer.com/dane'
# Twoje dane do logowania
nazwa_uzytkownika = 'uzytkownik123'
haslo = 'bezpieczneHaslo'
# Wysyłamy żądanie z autentykacją podstawową
odpowiedz = requests.get(url, auth=HTTPBasicAuth(nazwa_uzytkownika, haslo))
# Sprawdzamy odpowiedź
if odpowiedz.status_code == 200:
print('Sukces:', odpowiedz.text)
elif odpowiedz.status_code == 401:
print('Nieudane logowanie. Sprawdź dane do autentykacji.')
else:
print('Błąd:', odpowiedz.status_code)
Output, gdy logowanie jest udane:
Sukces: <dane zasobu>
Output, gdy logowanie jest nieudane:
Nieudane logowanie. Sprawdź dane do autentykacji.
Deep Dive:
Podstawowa autentykacja HTTP jest jedną z prostszych form autentykacji, wprowadzoną w specyfikacji HTTP 1.0. Polega na wysłaniu zakodowanego w Base64 ciągu zawierającego nazwę użytkownika i hasło. To łatwe w implementacji, ale mało bezpieczne – szczególnie bez szyfrowania transportu jakim jest HTTPS.
Alternatywy to m.in. Digest Authentication, OAuth czy tokeny JWT. W przypadku wyższego poziomu bezpieczeństwa, zalecane jest użycie bardziej zaawansowanych metod.
Warto pamiętać, że niektóre biblioteki HTTP w Pythonie, jak httpx
, ułatwiają pracę z autentykacją, oferując wbudowane mechanizmy.
Zobacz także:
- Dokumentacja biblioteki
requests
: https://docs.python-requests.org/en/latest/ - Bezpieczne praktyki w autentykacji: https://owasp.org/www-project-cheat-sheets/cheatsheets/Authentication_Cheat_Sheet.html
- Specyfikacja HTTP Basic Authentication: https://tools.ietf.org/html/rfc7617