Rate limiting med hooks
Implementer rate limiting av forespørsler i handle()-hooken for å beskytte API-ruter.
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.
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
- CSRF-beskyttelse i form actions
- XSS-forebygging i {#html}
- Miljøvariabler: $env/static og $env/dynamic
- Rate limiting med hooks