secrets in http headers
secrets versturen - request / command
Om te sturen:
Code (php)
1
2
3
4
5
2
3
4
5
GET /external_socket.php HTTP/1.1
Host: www.jouwmoeder.nl
Connection: Close
my_username: rudie
my_password: wachtwoord ofzo
Host: www.jouwmoeder.nl
Connection: Close
my_username: rudie
my_password: wachtwoord ofzo
Dan ontvangt de server (ook jij) een stel http headers. Opgeslagen in $_SERVER.
Maar niet zo makkelijk als letterlijk.
De header "my_username" die we meesturen wordt opgeslagen in _SERVER als HTTP_MY_USERNAME. Met "HTTP_" ervoor en in hoofdletters dus. Maar dat weerhoudt ons niet :)
Je zou dus kunnen controleren of $_SERVER['HTTP_MY_USERNAME'] en $_SERVER['HTTP_MY_PASSWORD'] bestaan. Als ze beiden bestaan ga je ze controleren in je database.
Merk op: absouut geen data verstuurd. Alleen http headers.
En dan? Dan geeft de database resultaat terug. Een hoop PHP onderwater natuurlijk, maar uiteindelijk weten we of je request valid is of niet. Als de headers niet beiden zijn geset weten we voldoende: niet goed!
Hoe we dat laten merken?
Niet zo:
Code (php)
1
2
3
4
5
2
3
4
5
<?php
echo "Het spijt me maar je gebruikersnaam en / of wachtwoord zijn niet correct ontvangen.";
?>
echo "Het spijt me maar je gebruikersnaam en / of wachtwoord zijn niet correct ontvangen.";
?>
Dat is leuk als je een persoon bent, maar niet als je een machine bent. Een machine wil een code of een woord. Een goede manier om dit wel te doen (jawel, zonder data te versturen) is met een header. Whaaat!?
Jep, gewoon een header teruggooien!
En wel zo een:
Ik kies nu voor "Method not allowed", maar je kan ook gaan voor eh... "Forbidden", of "Bad request" of "Not acceptable" of "Unauthorized". Allemaal mogelijkheden :)
Als het inloggen gelukt is sturen we netjes een "OK", maar we kunnen ook gaan voor een "Accepted" of een "Continue". Aan jou de keus, leef je uit!
Een nette lijst HTTP Status Codes: http://en.wikipedia.org/wiki/List_of_HTTP_status_codes
Maar er is meer...
« vorige pagina | volgende pagina »
Inhoudsopgave
- De functies
- HTTP Requests! Nieuw?
- GET en POST requests
- Duidelijkheid en verwerking
- secrets in http headers
- Afsluiting
- request
- request
- response
- response