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.
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
Beslektede begreper
- FrontendFrontend er grensesnittet mennesker bruker. Nyttig tilbakemelding i nettleseren erstatter ikke avgjørende kontroller på serveren.
- JavaScriptJavaScript er et programmeringsspråk for applikasjonslogikk i og utenfor nettleseren. Oppgaven er forskjellig fra HTML og CSS.
- HTMLHTML beskriver nettinnholdets struktur og betydning. Det skiller for eksempel mellom overskrifter, tabeller og inntastingsfelt.
- DataminimeringDataminimering begrenser personopplysninger til det som er passende, relevant og nødvendig for et bestemt formål.
- Retningslinje for dataoppbevaringEn retningslinje for dataoppbevaring fastsetter formål, start, varighet og slutt. Slettejobber og kopier må håndteres i den tekniske løsningen.
- KonvoluttkrypteringKonvoluttkryptering skiller datanøkkelen fra nøkkelen som beskytter den. Den krypterte filen og innpakkede datanøkkelen må håndteres sammen.
Ditt prosjekt med ASES
Beskriv prosjektet ditt for oss. Vi tar kontakt med en første vurdering.