Rate Limiting

NestJS 🟡 Mid

Définition

Mécanisme qui limite le nombre de requêtes par client dans une fenêtre de temps. Implémentable via @nestjs/throttler pour protéger contre les abus.

Analogie

Comme un portillon de métro : il ne laisse passer qu'un certain nombre de personnes par minute.

Exemple de code

@Module({
  imports: [ThrottlerModule.forRoot([{
    ttl: 60000,
    limit: 10,
  }])],
})
export class AppModule {}

@UseGuards(ThrottlerGuard)
@Controller('auth')
export class AuthController {}

Cas d'usage

Protéger les endpoints de login ou d'API publique contre le brute force et les abus.

Anti-pattern

Ne pas limiter les endpoints sensibles comme /login, permettant les attaques par force brute.
#security#interview

En entretien

  1. Comment tu protégerais un endpoint de login contre le brute force ?

    Avec du rate limiting via @nestjs/throttler, en configurant un ttl et un limit dans ThrottlerModule, puis en appliquant ThrottlerGuard sur le controller - comme un portillon de métro qui ne laisse passer qu'un certain nombre de personnes par minute. Ça limite le nombre de requêtes par client dans une fenêtre de temps donnée.

  2. Quel est le risque si on ne limite pas les endpoints sensibles comme /login ?

    C'est l'anti-pattern identifié : ne pas limiter /login permet les attaques par force brute sur les mots de passe. Le rate limiting protège justement les endpoints de login ou d'API publique contre les abus.

Fiche mise à jour le 2026-09-27

← → au clavier pour passer d'une fiche à l'autre