Samenvatting
Security headers zijn instructies die jouw website meestuurt naar de browser van je bezoekers. Ze beschermen tegen veelvoorkomende aanvallen — zoals clickjacking (iemand plaatst je site onzichtbaar over een andere pagina), cross-site scripting (kwaadaardige code die in je pagina wordt geïnjecteerd) en het stiekem inladen van verkeerde bestandstypes. In Mach3Blocks stel je ze in via Website-instellingen.
Hoe werkt het
Waar vind je dit
Website-instellingen → tabblad Geavanceerd
Referrer-Policy
Als iemand op een link klikt op jouw website en naar een andere site gaat, kan de browser meesturen waar die bezoeker vandaan kwam (de "referrer"). Dat is handig voor statistieken, maar kan ook privacygevoelig zijn. Met de Referrer-Policy bepaal je wat er wordt doorgestuurd.
De opties op een rij:
- no-referrer — Er wordt nooit doorgestuurd waar de bezoeker vandaan kwam.
- origin — Alleen je domeinnaam wordt doorgestuurd (dus niet het volledige adres).
- origin-when-cross-origin — Naar je eigen site: het volledige adres. Naar andere sites: alleen je domeinnaam.
- same-origin — Alleen doorsturen naar pagina's op je eigen domein.
- strict-origin — Alleen je domeinnaam, en nooit als het van https naar http gaat.
- strict-origin-when-cross-origin (aanbevolen) — De beste balans: volledig adres binnen je eigen site, alleen domeinnaam naar externe sites, niets bij https → http.
- unsafe-url — Altijd het volledige adres doorsturen. Niet aanbevolen.
Ons advies: Kies strict-origin-when-cross-origin. Dit werkt goed met statistieken en is privacyvriendelijk.
X-Content-Type-Options
Browsers proberen soms zelf te raden wat voor soort bestand ze ontvangen — ook als dat al is aangegeven. Dit "raden" (MIME-sniffing) kan misbruikt worden om schadelijke bestanden door te laten alsof het onschuldige bestanden zijn.
De optie:
- nosniff (aanbevolen) — De browser vertrouwt op het opgegeven bestandstype en gaat niet zelf raden.
X-Frame-Options
Bepaalt of jouw website in een "frame" (een venster-in-venster) op een andere site mag worden geladen. Zonder beperking kan iemand jouw site onzichtbaar over een andere pagina leggen en bezoekers misleiden — dit heet clickjacking.
De opties:
- DENY — Jouw site mag nergens in een frame worden geladen, ook niet op je eigen domein.
- SAMEORIGIN (aanbevolen) — Jouw site mag alleen in een frame op je eigen domein worden geladen.
- Geen beperking — Iedereen mag jouw site in een frame laden. Niet aanbevolen.
X-XSS-Protection
Een oudere beveiligingslaag die de ingebouwde XSS-filter van de browser aanstuurt. XSS (cross-site scripting) is een aanval waarbij kwaadaardige code wordt ingespoten in een webpagina. Moderne browsers vertrouwen steeds meer op CSP (zie verderop), maar deze instelling is nog steeds nuttig voor oudere browsers.
De opties:
- 0 — XSS-filter uitgeschakeld.
- 1 — Filter aan: de browser probeert de aanval te neutraliseren.
- 1; mode=block (aanbevolen) — Filter aan: bij detectie wordt de pagina volledig geblokkeerd in plaats van gerepareerd.
HSTS (Strict-Transport-Security)
HSTS zorgt ervoor dat browsers jouw site altijd via een beveiligde verbinding (HTTPS) bezoeken — ook als iemand per ongeluk http:// intypt. Zo voorkom je dat bezoekers onbeveiligd verbinding maken.
De opties:
- Uit — Geen HSTS. Browsers mogen ook onbeveiligd verbinden.
- max-age=31536000 — HSTS actief voor 1 jaar.
- max-age=31536000; includeSubDomains — Ook verplicht voor alle subdomeinen.
- max-age=31536000; includeSubDomains; preload — Wordt bovendien opgenomen in de browserlijst van sites die altijd HTTPS gebruiken.
Ons advies: Schakel HSTS in als je site volledig op HTTPS draait. Begin met max-age=31536000. Voeg includeSubDomains toe als al je subdomeinen ook HTTPS hebben.
⚠️ Zet HSTS pas aan als je zeker weet dat HTTPS correct werkt. Een fout hier kan je site onbereikbaar maken voor bezoekers.
Content-Security-Policy (CSP)
CSP is de krachtigste — en meest technische — security header. Hiermee vertel je de browser precies welke bronnen (scripts, afbeeldingen, stijlen, lettertypes) geladen mogen worden en vanaf welke domeinen. Alles wat niet in je policy staat, wordt geblokkeerd.
Wanneer gebruiken?
- Als je externe scripts, lettertypes of media laadt en precies wilt bepalen wat je site mag vertrouwen
- Als maximale beveiliging vereist is (bijvoorbeeld voor zakelijke of gevoelige websites)
Wanneer leeg laten?
- Als je niet zeker bent van de juiste instellingen. Een verkeerde CSP kan ervoor zorgen dat onderdelen van je website niet meer werken (scripts geblokkeerd, afbeeldingen niet geladen, etc.)
⚠️ Test een CSP altijd grondig vóórdat je hem activeert. Controleer de browserconsole op foutmeldingen nadat je hebt opgeslagen.
Aanbevolen basisinstelling
| Header | Aanbevolen instelling |
|---|---|
| Referrer-Policy | strict-origin-when-cross-origin |
| X-Content-Type-Options | nosniff |
| X-Frame-Options | SAMEORIGIN |
| X-XSS-Protection | 1; mode=block |
| HSTS | max-age=31536000 (alleen als HTTPS volledig werkt) |
| CSP | Leeg laten tenzij je weet wat je doet |
Wanneer gebruik je dit
- Je wilt de beveiliging van je gepubliceerde website verbeteren
- Je werkt aan een zakelijke of gevoelige website die extra bescherming nodig heeft
- Je wilt je website beschermen tegen clickjacking, XSS of MIME-sniffing
Stappenplan
- Open Website-instellingen
- Ga naar het tabblad Geavanceerd
- Kies per header de gewenste instelling uit het dropdown-menu
- Vul eventueel een eigen CSP-waarde in
- Klik op Opslaan
- Test je website daarna altijd even in de browser — open de browserconsole om te checken of alles goed werkt