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.
Navigateur
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
| Partie | Rôle |
|---|---|
| Front-end | Partie visible par l'utilisateur : HTML, CSS, JavaScript |
| Back-end | Logique 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.
