Vad är en Content Security Policy och varför borde alla webbplatser ha en?

Bakgrunden till detta inlägg grundar sig i att en Content Security Policy ofta förbises eller missas vid utveckling och underhåll av webbplatser. Attacker mot hemsidor blir allt vanliga och en Content Security Policy är en viktig del av arbetet för att förhindra dessa digitala angrepp.

Vad är en CSP?

En Content Security Policy (även känt som CSP) är en säkerhetsstandard som används för att förhindra olika typer av attacker mot webbplatser. Genom att i sin Content Security Policy lista betrodda källor som webbplatsen får kommunicera med blir det svårare för en angripare att lägga in skadlig kod på ens webbplats. Content Security Policyn följer med i varje sidladdning (som en HTTP-header) och bestämmer vad besökaren får ladda och inte ladda för resurser från hemsidan.

Vad finns det för typ av attacker som en CSP kan förhindra?

Content Security Policys främsta syfte är att förhindra Cross Site Scripting (XSS) och datainjektions-attacker. Denna typ av attacker är några av de vanligaste som finns på webben och används för att stjäla data och manipulera webbplatser.

Hur kan en CSP se ut?

Ett exempel på hur en strikt CSP kan se ut finner du här.

Content-Security-Policy:
  object-src 'none';
  script-src 'nonce-{random}' 'unsafe-inline' 'unsafe-eval' 'strict-dynamic' https: http:;
  base-uri 'none';
  report-uri https://your-report-collector.example.com/

För högsta säkerhet rekommenderas att använda en s.k. nonce för varje resurs som läses in på webbplatsen. En nonce är en kryptografiskt genererad identifierare som man lägger till som attribut på de skript och övriga resurser som webbplatsen läser in. Webbplatsen kommer då att enbart tillåta resurser som har den nonce som finns med i Content Security Policyn.

Ett djupdykande inlägg om hur man implementerar detta publiceras på bloggen inom kort.

Hur testar jag min hemsidas policy?

Jag brukar använda mig av Googles CSP Evaluator för att testa webbplatser jag utvecklar. Om ni har en egen hemsida rekommenderar jag att testa och se hur er Content Security Policy kan förbättras.

Säkerhet

Tips & Tricks