Content Security Policy
Silktide kontrollerer at hver side erklærer en Content Security Policy, et standard sikkerhetstiltak som forteller nettlesere hvilke kilder til skript, bilder og annet innhold siden har tillatelse til å bruke.
En Content Security Policy (CSP) leveres som en eller en metatagg, for eksempel:
Content-Security-Policy: default-src 'self'; script-src 'self' scripts.example.com
Dette eksempelet forteller nettleseren å laste innhold bare fra ditt eget domene, samt skript fra én klarert vert.
Hvorfor dette er viktig
Uten en CSP kjører en side hva enn den blir gitt. Hvis en angriper klarer å injisere et skript – gjennom en kompromittert tredjepartstagg, et sårbart kommentarfelt eller et kapret annonsenettverk – kjører nettleseren det med full tilgang til siden, inkludert alt de besøkende skriver inn. Denne typen angrep, skriptangrep på tvers av nettsteder, er fortsatt en av de vanligste måtene nettsteder blir kompromittert på.
En CSP er sikkerhetsnettet på nettlesersiden: injisert innhold fra en ikke godkjent kilde lastes ganske enkelt ikke inn. Den dokumenterer også hvilke tredjeparter sidene dine kommuniserer med, noe som er nyttig når du skal demonstrere samsvar med personvernforordninger som .
Slik løser du det
- List opp de legitime kildene sidene dine laster innhold fra: ditt eget domene, din , Analytics, skrifttyper og innebygde medier.
- Skriv en policy som bare tillater disse kildene. Start strengt, for
eksempel
default-src 'self', og legg til spesifikke kilder per innholdstype (script-src,img-src,style-src) etter behov. - Konfigurer webserveren, vertsplattformen eller CDN-en din til å sende
policyen som
Content-Security-Policy-header på hver side. Hvis du ikke kan endre headere, fungerer også en<meta http-equiv="Content-Security-Policy">-tagg i sidens head, selv om headeren foretrekkes. - Test før du håndhever policyen: send policyen som
Content-Security-Policy-Report-Onlyførst, og følg med i nettleserens konsoll etter innhold som ville ha blitt blokkert. Merk at denne kontrollen ser etter headeren som håndhever policyen, så en report-only- policy består ikke kontrollen.
Slik tester Silktide dette
- Last inn hver side og samle inn HTTP-headerne sammen med eventuelle
http-equiv-metatagger på siden, som nettlesere behandler på samme måte. - Se etter en
Content-Security-Policy-verdi ett av stedene. - Rapporter siden hvis ingen av delene finnes, eller hvis verdien er tom.
- Silktide vurderer ikke kvaliteten på policyen – bare at det finnes en.
Feilsøking
Jeg har angitt en policy, men kontrollen mislykkes fortsatt
Bekreft at headeren vises på de nøyaktige sidene som skannes – policyer er noen ganger bare konfigurert for hjemmesiden eller én virtuell vert. Du kan se headerne en side returnerer, i nettleserens utviklerverktøy under Nettverk-fanen.
Vil en CSP ødelegge nettstedet mitt?
En policy som er for streng, kan blokkere dine egne skript eller stiler. Det
er derfor det på det sterkeste anbefales å teste med
Content-Security-Policy-Report-Only først – den rapporterer brudd uten å
blokkere noe.