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.
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
Relaterede begreber
- FrontendFrontend er den grænseflade, mennesker betjener. Nyttig feedback i browseren erstatter ikke afgørende kontroller på serveren.
- JavaScriptJavaScript er et programmeringssprog til applikationslogik i og uden for browseren. Opgaven adskiller sig fra HTML og CSS.
- HTMLHTML beskriver webindholds struktur og betydning. Det skelner eksempelvis mellem overskrifter, tabeller og indtastningsfelter.
- DataminimeringDataminimering begrænser personoplysninger til det, der er passende, relevant og nødvendigt for et fastlagt formål.
- Politik for dataopbevaringEn politik for dataopbevaring fastlægger formål, start, varighed og afslutning. Sletteopgaver og kopier skal indgå i den tekniske løsning.
- Envelope-krypteringEnvelope-kryptering adskiller datanøglen fra nøglen, der beskytter den. Den krypterede fil og indpakkede datanøgle skal håndteres sammen.
Dit projekt med ASES
Beskriv dit projekt for os. Vi vender tilbage med en første vurdering.