Cross-site scripting aanvallen zijn mogelijk doordat browsers alle JavaScript-code en andere content op een webpagina in één en dezelfde beveiligingscontext uitvoeren. De Content Security Policy (CSP) van Mozilla biedt een mechanisme aan voor websites om de browser te vertellen welke content legitiem is. Elk script dat niet door de website aanvaard wordt, wordt dan door de browser geblokkeerd.

Het voorstel van Mozilla vereist wel dat alle JavaScript op een webpagina naar externe bestanden wordt verplaatst, anders kan CSP legitieme scripts niet onderscheiden van geïnjecteerde of gewijzigde JavaScript-code in de pagina. Inline scripts, Javascript-urls en HTML-attributen die events afhandelen zullen door CSP dus genegeerd worden. Alleen JavaScript-code via een -tag met verwijzing naar een url op een host die door de website goedgekeurd is zal worden uitgevoerd. Een beschermde website kan bovendien een waarschuwing krijgen als CSP een XSS-aanval geblokkeerd heeft. Een gedetailleerde beschrijving van de mogelijkheden is te vinden in de CSP-specificatie.

Hoewel websites dus moeten worden aangepast om CSP te ondersteunen, kan dit in fases gebeuren. Het Mozilla Security-team heeft bovendien heel wat websites onderzocht en is daarbij geen enkele site tegengekomen die niet zou kunnen worden aangepast. Er zal documentatie beschikbaar komen met best practices om een website te migreren naar CSP. Een geruststelling is ook dat de policy volledig achterwaarts compatibel is: ze heeft geen effect op websites of webbrowsers die de specificatie niet ondersteunen.

Bron: Techworld