Test de sécurité - Principes de base du protocole HTTP

Comprendre le protocole est très important pour bien comprendre les tests de sécurité. Vous pourrez apprécier l'importance du protocole lorsque nous intercepterons les données de paquets entre le serveur Web et le client.

Protocole HTTP

Le protocole HTTP (Hypertext Transfer Protocol) est un protocole de niveau application pour les systèmes d'information distribués, collaboratifs et hypermédia. C'est la base de la communication de données pour le World Wide Web depuis 1990. HTTP est un protocole générique et sans état qui peut être utilisé à d'autres fins également en utilisant l'extension de ses méthodes de requête, codes d'erreur et en-têtes.

Fondamentalement, HTTP est un protocole de communication basé sur TCP / IP, utilisé pour fournir des données telles que des fichiers HTML, des fichiers image, des résultats de requêtes, etc. sur le Web. Il fournit un moyen standardisé pour les ordinateurs de communiquer entre eux. La spécification HTTP spécifie comment les données demandées par les clients sont envoyées au serveur et comment les serveurs répondent à ces demandes.

Caractéristiques de base

Les trois fonctionnalités de base suivantes font de HTTP un protocole simple mais puissant -

  • HTTP is connectionless- Le client HTTP, c'est-à-dire le navigateur lance une requête HTTP. Après avoir fait une demande, le client se déconnecte du serveur et attend une réponse. Le serveur traite la demande et rétablit la connexion avec le client pour renvoyer la réponse.

  • HTTP is media independent- Tout type de données peut être envoyé par HTTP tant que le client et le serveur savent comment gérer le contenu des données. Cela est nécessaire pour le client et le serveur pour spécifier le type de contenu à l'aide du type MIME approprié.

  • HTTP is stateless- HTTP est un sans connexion et c'est un résultat direct que HTTP est un protocole sans état. Le serveur et le client ne se connaissent que lors d'une requête en cours. Ensuite, les deux s'oublient. En raison de cette nature du protocole, ni le client ni le navigateur ne peuvent conserver les informations entre les différentes demandes sur les pages Web.

HTTP / 1.0 utilise une nouvelle connexion pour chaque échange de demande / réponse tandis que la connexion HTTP / 1.1 peut être utilisée pour un ou plusieurs échanges de demande / réponse.

Architecture

Le diagramme suivant montre une architecture très basique d'une application Web et décrit où réside HTTP -

Le protocole HTTP est un protocole de demande / réponse basé sur l'architecture client / serveur où le navigateur Web, les robots et les moteurs de recherche, etc. agissent comme des clients HTTP et le serveur Web agit comme un serveur.

  • Client - Le client HTTP envoie une requête au serveur sous la forme d'une méthode de requête, d'un URI et d'une version de protocole, suivie d'un message de type MIME contenant des modificateurs de requête, des informations sur le client et le contenu du corps possible via une connexion TCP / IP.

  • Server - Le serveur HTTP répond avec une ligne d'état, comprenant la version du protocole du message et un code de réussite ou d'erreur, suivi d'un message de type MIME contenant des informations sur le serveur, des méta-informations d'entité et un éventuel contenu du corps d'entité.

HTTP - Inconvénients

  • HTTP n'est pas un protocole complètement sécurisé.

  • HTTP utilise le port 80 comme port par défaut pour la communication.

  • HTTP fonctionne au niveau de la couche d'application. Il doit créer plusieurs connexions pour le transfert de données, ce qui augmente les frais d'administration.

  • Aucun cryptage / certificat numérique n'est requis pour utiliser HTTP.

Détails du protocole HTTP

Afin de comprendre en profondeur le protocole HTTP, cliquez sur chacun des liens ci-dessous.