WordPress Content Security Policy (CSP) – skydda mot XSS-attacker

· 3 min lästid · WordPress Säkerhet
WordPress Content Security Policy (CSP) – skydda mot XSS-attacker

WordPress Content Security Policy (CSP) – skydda mot XSS-attacker

Content Security Policy, eller CSP, är en av de mest effektiva säkerhetsmekanismerna du kan implementera på din WordPress-webb. Ändå använder färre än 10% av alla webbplatser den.

Jag har sett hur CSP räddat flera av våra kunders webbar från skadlig kod som kommit in via komprometterade plugins eller themes. Det är en extra säkerhetsbarriär som kan stoppa attacker även när andra skydd brister.

Vad är Content Security Policy?

CSP fungerar som en whitelist för din webb. Du berättar för webbläsaren exakt vilka källor som får ladda innehåll – JavaScript, CSS, bilder, fonts och så vidare. Allt annat blockeras automatiskt.

Det gör CSP särskilt effektivt mot Cross-Site Scripting (XSS), en av de vanligaste attacktyperna mot WordPress. Även om en angripare lyckas injicera skadlig JavaScript-kod, kan CSP förhindra att den körs.

Så implementerar du CSP i WordPress

Du kan lägga till CSP på flera sätt. Den enklaste metoden är att använda .htaccess-filen:

Header always set Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self';"

Den här grundläggande policyn tillåter:

  • 'self' – endast innehåll från din egen domän
  • 'unsafe-inline' – inline CSS och JavaScript (behövs ofta för WordPress themes)
  • data: för bilder – tillåter base64-kodade bilder

Om du föredrar att använda functions.php istället:

function add_csp_header() {
    header("Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self';");
}
add_action('send_headers', 'add_csp_header');

Vanliga problem och lösningar

CSP kan krångla med WordPress från början. Här är de vanligaste problemen:

Google Analytics och tracking-scripts
Lägg till https://www.google-analytics.com https://www.googletagmanager.com till script-src.

YouTube-inbäddningar
Lägg till https://www.youtube.com https://www.youtube-nocookie.com till frame-src.

CDN för jQuery eller fonts
Lägg till respektive CDN-domän till script-src och font-src.

WordPress admin fungerar inte
Du behöver ofta 'unsafe-eval' för script-src i admin-området.

CSP i utvecklingsläge

Börja med "report-only" mode. Då bryts inget, men du får rapporter om vad som skulle blockerats:

Header always set Content-Security-Policy-Report-Only "default-src 'self'; report-uri /csp-violation-report-endpoint"

Oväntat många WordPress-installations använder externa scripts som ägarens inte vet om. Report-only läget avslöjar allt sånt innan du aktiverar skarp blockering.

Avancerade CSP-inställningar

När grundpolicyn fungerar kan du skärpa den:

Ta bort 'unsafe-inline'
Genomgå themes och plugins för att hitta inline-kod. Flytta ut den eller använd nonces.

Lägg till integrity-kontroller
Använd Subresource Integrity (SRI) för externa scripts och styles.

Specifika direktiv för olika sektioner
Använd olika CSP-policies för admin-området och frontend.

Plugins för CSP-hantering

Det finns några WordPress-plugins som kan hjälpa:

  • HTTP Headers – enkel CSP-implementation
  • Security Headers – mer avancerade alternativ
  • WP Content Security Policy – specifikt för CSP

Jag föredrar ofta manuell implementation eftersom du får full kontroll. Plugins kan komplicera troubleshooting när något går fel.

Testa din CSP-implementation

Använd webbläsarens utvecklarverktyg för att kontrollera:

  1. Öppna Network-fliken
  2. Ladda om sidan
  3. Kolla Console för CSP-varningar
  4. Testa alla funktioner på webben

Online-verktyg som CSP Evaluator kan också identifiera säkerhetsluckor i din policy.

När CSP inte räcker

CSP är kraftfullt men inte en silver bullet. Det skyddar främst mot client-side attacker. Du behöver fortfarande:

CSP är en del av ett större säkerhetspussel. Men det är en viktig del som kan stoppa attacker som andra skydd missat.

Flera av våra kunder har undgått större säkerhetsproblem tack vare välkonfigurerad CSP. Det tar lite tid att sätta upp rätt, men den investeringen lönar sig när det gäller.

Hur mår din webb?

Kör ett gratis test och se hur din webb presterar inom SEO, säkerhet, prestanda och tillgänglighet, på under en minut.

Testa gratis

Inget konto krävs

Få fler tips som dessa

Prenumerera på vårt nyhetsbrev, vi delar tips om webbunderhåll, säkerhet och prestanda.