SaaS-arkitektur og iværksætterudvikling · Lektion

Sikkert API-design og hastighedsbegrænsning

Lær at beskytte SaaS-API'er mod misbrug og angreb ved hjælp af inputvalidering, hastighedsbegrænsning, sikre headers og beskyttelse mod almindelige websårbarheder.

Lektion 4 af 413 trin

Sikkert API-design og hastighedsbegrænsning er en gratis SaaS-arkitektur og iværksætterudvikling-lektion på CoddyKit. Dette er lektion 4 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i SaaS-arkitektur og iværksætterudvikling, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. SaaS-arkitektur og iværksætterudvikling-kurset indeholder 4 lektioner i alt.

API'er som angrebsflade

For et SaaS-produkt er API'et hovedindgangen. Hvert slutpunkt er et muligt indgangspunkt for angribere.

Sikring af API'er handler om mere end login: Det omfatter validering, forebyggelse af misbrug og beskyttelse mod kendte angrebsklasser.

Valider alle input

Stol aldrig på input fra klienten. Validér og rens hvert felt: type, længde, format og interval.

Afvis alt uventet tidligt, før det når forretningslogikken eller databasen.

function validateEmail(input) {
  const ok = /^[^@\s]+@[^@\s]+\.[^@\s]+$/.test(input);
  if (!ok) throw new Error('Invalid email');
  return input.toLowerCase();
}

Beskyttelse mod SQL-injektion

SQL-injektion opstår, når brugerinput sættes sammen med forespørgsler. Løsningen er parametriserede forespørgsler, som adskiller kode fra data.

// Unsafe: 'SELECT * FROM users WHERE name = ' + name
// Safe:
db.query('SELECT * FROM users WHERE name = ?', [name]);

Grundlæggende om hastighedsbegrænsning

Hastighedsbegrænsning sætter en grænse for, hvor mange forespørgsler en klient kan sende inden for et tidsvindue. Det beskytter mod brute force-angreb, scraping og utilsigtede forespørgselsstorme.

Grænserne gælder normalt pr. API-nøgle, pr. bruger eller pr. IP-adresse.

Token bucket-algoritmen

En populær metode til hastighedsbegrænsning er en token bucket: Tokens fyldes op med en fast hastighed, hver forespørgsel bruger én token, og forespørgsler afvises, når bucket'en er tom.

let tokens = 10;
function allow() {
  if (tokens > 0) { tokens--; return true; }
  return false;
}
// refill periodically: tokens = Math.min(10, tokens + 1)

Returnering af 429

Når en klient overskrider grænsen, skal du returnere HTTP-statuskoden 429 Too Many Requests sammen med en Retry-After-header, der fortæller, hvornår klienten kan prøve igen.

Tydelig feedback giver velopdragne klienter mulighed for at drosle ned på en ordentlig måde.

Sikre HTTP-headere

Føj defensive headere til hvert svar:

  • Strict-Transport-Security tvinger HTTPS
  • X-Content-Type-Options: nosniff
  • Content-Security-Policy begrænser scriptkilder

Konfiguration af CORS

CORS styrer, hvilke weboprindelser der må kalde dit API fra en browser. Angiv en eksplicit tilladelsesliste over pålidelige oprindelser.

Brug aldrig et jokertegn, når legitimationsoplysninger er aktiveret, da det eksponerer dit API for alle websteder.

Undgå overdreven dataeksponering

API'er returnerer ofte hele databaseobjekter, så interne felter lækkes. Returnér altid en eksplicit svarstruktur med kun de felter, klienten har brug for.

Send aldrig password-hashes, interne ID'er eller revisionsfelter til klienten.

function publicUser(u) {
  return { id: u.id, name: u.name, email: u.email };
  // omit password_hash, internal flags
}

Idempotens og beskyttelse mod gentagelse

Netværksforsøg igen kan medføre duplikerede handlinger. Understøt idempotensnøgler, så et nyt forsøg på en betaling eller en skrivehandling giver det samme resultat én gang.

Det beskytter både korrektheden og sikkerheden mod gentagelsesangreb.

Logning og overvågning af misbrug

Sikkerhed handler ikke kun om forebyggelse. Log godkendelsesfejl, overskridelser af hastighedsbegrænsninger og mistænkelige mønstre. Udsend en alarm, når en konto viser tegn på et angreb.

Synlighed gør det muligt at reagere, før et sikkerhedsbrud bliver en katastrofe.

Hurtigt tjek

Test din viden om API-sikkerhed.

Opsummering

Du har lært at hærde SaaS-API'er:

  • Validér input, og brug parametriserede forespørgsler
  • Begræns hastigheden med token buckets, og returnér 429
  • Tilføj sikre headere, streng CORS, minimale svarstrukturer og idempotens
  • Log og overvåg misbrug
Gratis at komme i gang

Lær SaaS-arkitektur og iværksætterudvikling med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
12
Lektioner
48

Ofte stillede spørgsmål

Er lektionen “Sikkert API-design og hastighedsbegrænsning” gratis?

Ja — alle 3 lektioner i læringssporet SaaS-arkitektur og iværksætterudvikling, inklusive “Sikkert API-design og hastighedsbegrænsning”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. SaaS-arkitektur og iværksætterudvikling-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Sikkert API-design og hastighedsbegrænsning”?

Lær at beskytte SaaS-API'er mod misbrug og angreb ved hjælp af inputvalidering, hastighedsbegrænsning, sikre headers og beskyttelse mod almindelige websårbarheder. Du øver dig i SaaS-arkitektur og iværksætterudvikling med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på SaaS-arkitektur og iværksætterudvikling?

Der kræves ingen tidligere erfaring. SaaS-arkitektur og iværksætterudvikling på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 4 af 4.

Hvor lang tid tager lektionen “Sikkert API-design og hastighedsbegrænsning”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne SaaS-arkitektur og iværksætterudvikling-lektion?

Ja. Alle SaaS-arkitektur og iværksætterudvikling-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Godkendelse og autorisation
  2. Datakryptering og privatliv
  3. Compliance og lovgivningsmæssige standarder
  4. Sikkert API-design og hastighedsbegrænsning
← Tilbage til SaaS-arkitektur og iværksætterudvikling