Policy for innholdssikkerhet (forkortet CSP ) er en standardisert sikkerhetsmekanisme for å begrense opprinnelsen til innholdet (for eksempel et JavaScript- skript, stilark osv.) På en webside til visseautoriserte nettsteder . Spesielt gjør det det mulig å bedre beskytte mot kodeinjeksjons angrep så som angrep av skripting- (forkortet som XSS) eller ved kaprings . Disse angrepene er hovedsakelig avhengige av utførelse av skadelig kode på et nettsted der brukeren føler seg trygg. Den tredje versjonen er for øyeblikket en anbefalingskandidat for W3C Working Group on Web Application Security.
CSP gir en standardmetode for nettstedseiere til å erklære pålitelig opprinnelse til innhold som nettlesere bør få lov til å laste inn på dette nettstedet. Omfattede typer er skript JavaScript , CSS , HTML-rammer (in) , Worker Web (in) , skrifter , bilder, innebygde objekter som Java-applets , ActiveX , lydfiler eller video og andre HTML5-funksjoner .
De fleste moderne nettlesere støtter denne mekanismen i sin første versjon. De som ikke støtter denne spesifikasjonen, ignorerer bare overskriften, så den er gjennomsiktig for den besøkende.
Standarden, opprinnelig kalt Content Restrictions, ble foreslått av Robert Hansen i 2004, og ble først implementert i Firefox 4, som snart ble fulgt av andre nettlesere. Den første versjonen av standarden ble publisert i 2012 som en W3C-anbefaling som raskt skapte andre versjoner som ble publisert i 2014. Et utkast til den tredje versjonen er fortsatt under utvikling med nye funksjoner som allerede er vedtatt av nettlesere.
Følgende overskriftsnavn brukes som eksperimentelle CSP-implementeringer:
Et nettsted kan erklære flere forskjellige CSP-overskrifter. Hver topptekst blir behandlet separat av nettleseren.
Cross-site scripting ( XSS ) -angrep utnytter tilliten nettlesere har til innhold mottatt fra servere. Ondsinnede skript kan utføres i ofrenes nettlesere fordi ofre blindt stoler på serveren for å sende dem data, selv når den ikke kommer fra hvor den ser ut til å komme.
CSP tillater systemadministratorer å redusere eller eliminere virkemidlene for å utføre XSS-angrep ved å tillate å spesifisere domenene som er autorisert til å gi skript for den besøkte siden. CSP-kompatible nettlesere kjører deretter skript bare fra en opprinnelse som er tillatt av CSP-reglene og ignorerer de som ikke er tillatt. Vi kan da blokkere uautoriserte domener, innebygde skript (inkludert i en HTML-side) eller tilknyttet hendelser via dedikerte HTML-attributter.
Det høyeste beskyttelsesnivået ville da være å ikke la noe skript kjøre.
CSP tillater også å tvinge bruken av HTTPS for visse domener, samt bruk av sikre informasjonskapsler, som bare kan sendes via HTTPS, for å forbedre sikkerheten. I tillegg til den falske bruken av CSP for denne funksjonen, sikrer bruken av toppteksten Strict-Transport-Securityat nettlesere nødvendigvis bruker TLS-krypterte tilkoblinger (HTTPS).
CSP kan aktiveres på to forskjellige måter av en webserver:
Toppteksten etterfølges deretter av en streng som inneholder listen over regler som utgjør CSP regelen: . En CSP-regel lar deg spesifisere verdier for å kontrollere ressursene som nettleseren har lov til å laste for den gitte siden. Content-Security-Policy: règle
En regel er definert av en serie direktiver som hver beskriver en forventet atferd for en bestemt type innhold eller for alle forespørsler.
Tre vanlige retningslinjer er:
For å teste distribusjonen av CSP på en server, kan den konfigureres til å rapportere regelbrudd uten å bruke regelen. På denne måten blokkerer vi ikke bruken av nettstedet ved å hente rapporter om brudd på regel i løpet av testfasen.
For å gjøre dette, bruk bare overskriften Content-Security-Policy-Report-Only(CSPRO) på samme måte som CSP:
Content-Security-Policy-Report-Only: règleHvis HTTP-overskriftene Content-Security-Policy-Report-Onlyog Content-Security-Policyer til stede i et svar fra serveren, vil begge reglene bli respektert, slik at en ny regel kan testes, samtidig som bruken av eksisterende regler bevares. CSP-regler håndheves mens CSPRO-regler genererer rapporter, men blir ikke håndhevet.
FeilrapporterHvis utførelsen av et skript eller en forespurt ressurs noen gang bryter med retningslinjene, vil nettleseren utstede en forespørsel POSTtil URL-ene som er angitt i report-uri, som vil inneholde detaljene for bruddet. Derfor må direktivet report-urispesifiseres med minst en gyldig URL.
For eksempel :
Content-Security-Policy: default-src 'self'; report-uri http://reportcollector.example.com/collector.cgiCSP-feilrapporter er standard JSON- strukturer som kan fanges enten av API-en til applikasjonen som brukes eller av offentlige CSP-feilrapporteringsservere.