Content Security Policy
Silktide kontrollerar att varje sida deklarerar en Content Security Policy, en standardiserad säkerhetsåtgärd som talar om för webbläsare vilka källor till skript, bilder och annat innehåll sidan får använda.
En Content Security Policy (CSP) levereras som en eller en metatagg, till exempel:
Content-Security-Policy: default-src 'self'; script-src 'self' scripts.example.com
Det här exemplet talar om för webbläsaren att endast läsa in innehåll från din egen domän samt skript från en betrodd värd.
Varför detta är viktigt
Utan en CSP kör en sida vad den än får. Om en angripare lyckas injicera ett skript – genom en komprometterad tagg från tredje part, ett sårbart kommentarsfält eller ett kapat annonsnätverk – kör webbläsaren det med full åtkomst till sidan, inklusive allt som dina besökare skriver in. Den här typen av attack, cross-site scripting, är fortfarande ett av de vanligaste sätten som webbplatser utsätts för intrång.
En CSP är webbläsarens säkerhetsnät: injicerat innehåll från en icke godkänd källa läses helt enkelt inte in. Den dokumenterar också vilka tredje parter dina sidor kommunicerar med, vilket underlättar när du ska visa att du följer integritetsbestämmelser som .
Så åtgärdar du problemet
- Lista de legitima källor som dina sidor hämtar innehåll från: din egen domän, ditt , analysverktyg, teckensnitt och inbäddade medier.
- Skriv en policy som endast tillåter dessa källor. Börja strikt, till
exempel
default-src 'self', och lägg vid behov till specifika källor per innehållstyp (script-src,img-src,style-src). - Konfigurera din webbserver, värdplattform eller ditt CDN så att policyn
skickas som headern
Content-Security-Policypå varje sida. Om du inte kan ändra headers fungerar även en<meta http-equiv="Content-Security-Policy">- tagg i sidans head, även om headern föredras. - Testa innan du börjar tillämpa policyn: skicka först policyn som
Content-Security-Policy-Report-Onlyoch håll utkik efter innehåll i webbläsarens konsol som skulle ha blockerats. Observera att den här kontrollen letar efter den tillämpande headern, så en policy i rapporteringsläge godkänns inte.
Så testar Silktide detta
- Läs in varje sida och samla in dess HTTP-headers tillsammans med eventuella
http-equiv-metataggar på sidan, som webbläsare behandlar på samma sätt. - Leta efter ett
Content-Security-Policy-värde på någon av platserna. - Rapportera sidan om inget av dem finns eller om värdet är tomt.
- Silktide bedömer inte policyns kvalitet – endast att en sådan finns.
Felsökning
Jag har angett en policy, men kontrollen misslyckas fortfarande
Bekräfta att headern visas på exakt de sidor som skannas – policyer är ibland bara konfigurerade för startsidan eller en virtuell värd. Du kan se vilka headers en sida returnerar i webbläsarens utvecklarverktyg, under fliken Network.
Kommer en CSP att få min webbplats att sluta fungera?
En policy som är för strikt kan blockera dina egna skript eller stilmallar.
Därför rekommenderas starkt att du först testar med
Content-Security-Policy-Report-Only – den rapporterar överträdelser utan att
blockera något.