Hoppa till innehållet

Cross-site scripting (XSS)

Vid XSS blir externt innehåll körbar kod i webbläsaren. Avgörande är hur applikationen för in indata på sina sidor.

Även känt somXSS
IT-säkerhet

Cross-site scripting, förkortat XSS, är en attack där extern kod körs i webbläsaren i en drabbad webbplats kontext. Applikationen för in opålitliga data på en sida så att webbläsaren behandlar dem som körbart innehåll. Koden kan exempelvis ändra sidan som visas eller skicka förfrågningar med den inloggade personens behörigheter.

En kommentar i projektportalen

En fiktiv projektportal lagrar kommentarer i fältet noteText och visar dem senare för andra teammedlemmar. Fältet är avsett för vanlig text. Om innehållet förs in som HTML utan lämpliga kontroller kan särskilt utformade indata föra in körbart innehåll. Att lagra kommentaren i den egna databasen gör den inte tillförlitlig för senare visning. Även värden från anslutna system måste hanteras efter var de ska visas.

Om kommentaren bara ska vara text använder applikationen en lämplig textutmatning eller ramverkets säkra standardvisning. Om formaterad HTML medvetet tillåts behövs en underhållen lösning för HTML-rensning med fastställt tillåtet innehåll.

Utmatningskontexten bestämmer skyddet

MDN och OWASP skiljer på hantering av text, HTML, attribut och andra utmatningskontexter. Kodning som passar vanlig HTML-text är inget universellt skydd för JavaScript eller URL:er. Enbart indatavalidering ersätter inte skyddet vid utmatning.

En Content Security Policy kan dessutom begränsa vilken kod som körs. Den ersätter varken säkra utmatningsställen eller nödvändig HTML-rensning. Portalexemplet illustrerar denna skillnad; det beskriver inget genomfört säkerhetstest.

Källor