Security headers: welke zijn belangrijk en waarom?

Je website heeft beveiliging nodig – zonder beveiliging zou iedereen jouw website kunnen kopieren, hacken, infecteren met virussen of ontoegankelijk maken voor gebruikers. Eén van de manieren om je website te beveiligen is via security headers. In dit artikel leggen we je uit wat dat zijn, en waarom het belangrijk is dat dit op orde is. 

Voor een veilige website kan je security headers installeren. Dit kan op een later moment een datahack voorkomen. Security headers kunnen je website beschermen tegen bepaalde veel-voorkomende hacks zoals XSS, code injection en clickjacking. Security headers geven een extra laag beveiliging aan jouw website. Zij vertellen aan jouw browser hoe om te gaan met de inhoud van de website.

De belangrijkste security headers op een rijtje:

  • HTTP Strict Transport Security (HSTS) …
  • Content Security Policy (CSP) …
  • Cross Site Scripting Protection (X-XSS) …
  • X-Frame-Options. …
  • X-Content-Type-Options.

“Het beveiligen van een website is als fietsen. Om je evenwicht te bewaren, moet je in beweging blijven.” Dit is hoe het beroemde fietscitaat van Albert Einstein eruit zou zien als hij een cyberexpert was geweest.

Skopos controleert verschillende soorten security headers op jouw website. Via een HTTP-verbinding controleren we op Content-Security-Policy, X-Content-Type-Opties, X-Frame-Opties en X-XSS-Protectie. Via een HTTPS-verbinding controleren we op 2 extra headers, namelijk Strict-Transport-Security en Referrer policy. Hieronder volgt een uitleg van deze termen: 

  • Content security policy. Deze security header is een extra beveiliging tegen Cross Site Scripting. Je kunt namelijk hiermee bepaalde script bronnen op een whitelist of op een blacklist zetten. Je kunt dus exact aangeven welke scripts van welke domeinen toegestaan zijn en welke niet. Wanneer nu een hacker via Cross Site Scripting een script op je website plaatst, en het domein waarop dit script staat is niet toegestaan, dan zal het script dus nooit uitgevoerd worden. 
  • X-Content type opties. Wanneer je website bestanden laadt, bijvoorbeeld een stylesheet, dan wordt het content type ook bij dit bestand gezet. In het voorbeeld van een stylesheet zul je zien dat het type is: text/css. Wanneer er een bestand geupload wordt dat een stylesheet lijkt, maar in werkelijkheid een stuk kwaadaardige code is, dan zal dit bestand als zodanig worden uitgevoerd. Wanneer je de X-Content type opties security header instelt, dan vertel je de browser dat hij niet meer mag raden, maar het bestand moet interpreteren zoals staat aangegeven (dus in bovenstaand voorbeeld zou het kwaadaardige bestand als text/css worden geïnterpreteerd en niet schadelijk zijn). 
  • X-Frame opties. Met de security header X-Frame opties kun je aangeven of jouw website geladen mag worden in een iframe. Een iframe is een venster waarin je website content kunt laden. Je kunt ook een complete website laden in een iframe. Zo zou iemand anders dus een website kunnen maken met daarop alleen een iframe en in dat iframe wordt een andere website geladen (bijvoorbeeld jouw website). Dit brengt een risico met zich mee. Via een iframe kan iemand dus jouw website helemaal namaken. 
  • X-XSS protectie. Cross site scripting (XSS) is een veel gebruikte aanvalsvorm om websites mee te hacken. Met XSS injecteert een aanvaller kwaadaardige code in een website die bezoekers van deze website kan besmetten. Een slecht beveiligd formulier kan kwetsbaar zijn voor cross site scripting. Een aanvaller zal proberen om script code in een formulier te plaatsen en vervolgens op “verzenden” drukken. Een goed formulier zal deze script code herkennen en zo aanpassen dat de code onschadelijk wordt of zal de code helemaal weigeren. Een slecht formulier zal de code accepteren, waarmee de code op de website geplaatst wordt. 
  • HTTP Strict Transport Security (HSTS). Met deze security header kun je regelen dat webbrowsers jouw website alleen mogen benaderen via een beveiligde (https) verbinding. Om deze security header in te stellen, moet je website natuurlijk wel gebruik maken van een SSL verbinding (beveiligde verbinding, dus https en een slotje in de adresbalk van de browser). 
  • Referrer policy. Wanneer er op jouw website een link staat naar een andere website en een bezoeker klikt op die link, dan gaat de bezoeker naar die andere website. De browser neemt informatie mee over de website vanwaar hij gekomen is (dus informatie over jouw website) naar de website waar men naar toe gaat. Deze informatie kan gebruikt worden in bijvoorbeeld Google Analytics, je kunt met deze informatie precies zien vanaf welke verwijzende sites men op jouw site gekomen is. Echter, het kan zijn dat je niet wilt dat informatie over jouw website doorgegeven wordt aan websites waarnaar je verwijst. Dit kun je regelen met de Referrer policy security header. Er zijn een aantal zaken die je in kunt stellen, ik raad je aan om in te stellen dat er geen verwijzingsinformatie wordt meegezonden wanneer je verwijst naar een website die geen https gebruikt terwijl je zelf wel https gebruikt. Dus, geen informatie meezenden bij een downgrade van de verbinding. 

Hoe test ik de veiligheid van mijn website? 

Skopos test de veiligheid van jouw websites automatisch. Via deze tool kan je dit ook zelf doen: https://securityheaders.com/. Je site kan scoren van een A+ cijfer tot een F cijfer.

Graphical user interface, text, application  Description automatically generated

De R-klasse betekent dat de site heeft gereageerd met een omleiding en dat je de omleidingen moet volgen met behulp van de verstrekte link.

Graphical user interface, text, application  Description automatically generated

Wanneer je alles goed hebt ingesteld, zou je een A score moeten krijgen. 

Wanneer moet ik ingrijpen en wat moet ik dan doen? 

Als de beveiliging van je website niet op orde is, moet je aanpassingen doen. Het kan zijn dat je dit aan je webdeveloper of webhostingpartij moet vragen. Wij raden aan om bij elke score lager dan een A de aanbevelingen te volgen.  

‘Om up-to-date en veilig te blijven, bevat het Skopos-platform tests voor aanbevolen HTTP-beveiligingsheaders.’

Conclusie

Je kunt de beveiligingsheaders van uw website eenvoudig valideren. Er zijn meerdere gratis online tools beschikbaar om ze te controleren, zoals bijvoorbeeld https://securityheaders.com

Het Skopos platform scant nu ook automatisch op security headers. Daarnaast worden alle tools, applicaties, netwerken en systemen continu gescand zodat kwetsbare software, werkstations en servers direct zichtbaar worden.

Geinteresseerd in een demonstratie van het Skopos platform? Lees hier meer of neem voor meer informatie contact op via nl@skoposlab.eu of via 085200557