oujood.com

Débit Limitation (Rate Limiting) avec ExpressJS - Guide pour Débutants

Apprenez la limitation de débit avec ExpressJS dans ce tutoriel simple pour débutants. Protégez votre serveur des abus
Dans ce tutoriel, nous allons apprendre à limiter le débit (rate limiting) dans une application ExpressJS, c’est-à-dire contrôler le nombre de requêtes qu’un utilisateur peut faire dans un certain temps pour éviter les abus ou les attaques. Ce guide est conçu pour les débutants : nous irons doucement, étape par étape, avec des explications très simples et un exemple que vous pourrez tester. Nous utiliserons express-rate-limit pour simplifier cette tâche.

chercher |

Introduction : Qu’est-ce que la Limitation de Débit ?

La limitation de débit, c’est comme un portier qui dit "Pas trop vite !" aux visiteurs. Si quelqu’un envoie trop de requêtes (par exemple, pour surcharger votre serveur ou essayer de deviner un mot de passe), on peut le bloquer temporairement. Avec ExpressJS, express-rate-limit agit comme ce portier, en fixant une limite claire et automatique.

Étape 1 : Préparer Votre Environnement

Avant de coder, préparons tout ce qu’il faut. Si vous avez suivi les tutoriels précédents, vous avez déjà Node.js et ExpressJS. Voici les étapes :

  • Vérifiez Node.js : Ouvrez un terminal et tapez node -v. Si une version apparaît (ex. : v16.13.0), c’est bon. Sinon, téléchargez Node.js sur nodejs.org.
  • Créez un dossier projet : Faites un dossier nommé "debit-limitation" sur votre ordinateur. Ouvrez-le dans un éditeur comme Visual Studio Code.
  • Initialisez le projet : Dans le terminal, allez dans ce dossier avec cd chemin/vers/debit-limitation, puis tapez npm init -y. Cela crée un fichier package.json.
  • Installez ExpressJS et express-rate-limit : Tapez npm install express express-rate-limit. express-rate-limit gère la limitation pour nous.

Étape 2 : Créer une Application avec Limitation de Débit

Construisons une application simple avec une route limitée à quelques requêtes par minute.

Exemple de Code : Application avec Rate Limiting

Créez un fichier nommé app.js dans votre dossier "debit-limitation" et ajoutez ce code :

📋 Copier le code

var express = require('express');
var rateLimit = require('express-rate-limit');
var app = express();

// Configurer la limitation de débit
var limiter = rateLimit({
    windowMs: 60 * 1000, // 1 minute
    max: 5, // 5 requêtes maximum par IP
    message: 'Trop de requêtes ! Réessayez dans une minute.'
});

// Appliquer la limitation à toutes les routes
app.use(limiter);

// Route principale
app.get('/', function(req, res) {
    res.send('Bonjour ! Cette route est limitée à 5 visites par minute.');
});

// Route de test
app.get('/test', function(req, res) {
    res.send('Page de test limitée aussi !');
});

app.listen(3000, function() {
    console.log('Serveur démarré sur http://localhost:3000');
});
    

Explication Détaillée du Code

Voici chaque partie expliquée très simplement pour les débutants :

  • var rateLimit = require('express-rate-limit'); : On importe le module pour limiter les requêtes.
  • var limiter = rateLimit({...}); : On configure la limitation :
    • windowMs: 60 * 1000 : Fenêtre de temps de 1 minute (en millisecondes).
    • max: 5 : Maximum 5 requêtes par IP dans cette fenêtre.
    • message: ... : Message affiché quand la limite est dépassée.
  • app.use(limiter); : On applique la limitation à toutes les routes.
  • app.get('/', ...); : Route principale avec un message simple.
  • app.get('/test', ...); : Une autre route pour tester la limitation.

Étape 3 : Tester l’Application

Démarrez le serveur avec node app.js dans le terminal, puis testez :

  • http://localhost:3000 : Vous verrez "Bonjour ! Cette route est limitée à 5 visites par minute.".
  • Rafraîchissez la page 5 fois rapidement : Les 5 premières fois, ça fonctionne.
  • À la 6e fois (dans la même minute) : Vous verrez "Trop de requêtes ! Réessayez dans une minute.".
  • Essayez http://localhost:3000/test : Même limite, car toutes les routes sont protégées.

Attendez une minute, puis réessayez : la limite se réinitialise, et vous pouvez visiter à nouveau.

Conclusion

Félicitations ! Vous savez maintenant limiter le débit avec ExpressJS et express-rate-limit. Votre application est protégée contre les abus ou les attaques par surcharge. Pour aller plus loin, explorez notre prochain tutoriel sur Ralentissement des Réponses avec ExpressJS ou consultez la documentation express-rate-limit.



Voir aussi nos tutoriel :

La boucle for...in javascript

La boucle for...in js : La boucle for... in peut exécuter des commandes à plusieurs reprises. La boucle for... in est couramment utilisée pour la manipulation d'objet.

cryptocurrency Litecoin LTC Litecoin LTC

Tout savoir sur le Litecoin

fonction quotemeta, quotemeta

Protége les méta caractères