Security headers

Samenvatting

In dit artikel lees je welke securityheaders je per website kunt instellen. Je vindt per header de waarden die het scherm aanbiedt.

Je leest ook wat er gebeurt als je niets kiest, en wanneer je keuze op de website terechtkomt.

Verder lees je wat er misgaat bij een te strenge instelling.

Wanneer gebruik je dit?

Je gebruikt dit als je de beveiliging van de gepubliceerde website wilt aanscherpen.

Je gebruikt het ook als een externe partij om een bepaalde header vraagt, bijvoorbeeld na een beveiligingsonderzoek.

Weet je niet wat een header doet, laat de velden dan staan zoals ze staan. De website werkt dan gewoon.

Hoe werkt dit in Mach3Blocks?

Waar de velden staan

Open de pop-in Website-instellingen en ga naar het tabblad Geavanceerd. De zes velden staan daar onder elkaar.

De veldnamen zijn de headernamen zelf. Die worden niet vertaald, dus zij zijn in elke taal gelijk.

Onder elk veld staat een link met de tekst "Klik hier voor meer informatie". Die verwijst naar een uitleg bij Mozilla, in het Engels.

Dit tabblad is voor gevorderde instellingen

Bovenaan het tabblad staat een oranje melding: "Dit is geavanceerde functionaliteit en dient alleen te worden gewijzigd wanneer je hier kennis van hebt."

Wat een standaardwaarde betekent

Vijf velden zijn een keuzelijst. De eerste regel van zo'n lijst toont de standaard tussen haakjes.

Die standaardwaarde geeft de server zelf al mee aan je website. Kies je niets, dan gebeurt er precies dat.

Staat er Standaard (none), dan geeft de server voor die header niets mee.

Wanneer je keuze meegaat

Je keuze komt op de website bij de eerstvolgende publicatie. Tot dat moment verandert er niets voor de bezoeker.

Alleen de headers die je zelf kiest, worden bewaard en meegepubliceerd. Kies je nergens iets, dan wordt er niets meegegeven.

Bij een website in een presentatiegroep bestaat dit tabblad niet. Kopieer je een website naar zo'n groep, dan vervalt je keuze.

Overzichtstabel met opties, waarden en standaard

Header Waarden die het veld aanbiedt Standaard die het veld toont
Referrer-Policy no-referrer, origin, origin-when-cross-origin, same-origin, strict-origin, strict-origin-when-cross-origin, unsafe-url Standaard (same-origin)
X-Content-Type-Options nosniff Standaard (nosniff)
X-Frame-Options DENY, SAMEORIGIN Standaard (none)
X-XSS-Protection 0, 1, 1; mode=block Standaard (1; mode=block)
Strict-Transport-Security max-age=0, max-age=31536000, max-age=31536000; includeSubDomains, max-age=31536000; includeSubDomains; preload Standaard (none)
Content-Security-Policy een vrij tekstveld van hoogstens 500 tekens geen standaardtekst

Wat de zes headers doen:

Header Wat hij regelt
Referrer-Policy Hoeveel de browser over de vorige pagina doorgeeft aan een volgende website
X-Content-Type-Options Dat de browser een bestand behandelt zoals het is aangeboden, en er niet zelf een type bij verzint
X-Frame-Options Of jouw pagina's in een frame op een andere website getoond mogen worden
X-XSS-Protection Een oude filter in de browser tegen bepaalde aanvallen
Strict-Transport-Security Dat de browser deze website voortaan alleen nog beveiligd opvraagt
Content-Security-Policy Welke bronnen jouw pagina's mogen laden, zoals scripts en afbeeldingen

Het veld Content-Security-Policy is het enige vrije tekstveld. Het neemt hoogstens 500 tekens aan.

Dat veld accepteert niet elk teken. Bevat je waarde een teken dat niet is toegestaan, dan meldt het scherm: "Dit veld bevat tekens die niet zijn toegestaan."

Aanbevolen instelling

Voor drie headers hoef je niets te doen. De server geeft ze al mee, dus laat die keuzelijsten met rust.

Header Wat de server al meegeeft
Referrer-Policy same-origin
X-Content-Type-Options nosniff
X-XSS-Protection 1; mode=block

Bij X-XSS-Protection kies je niets. De standaard staat er al, en een andere waarde is hier niet nodig.

Twee headers hebben geen standaard, en daar is dus wel iets te kiezen.

Header Keuze Wat die keuze doet
X-Frame-Options SAMEORIGIN Alleen je eigen website mag jouw pagina's in een frame tonen
Strict-Transport-Security max-age=31536000 De browser vraagt deze website een jaar lang alleen beveiligd op

Voor Content-Security-Policy is geen algemene waarde te geven. Wat je hier invult, hangt af van wat jouw website laadt.

Voorwaarden en rechten

Voor deze velden is geen recht nodig. Wie de website-instellingen kan openen, kan de headers kiezen.

Voor het publiceren heb je het recht Publiceren nodig.

Bij een website in een presentatiegroep is dit tabblad er niet.

Gevolgen bij verkeerd instellen

Een te strenge waarde blokkeert onderdelen van je eigen website. Dat merk je pas op de gepubliceerde website, dus controleer na het publiceren.

Bij Content-Security-Policy is dat risico het grootst. Vergeet je een bron die je website nodig heeft, dan laadt die bron niet meer.

Kies je bij X-Frame-Options de strengste waarde, dan kan niemand jouw pagina's nog in een frame tonen. Ook jijzelf niet, bijvoorbeeld in een voorbeeldweergave elders.

Zet je Strict-Transport-Security aan, dan onthoudt de browser dat een tijd lang. Dat draai je niet zomaar terug bij een bezoeker die de website al bezocht heeft.

Twijfel je, laat de keuzelijst dan op de standaard staan.