Een HTTP-verzoek verzenden met basisauthenticatie

Bash:
Een HTTP-verzoek verzenden met basisauthenticatie

Hoe te:

Laten we onze handen vuilmaken met wat code. We zullen curl gebruiken, een gangbare opdrachtregeltool. Vervang gebruikersnaam:wachtwoord door je inloggegevens en http://voorbeeld.com/bron door je doel-URL.

curl -u gebruikersnaam:wachtwoord http://voorbeeld.com/bron

Of codeer je inloggegevens van tevoren in base64 en gebruik ze op deze manier:

# Inloggegevens coderen
inloggegevens=$(echo -n gebruikersnaam:wachtwoord | base64)

# Het verzoek verzenden
curl -H "Authorization: Basic $inloggegevens" http://voorbeeld.com/bron

Voorbeelduitvoer voor een succesvol verzoek kan er als volgt uitzien:

{
  "data": "Enige beperkte info",
  "message": "Toegang verleend"
}

Diepere Duik

Historisch gezien maakt basisauthenticatie al sinds de vroege dagen deel uit van HTTP, maar het is niet zonder gebreken - voornamelijk de kwetsbaarheid als het niet wordt gebruikt over een veilig kanaal zoals HTTPS.

Alternatieven zijn onder andere OAuth, wat veiliger is en een fijnmazigere controle biedt over wat er wordt benaderd. Een andere optie is de Digest-authenticatie, die gehashte inloggegevens verzendt in plaats van platte tekst.

Wat betreft de werking, wanneer je basisauthenticatie inloggegevens verzendt, worden deze in de HTTP-header opgenomen gecodeerd in Base64. Het is geen encryptie, dus als je geen HTTPS gebruikt, kan iedereen die het verzoek onderschept het gemakkelijk decoderen. Het gebruik van HTTPS beveiligt de verzending en versleutelt alles tussen de client en de server.

Zie Ook