Gå til indholdet

Cross-site scripting (XSS)

Ved XSS bliver eksternt indhold til kode, der kan køres i browseren. Det afgørende er, hvordan applikationen indsætter input på sine sider.

Også kendt somXSS
IT-sikkerhed

Cross-site scripting, forkortet XSS, er et angreb, hvor ekstern kode køres i browseren i et berørt websteds kontekst. Applikationen indsætter upålidelige data på en side, så browseren behandler dem som indhold, der kan køres. Koden kan eksempelvis ændre den viste side eller sende anmodninger med den indloggede persons rettigheder.

En kommentar i projektportalen

En fiktiv projektportal gemmer kommentarer i feltet noteText og viser dem senere til andre teammedlemmer. Feltet er beregnet til almindelig tekst. Hvis indholdet indsættes som HTML uden passende kontrol, kan særligt udformet input indføre kode, der kan køres. At gemme en kommentar i egen database gør den ikke troværdig til senere visning. Værdier fra tilknyttede systemer skal også behandles efter, hvor de vises.

Skal kommentaren kun være tekst, bruger applikationen en egnet tekstvisning eller frameworkets sikre standardvisning. Hvis formateret HTML bevidst tillades, kræver det en vedligeholdt rensningsløsning med fastlagt tilladt indhold.

Outputkonteksten bestemmer beskyttelsen

MDN og OWASP skelner mellem behandling af tekst, HTML, attributter og andre outputkontekster. Kodning, der passer til almindelig HTML-tekst, beskytter ikke universelt JavaScript eller URL’er. Inputvalidering alene erstatter ikke beskyttelsen ved visning.

En Content Security Policy kan derudover begrænse, hvilken kode der køres. Den erstatter hverken sikre steder at indsætte indhold eller nødvendig HTML-rensning. Portaleksemplet illustrerer denne forskel; det beskriver ikke en udført sikkerhedstest.

Kilder