Sveltejs Academy · leksjon

Rate limiting med hooks

Implementer rate limiting av forespørsler i handle()-hooken for å beskytte API-ruter.

Leksjon 4 av 413 trinn

Rate limiting med hooks er en gratis leksjon i Sveltejs Academy på CoddyKit. Dette er leksjon 4 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Sveltejs Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Sveltejs Academy inneholder totalt 4 leksjoner.

Hvorfor begrense forespørsler

Beskytt API-er mot misbruk: påloggingsforsøk med rå kraft, skraping og utilsiktet overbelastning.

Implementer i handle

Tell forespørsler per IP i minnet eller Redis, og avvis dem når grensen overskrides.

const counts = new Map();
export async function handle({ event, resolve }) {
  const ip = event.getClientAddress();
  const n = (counts.get(ip) || 0) + 1;
  counts.set(ip, n);
  if (n > 100) return new Response("Too many", { status: 429 });
  return resolve(event);
}

Glidende vindu

Bruk en algoritme med glidende vindu for rettferdig begrensning av forespørsler.

Redis-basert

For distribusjoner med flere instanser lagrer du antall i Redis eller et tilsvarende delt lager.

Grenser per rute

Bruk ulike grenser for ulike ruter (f.eks. en strengere grense på /login).

429-status

Returner HTTP 429 med en Retry-After-header slik at klientene vet når de kan prøve igjen.

Hint i headere

Angi X-RateLimit-*-headere for å informere klientene om kvoten deres.

Grenser per bruker

For autentiserte brukere bruker du bruker-ID-en som nøkkel, slik at begrensningen blir rettferdig.

Biblioteker

Bruk eksisterende biblioteker (sveltekit-rate-limiter) i stedet for å lage ditt eget.

Logging

Logg begrensede forespørsler for å oppdage angrep og justere grensene.

CDN-lag

Bruk Cloudflare eller tilsvarende til å bruke grunnleggende begrensninger på edge-laget før forespørslene når appen.

Hurtigsjekk

Hvilken statuskode returnerer du når grensen for forespørsler overskrides?

Oppsummering

Implementer begrensning av forespørsler i handle-hooken. Bruk Redis i oppsett med flere instanser, og returner 429 med Retry-After.

Gratis å komme i gang

Lær deg HTML med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
41
Leksjoner
163

Ofte stilte spørsmål

Er leksjonen «Rate limiting med hooks» gratis?

Ja – hele teksten i «Rate limiting med hooks» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Sveltejs Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Sveltejs Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «Rate limiting med hooks»?

Implementer rate limiting av forespørsler i handle()-hooken for å beskytte API-ruter. Du øver på Sveltejs Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Sveltejs Academy?

Ingen tidligere erfaring er nødvendig. Sveltejs Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.

Hvor lang tid tar leksjonen «Rate limiting med hooks»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Sveltejs Academy-leksjonen?

Ja. Alle Sveltejs Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. CSRF-beskyttelse i form actions
  2. XSS-forebygging i {#html}
  3. Miljøvariabler: $env/static og $env/dynamic
  4. Rate limiting med hooks
← Tilbake til Sveltejs Academy