Gå til innholdet

Cross-site scripting (XSS)

Ved XSS blir eksternt innhold kjørbar kode i nettleseren. Det avgjørende er hvordan applikasjonen setter inn inndata på sidene sine.

Også kjent somXSS
IT-sikkerhet

Cross-site scripting, forkortet XSS, er et angrep der ekstern kode kjøres i nettleseren i konteksten til et berørt nettsted. Applikasjonen setter inn upålitelige data på en side slik at nettleseren behandler dem som kjørbart innhold. Koden kan for eksempel endre siden som vises, eller sende forespørsler med rettighetene til den innloggede personen.

En kommentar i prosjektportalen

En fiktiv prosjektportal lagrer kommentarer i feltet noteText og viser dem senere til andre teammedlemmer. Feltet er beregnet på vanlig tekst. Hvis innholdet settes inn som HTML uten egnede kontroller, kan spesielt utformede inndata føre inn kjørbart innhold. Lagring i egen database gjør ikke kommentaren pålitelig for senere visning. Verdier fra tilkoblede systemer må også behandles ut fra hvor de vises.

Hvis kommentaren bare skal være tekst, bruker applikasjonen en egnet tekstutmatning eller rammeverkets sikre standardvisning. Hvis formatert HTML bevisst tillates, trengs en vedlikeholdt renseløsning med fastsatt tillatt innhold.

Konteksten for utdata bestemmer beskyttelsen

MDN og OWASP skiller mellom behandling av tekst, HTML, attributter og andre kontekster for utdata. Koding som passer til vanlig HTML-tekst, beskytter ikke JavaScript eller URL-er universelt. Inndatavalidering alene erstatter ikke beskyttelsen når data gjengis.

En Content Security Policy kan i tillegg begrense hvilken kode som kjøres. Den erstatter verken trygge steder for innsetting av innhold eller nødvendig HTML-rensing. Portaleksemplet illustrerer dette skillet; det beskriver ikke en gjennomført sikkerhetstest.

Kilder