Fondamentaux

Fondamentaux du web

Le web est au cœur de la plupart des services numériques. Comprendre son architecture aide à mieux analyser les vulnérabilités, les flux et les mécanismes de défense.


Architecture générale

Une application web repose souvent sur plusieurs éléments.

Utilisateur

Navigateur web

HTTP / HTTPS

Serveur web

Application back-end

Base de données / services externes

Chaque étape est une frontière de confiance. Le navigateur appartient à l'utilisateur, le serveur appartient à l'organisation, et les API ou services externes peuvent appartenir à d'autres systèmes.


Le navigateur envoie des requêtes, reçoit les réponses et affiche le contenu à l'utilisateur.

Exemples :

  • Firefox
  • Chrome
  • Edge
  • Safari

Les outils de développement intégrés au navigateur sont essentiels pour inspecter HTML, CSS, JavaScript, requêtes réseau, cookies et formulaires.

Réflexe sécurité

Tout ce qui arrive du navigateur doit être considéré comme contrôlable par l'utilisateur : champs de formulaire, headers, cookies, paramètres d'URL et données JavaScript.


Serveur web

Le serveur web héberge les ressources d'un site ou d'une application et répond aux requêtes.

Exemples :

  • Nginx
  • Apache
  • IIS

Il peut servir des fichiers statiques, transmettre les requêtes à une application, appliquer TLS, journaliser les accès et filtrer certaines requêtes.


Front-end et back-end

PartieRôle
Front-endPartie visible par l'utilisateur : HTML, CSS, JavaScript
Back-endLogique métier, accès aux données, API, authentification

Technologies back-end courantes :

  • Python avec Django, Flask ou FastAPI
  • PHP avec Laravel
  • JavaScript avec Node.js
  • Ruby on Rails

Le front-end améliore l'expérience utilisateur, mais ne doit pas être le seul endroit où les règles de sécurité sont appliquées. Le back-end doit vérifier les droits, valider les entrées et contrôler les actions sensibles.


Base de données et API

Les applications stockent souvent comptes, commandes, messages ou paramètres dans une base de données.

Une API permet à plusieurs applications de communiquer.

Application web


       API


Service externe

Une API reçoit souvent des données structurées en JSON. Elle doit vérifier l'identité, les droits, le format des données, les limites de volume et les erreurs retournées.

Exemple de réponse JSON :

{
  "id": 42,
  "name": "Alice",
  "role": "user"
}

Sessions et cookies

HTTP est sans état : chaque requête est indépendante. Les sessions permettent de reconnaître un utilisateur connecté entre plusieurs requêtes.

Connexion réussie

Cookie de session

Requêtes suivantes authentifiées

Un cookie de session sensible doit être protégé avec des attributs adaptés comme HttpOnly, Secure et SameSite.


Surfaces d'attaque courantes

Dans une application web, les zones à regarder en priorité sont souvent :

  • formulaires
  • paramètres d'URL
  • cookies
  • endpoints API
  • uploads de fichiers
  • pages d'administration
  • dépendances logicielles
  • messages d'erreur

Ces éléments ne sont pas automatiquement vulnérables, mais ils représentent des points d'entrée ou d'observation.


Lecture d'un flux web

Pour comprendre ce que fait une page, ouvre les outils de développement du navigateur et regarde :

  • les requêtes réseau
  • les codes HTTP
  • les cookies envoyés
  • les données postées
  • les redirections
  • les ressources chargées
  • les erreurs JavaScript

Pourquoi c'est important

Comprendre l'architecture web permet d'identifier les composants exposés, d'analyser les communications et de mieux comprendre les vulnérabilités web.

Précédent
Reverse proxy et load balancer