Hoe maak ik gebruik van HSTS?

Bij het gebruik van een beveiligde verbinding middels HTTPS kun je ook HSTS toepassen. HSTS is een beveiligingsmechanisme wat https-websites beschermd tegen downgrade-aanvallen op het protocol. Hiermee voorkom je dat een onbeveiligde verbinding nog mogelijk is.

 

Belangrijk

In dit artikel gebruiken wij een .htaccess-bestand om automatisch gebruik te maken van HSTS. Dit bestand dien je per website (dus per domein en subdomein) in te stellen. Het is hierbij belangrijk dat je HTTPS al forceerd. Je plaatst de code die wij in dit artikel bespreken onder de regels van het forceren van HTTPS.

 

Stappenplan

Stap 1. Volg de stappen 1 t/m 4 van het stappenplan voor HTTPS en ga verder met de stap hieronder.

Stap 2a. Plak de volgende code in het .htaccess-bestand:


<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains" env=HTTPS
Header set X-Frame-Options "ALLOW-FROM SAMEORIGIN"
Header set X-Content-Type-Options nosniff
Header set X-XSS-Protection "1; mode=block"
Header set Referrer-Policy "no-referrer-when-downgrade"
Header always edit Set-Cookie (.*) "$1; HTTPOnly; Secure"
</IfModule>

Stap 2b (optioneel). Content-Security-Policy is een extra beveiligingslaag die aangeeft welke externe scripts geladen mogen worden op de website. Alle externe scripts die aangeroepen worden maar die hierin niet in zijn gedefinieerd mogen dan niet geladen worden. Dit kan door de volgende code toe te voegen in het .htaccess-bestand:


<IfModule mod_headers.c>
Header set Content-Security-Policy "default-src 'self'"
</IfModule>

Let op: Hierdoor werken alle externe scripts zoals Google analytics, Cloudflare, Captchabeveiliging, externe CSS en overige diensten niet meer tenzij je ze handmatig toevoegt aan het record zoals:


Header set Content-Security-Policy "default-src 'self' www.google-analytics.com *.cloudflare.com *.gstatic.com captcha.totaalholding.nl;"

Stap 3. Klik rechtsboven op Wijzigingen opslaan. Webbrowsers zullen nu alleen beveiligde HTTPS-verbindingen kunnen gebruiken, en nooit het onveilige HTTP-protocol.

Om het resultaat te testen kun je o.a. gebruik maken van securityheaders.com.

 

Toelichting HSTS

Hieronder lichten we de werking van de regels code toe die tussen de IfModule tags staan in stap 2a. Regel 1 gaat dus over "Header always set Strict-...", Regel 2 over "Header set X-Frame-Options DENY", etc.

Regel 1: Zet HSTS aan op het domein zodat deze altijd over HTTPS geladen wordt. Dit geldt ook voor subdomeinen mits de code daar in de htaccess toegepast is. De max-age=31536000 steld deze voor 1 jaar in. Je kunt deze aanpassen naar bijvoorbeeld 2 jaar door het getal te veranderen in 63072000.

Regel 2: Voorkomt dat je website ingesloten wordt in <frame>, <iframe> of <object>. Indien je website hier afhankelijk van is kun je deze regel het beste weglaten.

Regel 3: MIME type sniffing wordt uitgeschakelt, dit voorkomt bijvoorbeeld dat Internet Explorer een .img url als javascript kan uitvoeren.

Regel 4: Zet de IE8 en IE9 XSS prevention tools aan, dit gaat cross-site scripting tegen.

Regel 5: Zorgt er voor dat als een bezoeker op een link naar een http website klikt, de HTTPS URL van de website niet meegestuurd wordt. Dit zou anders een veiligheidslek zijn omdat de HTTPS URL-schema pad onbeveiligd over het internet wordt verstuurd.

Regel 6: Het doel van de secure flag is om te voorkomen dat cookies worden ingezien door ongeautoriseerde partijen omdat de cookie onbeveiligd wordt verstuurd.

  • 0 Користувачі, які знайшли це корисним
Ця відповідь Вам допомогла?

Схожі статті

Hoe maak ik automatisch gebruik van HTTPS?

SSL-certificaten zijn nodig om een beveiligde verbinding op te zetten, hiermee zorg je ervoor dat...

Hoe stel ik directoryprivacy in?

Om een map in je hostingpakket te beveiligen stel je Directoryprivacy in. Zo bepaal jij wie...