You must be registered for see images attach
// Présentation globale du tutoriel //A la fin du tutoriel vous serrez capable de :
- Envoyer des requêtes HTTP en PHP
- Exécuter un morceau de code en fonction de la requête reçue
- Un serveur local (wamp) ou en ligne qui utilise php5
- Mozilla Firefox avec l'add ons "Live HTTP headers"
- Connaissance minimum php
- Mise en place
- Présentation protocole HTTP
- Récupération header en php
- Envoie de header depuis le serveur
- Mise en garde

1.0 Mise en place
On va installer l'add ons Live HTTP headers disponible ici :
Après créer un fichier nommé http.php où l'on créera notre code php, ceci fait on peut passer à la seconde partie du tutoriel.
2.0 Présentation du protocole HTTP
Vous devez être inscrit pour voir les liens ! Inscrivez-vous ou connectez-vous ici.
Après créer un fichier nommé http.php où l'on créera notre code php, ceci fait on peut passer à la seconde partie du tutoriel.

Le protocole HTTP est un protocole d'application (couche 7 du modèle OSI), il permet de faire une "liaison" entre le client, votre navigateur, et le serveur, ici Apache.
Voici une requête HTTP lambda récupéré grâce à l'add ons :
Voici une requête HTTP lambda récupéré grâce à l'add ons :

- GET est une méthode du protocole, il y en a 9, mais seulement quelques unes nous intéressent, celle ci permet de récupérer une page web: " /epreuves/hacking/verifhk7.php"
- Host précise le site web concerné par la requête "Vous devez être inscrit pour voir les liens ! Inscrivez-vous ou connectez-vous ici."
- User-Agent indique le logiciel qui a envoyé la requête Mozilla Firefox dans ce cas
- Referer permet de savoir de quel page nous venons
Je ne parle pas des autres en-têtes elles ne nous seront pas utiles. Ici c'est une requête client, nous allons maintenant voir la réponse du serveur.

- HTTP/1.1 200 OK, en premier nous avons la version du protocole -> 1.1. Puis le code renvoyer par le serveur 200 signifie que la requête a été traité avec succès. Vous en connaissez surement, 404 Page Not Found ou 503 Service Unavaliable
- Date je pense que tout le monde à compris
- Server indique le modèle du serveur
Pareil il n'y a pas d'utilité à toute les expliquer.
Ici je ne parle que du header car en réalité en plus de la ligne de requête et des en-têtes il y a aussi le corps du message qui contient des informations supplémentaire comme la requête POST ou le corps en HTML

3.0 Récupération du header
Je vous présenta la fonction php nommé: apache_request_headers()
voilà sa
Voilà le code pour afficher son contenu :
Ce qui donne
Maintenant on va faire en sorte de personnalisé notre requête HTTP, pour cela allons sur Live HTTP headers et cliquons sur Replay
On va éditer tout simplement la ligne n°1 ce qui va donner : Host : RealityGaming
On clique sur Replay et on actualise notre page web voici ce que ça donne :
Host est bien RealityGaming on va pouvoir exécuter du code php en fonction des requêtes un petit exemple :
Ce code vous l'avez compris regarde si l'en-têtes Host est bien RealityGaming et exécute un bout de code si c'est bon. Je pense qu'avec un peu d'imagination on peut faire pas mal de chose en modifiant les requêtes HTTP à l'aide de l'add ons.
voilà sa
Vous devez être inscrit pour voir les liens ! Inscrivez-vous ou connectez-vous ici.
, elle renvoie un tableau associatif de cette sorte: [en-têtes][valeur]Voilà le code pour afficher son contenu :

Ce qui donne

Maintenant on va faire en sorte de personnalisé notre requête HTTP, pour cela allons sur Live HTTP headers et cliquons sur Replay

On va éditer tout simplement la ligne n°1 ce qui va donner : Host : RealityGaming
On clique sur Replay et on actualise notre page web voici ce que ça donne :

Host est bien RealityGaming on va pouvoir exécuter du code php en fonction des requêtes un petit exemple :

Ce code vous l'avez compris regarde si l'en-têtes Host est bien RealityGaming et exécute un bout de code si c'est bon. Je pense qu'avec un peu d'imagination on peut faire pas mal de chose en modifiant les requêtes HTTP à l'aide de l'add ons.

4.0 Envoie de header depuis le serveur
On peux aussi modifier les en-têtes envoyer dans la réponse HTTP du serveur, pour cela je vous présente la fonction: header()
Voici sa
Sa syntaxe : header("[en-tête] : [valeur]");
Voici sa
Vous devez être inscrit pour voir les liens ! Inscrivez-vous ou connectez-vous ici.
, elle ne renvoie rien, les changement sont uniquement perceptibles avec l'add-ons.Sa syntaxe : header("[en-tête] : [valeur]");

- Je change le code réponse par 302 au lieu de 200
- Je termine la connexion avec Close
- Je dis que le contenant est du html ce qui est vrai
- Et ensuite je redirige l'utilisateur sur une autre site avec Location
Résultat :


5.0 Mise en garde
Comme vous le voyez il y a plein de chose à faire avec les requêtes HTTP mais vous l'avez très bien vu on peut modifier ses propres requête alors je vous déconseille de sécuriser des pages avec ces fonctions.
Par exemple certain pourrait être tenté de faire quelque chose de ce genre en php par exemple.
Dite vous simplement que si vous vous pouvez modifier votre requête HTTP n'importe qui peut le faire, alors tout ce qui est vérification par requête HTTP oubliez tout de suite, ça serait suicidaire

Par exemple certain pourrait être tenté de faire quelque chose de ce genre en php par exemple.

Dite vous simplement que si vous vous pouvez modifier votre requête HTTP n'importe qui peut le faire, alors tout ce qui est vérification par requête HTTP oubliez tout de suite, ça serait suicidaire
