...
De tabel hieronder biedt een overzicht van de belangrijkste CSP attributen, die elk een specifieke rol spelen in het beveiligen van uw webapplicatie tegen verschillende soorten aanvallen.
Waarde | Omschrijving |
base-uri | Definieer de basis-URI voor relatieve URI's. |
default-src | Definieer het laadbeleid voor alle resources in het geval dat de specifieke richtlijn voor een bepaald soort middelen niet is gedefinieerd (fallback). |
script-src | Definieer welke scripts de beschermde bron kan uitvoeren. |
object-src | Definieer vanwaar de beschermde bron plugins kan laden. |
style-src | Definieer welke stijlen (CSS) kunnen worden toegepast op de beschermde bron. |
img-src | Definieer waar vandaan de beschermde bron afbeeldingen kan laden. |
media-src | Definieer van waar de beschermde bron video en audio kan laden. |
frame-src | (Verouderd en vervangen door child-src) Definieer van waar de beschermde bron frames kan insluiten. |
child-src | Definieer waar de beschermde bron frames kan insluiten. |
frame-ancestors | Definieer van waar de beschermde bron kan worden ingesloten in frames. Dit attribuut vervangt de X-Frame-Options header. |
font-src | Definieer van waar de beschermde bron lettertypes kan laden. |
connect-src | Definieer welke URI's de beschermde bron kan laden met behulp van scriptinterfaces. |
manifest-src | Definieer vanwaar de beschermde bron manifests kan laden. |
form-action | Definieer welke URI's gebruikt kunnen worden als actie van HTML-formulierelementen. |
sandbox | Specificeer een HTML-sandbox policy dat de browser toepast op de beschermde bron. |
script-nonce | Definieer de uitvoering van het script door de aanwezigheid van de gespecificeerde nonce op scriptelementen te eisen. |
plugin-types | Definieer de set van plugins die kunnen worden aangeroepen door de beschermde bron door het beperken van de soorten bronnen die kunnen worden ingesloten. |
reflected-xss | gereflecteerde cross-site scriptaanvallen te filteren of te blokkeren, gelijkwaardig aan de effecten van de niet-standaard X-XSS-Protection-header , te activeren of te deactiveren. |
block-all-mixed-content | Voorkom dat de gebruikersagent gemengde inhoud laadt. |
upgrade-insecure-requests | Instrueer de browser om onveilige HTTP-bronnen te downloaden met behulp van HTTPS. |
report-uri | (Afgeschreven en vervangen door report-to) Specificeert een URI waarnaar de gebruikersagent rapporten over beleidsovertredingen stuurt. |
report-to | Specificeert een groep (gedefinieerd in de Report-To header) waarnaar de gebruikersagent rapporten over beleidsovertredingen stuurt. |
Hulpmiddelen
Een aantal tools bieden de mogelijkheid om CSP headers te genereren, bijvoorbeeld:
...
HTTP Strict Transport Security zorgt ervoor dat de communicatie tussen de browser en de server plaatsvindt over een beveiligde HTTPS-verbinding. Dit minimaliseert het risico van man-in-the-middle-aanvallen.
Waarde | Omschrijving |
max-age=SECONDS | De tijd, in seconden, dat de browser moet onthouden dat deze site alleen toegankelijk is via HTTPS. |
includeSubDomains | Als deze optionele parameter wordt gespecificeerd, geldt deze regel ook voor alle subdomeinen van de site. Opgelet! HSTS activeren voor alle subdomeinen betekent dat deze, indien ze niet correct voorzien zijn van een geldig certificaat, niet meer toegankelijk zullen zijn. |
Voorbeeld
strict-transport-security: max-age=63113904 ; includeSubDomains
...
De X-Frame-Options header voorkomt dat een webpagina wordt ingesloten binnen een iframe. Dit is essentieel om te voorkomen dat kwaadwillende websites uw inhoud insluiten, wat kan leiden tot clickjacking-aanvallen. De CSP frame-ancestors richtlijn is een geavanceerder en flexibeler alternatief voor de X-Frame-Options header en geniet de voorkeur vanwege zijn uitgebreidere capaciteiten. Wanneer beide headers aanwezig zijn, geven moderne browsers voorrang aan de CSP frame-ancestors richtlijn.
Waarde | Omschrijving |
deny | Voorkomt dat de pagina binnen enig frame geladen wordt, ongeacht de bron. |
sameorigin | Staat alleen toe dat de pagina binnen een frame geladen wordt als het frame op dezelfde oorsprong gehost is. |
allow-from uri | Deze specifieke waarde wordt niet meer algemeen ondersteund en moet met voorzichtigheid worden gebruikt. |
Het is aanbevolen om de CSP frame-ancestors richtlijn te hanteren in plaats van de X-Frame-Options header voor een fijnmazigere controle. Als u echter besluit om X-Frame-Options te gebruiken, stel het dan in op de waarde "DENY" voor maximale beveiliging.
...
Permanente HTTPS Redirect: Gebruik een permanente redirect (HTTP status code 301) van HTTP naar HTTPS om Man-in-the-middle aanvallen te voorkomen.
HTTP Public Key Pinning (HPKP): Aanbevolen om niet meer te gebruiken vanwege belangrijke risico's en beperkingen.
X-Content-Type-Options: Voorkomt dat de browser bestanden interpreteert als een ander MIME-type dan gespecificeerd, met het 'nosniff' attribuut.
Permissions-Policy: Beperkt de functionaliteiten van browsers voor bepaalde webpagina's, zoals toegang tot de webcam, microfoon, locatieservices.
Referrer-Policy: Bepaalt welke referrer-informatie meegestuurd moet worden bij navigatie naar een andere website, ter bescherming van privacy en gevoelige gegevens.
Waarde | Omschrijving |
no-referrer | Er wordt geen referrer-informatie verzonden |
no-referrer-whendowngrade | Dit is het standaardgedrag als er geen beleid is ingesteld. De referrer wordt verzonden tenzij de navigatie van HTTPS naar HTTP gaat. |
origin | Alleen het domein van de referrer wordt verzonden, niet het volledige pad. |
origin-when-cross-origin | Verzend de volledige URL als de bestemming op hetzelfde domein is, maar alleen het domein bij cross-origin verzoeken. |
same-origin | Verzend de referrer alleen bij navigatie binnen hetzelfde domein. |
strict-origin | Verzend alleen het domein van de referrer, en doe dit niet als de navigatie van HTTPS naar HTTP gaat. |
strict-origin-when-cross-origin | Combineert het gedrag van origin-when-cross-origin en strict-origin. |
unsafe-url | Verzend de volledige URL, ongeacht de aard van de navigatie. |
Cross-origin Resource Sharing (CORS): Stelt webbrowsers in staat om veilige en gecontroleerde integraties tussen verschillende webdomeinen mogelijk te maken.
CORS kan gezien worden als een uitbreiding op het gebruik van Referrer-Policy: same-origin om alsnog op een gecontroleerde manier communicatie met andere domeinen mogelijk te maken.
...