Wat zijn security headers?

Security headers voor je website zijn een onmisbaar onderdeel voor je website beveiliging. Bij correcte installatie van security headers beschermen ze je website tegen een varia aan cyberaanvallen. Waaronder cross site scripting, code injectie, clickjacking, … Jammer genoeg wordt de toepassing van security headers vaak over het hoofd gezien waardoor heel veel websites zich onnodig blootstellen aan hackers.

Datum

15 oktober 2022

Leestijd

6 Minutes

Categorie

Wat zijn security headers?

Als een bezoeker je website opent via zijn browser dan reageert de server met HTTP Response Headers. Deze geven aan wat de browser dient uit te voeren terwijl hij communiceert met je website. Dezelfde headers worden gebruikt om de manier van communiceren aan te geven en daarnaast kan je ze gebruiken om de website beter te beveiligen.

Test de security headers op jouw website

Met de online tool van Probely kan je jouw website testen op de aanwezigheid van security headers. Onderstaande test geeft de security headers van de website van The Other Concept weer.

test security headers

Verbeter de beveiliging via het .htaccess-bestand

Je kan beveiligingsheaders toevoegen via het .htaccess-bestand dat je in de root map van je website terug vindt. Opgelet, bij sommige hosts is het niet mogelijk om deze te configureren via het .htaccess-bestand. Dit omvat hosts die dit bestand niet ondersteunen of andere servers dan Apache, zoals NGINX of load balanced configuraties.

Welke beveilingsheaders zijn aangeraden?

We geven hieronder een korte omschrijving van de verschillende security headers die wij aanraden om te installeren:

Upgrade-Insecure-Requests

De header Upgrade-Insecure-Requests biedt een extra methode om http://-verzoeken op uw eigen domein naar https:// te forceren. Alle http://-verzoeken worden automatisch geüpgraded naar https:// wanneer deze header is ingeschakeld.

X-XSS protection

Stopt het laden van pagina’s als een gereflecteerde cross-site scripting (XSS) aanval wordt gedetecteerd. Hoewel het over het algemeen niet nodig zou moeten zijn wanneer er een sterk beleid voor inhoudsbeveiliging is, zal dit in veel gevallen niet mogelijk zijn op WordPress-sites, omdat het absoluut niet zeker is dat inline-scripts niet in een thema worden gebruikt. Dat maakt het een goede zaak om deze header te gebruiken.

X-Content Type Options

Deze header dwingt de browser om niet te raden wat voor soort gegevens worden doorgegeven. Als de extensie .doc is, zou de browser een .doc-bestand moeten krijgen, niet iets anders (bijvoorbeeld een .exe). Anders kan de browser misleid worden om een script uit te voeren, terwijl de gebruiker denkt dat hij een onschuldig bestand aan het downloaden is.

X-Frame-Options

De X Frame-Options voorkomen dat de site in een iframe wordt geladen. De header kan aangeven of het is toegestaan om de huidige site in een iframe te laden. Dit voorkomt clickjacking, door te voorkomen dat de site in het geheim wordt ingebed in een andere site met behulp van een iframe. Wanneer je deze header gebruikt, moet je ervan bewust zijn dat je website hierdoor niet in een iframe op andere sites kan weergeven.

Permissions-Policy

De HTTP-header Permissions-Policy vervangt de bestaande Feature-Policy-header voor het beheren van machtigingen en krachtige functies. De header gebruikt een gestructureerde syntaxis en stelt websites in staat om strenger te beperken welke oorsprong toegang kan krijgen tot functies.

Referrer-Policy

Stelt alleen een referrer in bij het hetzelfde protocol en niet bij het downgraden (van HTTPS naar HTTP). Zo zal een redirect nooit doorverwijzen naar een minder veilig protocol zoals HTTP.

Een voorbeeld van een correcte configuratie

Header always set Strict-Transport-Security: "max-age=31536000" env=HTTPS
Header always set Content-Security-Policy "upgrade-insecure-requests"
Header always set X-Content-Type-Options "nosniff"
Header always set X-XSS-Protection "1; mode=block"
Header always set Expect-CT "max-age=7776000, enforce"
Header always set Referrer-Policy: "no-referrer-when-downgrade"
Header always set X-Frame-Options: "SAMEORIGIN"
Header always set Permissions-Policy: ""

Heb jij de test uitgevoerd en ben je tot de conclusie gekomen dat je website vatbaar is voor hackers? Contacteer The Other Concept en wij kunnen er voor zorgen dat de nodige beveiligingsheaders geïnstalleerd worden op jouw website.