Gérer requêtes HTTP en PHP

Statut
N'est pas ouverte pour d'autres réponses.

Switch.

Codeur Web à ton service | > Python
Premium
Inscription
13 Janvier 2013
Messages
2 956
Réactions
968
Points
6 491
RGCoins
25
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
Prérequis :
  • Un serveur local (wamp) ou en ligne qui utilise php5
  • Mozilla Firefox avec l'add ons "Live HTTP headers"
  • Connaissance minimum php
Déroulement :
  • Mise en place
  • Présentation protocole HTTP
  • Récupération header en php
  • Envoie de header depuis le serveur
  • Mise en garde

Text-line.png

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.

Text-line.png
2.0 Présentation du protocole HTTP

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 :
929029762c0910dc949ec57dd85d1bb1.png
  • 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 " "
  • 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.

d31f210a2fc6f216483c27b2d7186358.png
  • 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

Text-line.png

3.0 Récupération du header

Je vous présenta la fonction php nommé: apache_request_headers()
voilà sa , elle renvoie un tableau associatif de cette sorte: [en-têtes][valeur]

Voilà le code pour afficher son contenu :
af720e805da847961b600106121859b3.png

Ce qui donne
0e0bd9cffb9fd23beb29ffd438d6bf63.png

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

fe8eeee37a9bc24ed8c1d77ec4222b7f.png


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 :
7cd0b09a188cdfc24c3e7e65d5770882.png

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


6ec907dd1238ff266df0cf19fc63d74a.png


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.

Text-line.png
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 , elle ne renvoie rien, les changement sont uniquement perceptibles avec l'add-ons.

Sa syntaxe : header("[en-tête] : [valeur]");
92180471d5ed2c2de8eedf910f557c54.png
  • 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 :

e585013fd50684541be190431dd91bd1.png


Text-line.png

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.

Hacked-animated-hacked_gif.gif


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

7cdfc35dd3cb8adfd8005b7693e1e8ff.png


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

Text-line.png
 
Personne n'est intéressé par mon tuto :mmh:
 
si j'ai lu mais je comprend rien en php c'est aps mon domaine :p
 
Statut
N'est pas ouverte pour d'autres réponses.
Retour
Haut