AI Powered SaaS: Stripe + Auth + Billing + Deploy · Leçon

Limitation du débit et protection contre la force brute

Protégez l’authentification et les API de votre SaaS contre les abus grâce à la limitation du débit, au verrouillage des comptes et au ralentissement exponentiel avec un magasin rapide comme Redis.

Leçon 4 sur 413 étapes

Limitation du débit et protection contre la force brute est une leçon AI Powered SaaS: Stripe + Auth + Billing + Deploy gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage AI Powered SaaS: Stripe + Auth + Billing + Deploy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours AI Powered SaaS: Stripe + Auth + Billing + Deploy comprend 4 leçons au total.

Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.

Why Rate Limit?

Without limits, attackers can hammer your login endpoint to guess passwords, scrape data, or run up costs on metered APIs. Rate limiting caps how many requests a client can make in a window.

Identifying the Client

Limits are keyed on something that identifies the caller: an IP address, a user ID, or an API key. Choose the key based on what you are protecting.

const key = 'login:' + (userId ?? clientIp);

The Fixed Window Algorithm

The simplest method counts requests per fixed time window. If the count exceeds the limit, reject until the window resets.

// allow 5 requests per 60 seconds
if (count > 5) return reject();

Counting in Redis

Redis is ideal: INCR bumps a counter atomically, and a TTL auto-expires the window. The first request sets the expiry.

const n = await redis.incr(key);
if (n === 1) await redis.expire(key, 60);
if (n > 5) throw new Error('Too many requests');

Sliding Window & Token Bucket

Fixed windows allow bursts at the edges. Sliding window smooths this, and token bucket permits short bursts while enforcing an average rate. Libraries like Upstash Ratelimit implement these for you.

import { Ratelimit } from '@upstash/ratelimit';
const rl = new Ratelimit({ redis, limiter: Ratelimit.slidingWindow(5, '60 s') });

Applying in Middleware

Centralize limiting in Next.js middleware so it runs before every matched request.

export async function middleware(req) {
  const { success } = await rl.limit(req.ip ?? 'anon');
  if (!success) return new Response('Rate limited', { status: 429 });
}

Returning 429 Properly

When limited, respond with status 429 and a Retry-After header telling clients when to try again.

return new Response('Too many requests', {
  status: 429,
  headers: { 'Retry-After': '60' }
});

Account Lockout

For login specifically, track failed attempts per account. After several failures, temporarily lock the account to stop targeted brute force.

const fails = await redis.incr('fail:' + email);
if (fails >= 5) await redis.expire('lock:' + email, 900);

Exponential Backoff

Increase the delay after each failure: 1s, 2s, 4s, 8s. This frustrates automated guessing while barely affecting legitimate users.

const delay = Math.min(2 ** fails, 60) * 1000;

Avoiding False Positives

Be careful not to punish real users:

  • Shared office IPs share a limit — prefer per-user keys when authenticated
  • Reset counters on success
  • Set generous limits for normal usage

Best Practices

Protect endpoints well:

  • Key limits on IP, user, or API key
  • Use Redis with sliding window or token bucket
  • Return 429 with Retry-After
  • Add lockout and backoff for login

Quick Check

Test your rate-limiting knowledge.

Recap

You learned to defend against abuse:

  • Key rate limits on IP, user, or API key
  • Count with Redis INCR and TTL, or use sliding window libraries
  • Return 429 with Retry-After
  • Add account lockout and exponential backoff for logins

Your auth and APIs now resist brute force and flooding.

Gratuit pour commencer

Apprends AI Powered SaaS: Stripe + Auth + Billing + Deploy avec un tuteur IA — gratuit

Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.

Cours
12
Leçons
48

Questions Fréquemment Posées

La leçon « Limitation du débit et protection contre la force brute » est-elle gratuite ?

Oui — le texte complet de « Limitation du débit et protection contre la force brute » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours AI Powered SaaS: Stripe + Auth + Billing + Deploy, passe à CoddyKit PRO. Le cours AI Powered SaaS: Stripe + Auth + Billing + Deploy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Limitation du débit et protection contre la force brute » ?

Protégez l’authentification et les API de votre SaaS contre les abus grâce à la limitation du débit, au verrouillage des comptes et au ralentissement exponentiel avec un magasin rapide comme Redis. Tu pratiques AI Powered SaaS: Stripe + Auth + Billing + Deploy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer AI Powered SaaS: Stripe + Auth + Billing + Deploy ?

Aucune expérience préalable n'est requise. AI Powered SaaS: Stripe + Auth + Billing + Deploy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.

Combien de temps prend la leçon « Limitation du débit et protection contre la force brute » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon AI Powered SaaS: Stripe + Auth + Billing + Deploy ?

Oui. Chaque leçon AI Powered SaaS: Stripe + Auth + Billing + Deploy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Intégration d’OAuth 2.0
  2. Authentification multifacteur (MFA)
  3. Contrôle d’accès fondé sur les rôles (RBAC)
  4. Limitation du débit et protection contre la force brute
← Retour à AI Powered SaaS: Stripe + Auth + Billing + Deploy