secrets in http headers

secrets versturen - request / command

Om te sturen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
GET /external_socket.php HTTP/1.1
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)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php

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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php

header("HTTP/1.1 405 Method Not Allowed");

?>


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...

« Lees de omschrijving en reacties

Inhoudsopgave

  1. De functies
  2. HTTP Requests! Nieuw?
  3. GET en POST requests
  4. Duidelijkheid en verwerking
  5. secrets in http headers
  6. Afsluiting
  7. request
  8. request
  9. response
  10. response

PHP tutorial opties

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.