Exercice : "Sécurisation d'une API de Blog"
Conditions d’achèvement
Exercice : "Sécurisation d'une API de Blog"
Objectif : Créer une API de blog simple avec Express.js et sécuriser l'application en utilisant le package Helmet pour protéger contre certaines vulnérabilités Web courantes.
Partie 1: Configuration de Base de l'API
- Création de l'API :
- Installez Express.js et initialisez un nouveau projet Node.js.
- Créez une application Express.js qui écoute sur le port 3000.
Partie 2: Ajout de Routes de Base
- Routes de l'API :
- Ajoutez des routes pour les opérations CRUD (Create, Read, Update, Delete) sur les articles de blog.
- Utilisez des données fictives pour simuler la base de données.
Partie 3: Sécurisation de l'API
-
Installation de Helmet :
- Installez le package Helmet et intégrez-le dans votre application Express.js.
-
Configuration de Helmet :
- Configurez Helmet pour qu'il utilise ses protections par défaut.
Partie 4: Test de Sécurité
- Vérification des En-têtes HTTP :
- Utilisez un outil comme Postman ou un navigateur pour vérifier que les en-têtes de sécurité sont correctement définis.
Exemple de Code pour la Partie 1 et 2
const express = require('express');
const app = express();
app.use(express.json()); // Pour parser les requêtes JSON
// Partie 2: Routes de l'API
app.get('/posts', (req, res) => {
res.json([{ id: 1, title: 'Hello World', content: 'Welcome to my blog!' }]);
});
app.post('/posts', (req, res) => {
// Simuler la création d'un article
res.status(201).send('Post created');
});
app.put('/posts/:id', (req, res) => {
// Simuler la mise à jour d'un article
res.send('Post updated');
});
app.delete('/posts/:id', (req, res) => {
// Simuler la suppression d'un article
res.send('Post deleted');
});
// Partie 1: Écoute sur le port 3000
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
Instructions pour l'étudiant :
- Complétez l'installation et la configuration de Helmet dans votre application.
- Assurez-vous que toutes les routes sont fonctionnelles et retournent les données ou les confirmations attendues.
- Testez votre API avec et sans Helmet pour observer les différences dans les en-têtes HTTP de réponse.
- Documentez les en-têtes de sécurité que Helmet a ajoutés ou modifiés.
Cet exercice aidera les étudiants à comprendre comment les packages de sécurité comme Helmet peuvent être utilisés pour améliorer la sécurité des applications Express.js.
Modifié le: vendredi 3 novembre 2023, 09:43