Authentification et sécurité web : le cours pratique OWASP
Authentification et sécurité web (OWASP) est un cours de niveau avancé de 5 leçons (environ 3 h 24), avec 15 exercices et 15 questions de quiz. Prérequis : HTTP et API REST. Le cours demande un environnement de projet complet, prévu dans une phase ultérieure de la plateforme.
- Back-end
- Avancé
- 5 leçons
- 3 h 24
- 15 exercices
- Environnement de projet complet (phase 2)
Le cours en bref
Ce cours avancé vous apprend à reconnaître et corriger les vulnérabilités les plus critiques des applications web, en vous appuyant sur l'OWASP Top 10 2025. Vous écrirez du code Node.js exécutable : requêtes paramétrées, échappement HTML, hachage scrypt, jetons signés, cookies sécurisés, contrôle d'accès et en-têtes HTTP. Le projet final consiste à auditer et durcir une API d'authentification complète.
Ce que tu sauras faire
- Expliquer les catégories de l'OWASP Top 10 2025 et les relier à du code concret
- Prévenir les injections SQL et de commande avec des requêtes paramétrées et des listes blanches
- Neutraliser le XSS par l'échappement contextuel, la validation d'URL et une CSP
- Stocker et vérifier des mots de passe avec scrypt, un sel et une comparaison en temps constant
- Gérer sessions, jetons signés et cookies sécurisés, et se protéger du CSRF
- Mettre en place un contrôle d'accès côté serveur, des en-têtes de sécurité et une gestion d'erreurs sobre
Programme des 5 leçons
- Situer les grandes familles de risques de l'OWASP Top 10 2025
- Expliquer le mécanisme d'une injection SQL
- Écrire des requêtes paramétrées et des listes blanches pour les identifiants
- 02
XSS : échapper le HTML et poser une CSP
- Distinguer XSS stocké, réfléchi et basé sur le DOM
- Échapper correctement des données insérées dans du HTML
- Limiter l'impact d'un XSS avec une Content-Security-Policy et la validation des URL
- 03
Stocker les mots de passe : hachage avec scrypt
- Expliquer pourquoi on hache (et ne chiffre pas) un mot de passe
- Hacher et vérifier un mot de passe avec crypto.scrypt et un sel aléatoire
- Comparer des secrets en temps constant et freiner la force brute
- 04
Sessions, jetons signés et cookies sécurisés
- Générer des identifiants de session imprévisibles
- Signer et vérifier un jeton avec HMAC (principe des JWT HS256)
- Configurer des cookies HttpOnly, Secure, SameSite et se protéger du CSRF
- 05
Contrôle d'accès, en-têtes de sécurité et gestion des erreurs
- Appliquer un contrôle d'accès côté serveur (rôle et propriété de la ressource)
- Poser les en-têtes HTTP de sécurité essentiels
- Gérer les erreurs sans divulguer d'informations et journaliser les événements de sécurité
Contrôle d'accèsEn-têtes de sécuritéGestion des erreursJournalisation
Projet final
Auditer et durcir une API d'authentification
On vous confie une petite API Express (inscription, connexion, espace « mes commandes ») volontairement vulnérable : requêtes SQL concaténées, mots de passe en SHA-256, jeton dans localStorage, route de commande sans contrôle de propriété, erreurs renvoyant la pile. Identifiez chaque faille, rattachez-la à une catégorie de l'OWASP Top 10 2025, corrigez-la et prouvez la correction par des tests.
Livrables
- Un rapport d'audit listant chaque vulnérabilité, sa catégorie OWASP, son impact et sa correction
- Le code corrigé : requêtes paramétrées, hachage scrypt, cookie de session sécurisé, middleware d'autorisation, en-têtes et gestionnaire d'erreurs
- Une suite de tests node:test prouvant que les attaques décrites échouent (injection, IDOR, jeton falsifié, XSS)
- Un court guide de déploiement sécurisé (variables d'environnement, HTTPS, rotation des secrets)
Critères d'évaluation
- Toutes les vulnérabilités introduites sont identifiées et correctement classées
- Les corrections suivent les bonnes pratiques vues dans le cours et ne cassent pas les fonctionnalités
- Les tests couvrent les cas d'attaque et passent
- Aucun secret ni donnée sensible n'apparaît dans le code, les journaux ou les réponses d'erreur
- Le rapport est clair et compréhensible par une personne non spécialiste
Questions fréquentes
Quel niveau faut-il pour suivre ce cours de sécurité web ?
Il faut savoir écrire une API HTTP simple (cours B1) et lire du JavaScript. Le cours est de niveau avancé mais chaque vulnérabilité est expliquée à partir d'un exemple concret.
Le cours couvre-t-il l'OWASP Top 10 2025 ?
Oui. Il présente les dix catégories de l'édition 2025 et approfondit celles qui touchent le plus le code d'un développeur : contrôle d'accès, configuration, cryptographie, injection, authentification, journalisation et gestion des erreurs.
Faut-il installer des outils pour faire les exercices ?
Non. Les exercices s'exécutent dans la plateforme avec Node.js et ses modules natifs, comme node:crypto. Les exemples montrent aussi le code Express et les bibliothèques utilisées en production.
Quelle méthode utiliser pour stocker des mots de passe ?
Une fonction de hachage lente et salée comme Argon2id, scrypt ou bcrypt, avec une comparaison en temps constant. Le cours vous fait implémenter la version scrypt disponible dans Node.js.
Ce cours, raconté pour ton métier
Dis ce que tu veux savoir faire : « Authentification et sécurité web (OWASP) » prend sa place dans ton parcours, avec des exemples de ton secteur. Les notions restent celles du cours.