HTTP Strict-Transport-Security (HSTS) inschakelen bij Vevida

HTTP Strict Transport Security (HSTS) is een beveiligingsmaatregel die SSL-beveiligde websites beschermt tegen zogenoemde “downgrade aanvallen“. Door een HSTS-reactieheader mee te sturen zorg je ervoor dat webbrowsers alleen het beveiligde HTTPS protocol gebruiken en nooit het onveilige HTTP. In dit artikel lees je hoe je dit instelt voor jouw website. 


HSTS niet standaard ingeschakeld

De HTTP Strict-Transport-Security (HSTS) standaard omvat communicatie tussen de webserver en webbrowser, en is alleen mogelijk als de gehele website beveiligd is met een SSL-certificaat. Hierom wordt een HSTS-reactieheader niet standaard teruggestuurd naar de browser (client).


Als je graag de communicatie tussen jouw website en bezoekers beter wilt beschermen, en de privacy van jouw bezoekers belangrijk vindt, dan doe je er verstandig aan deze HSTS-reactieheader terug te sturen. Je stelt dit eenvoudig in een web.config-bestand in. In het artikel Striktere websitebeveiliging met HTTP-reactieheaders geven we je meer voorbeelden van HTTP-headers die je kunt gebruiken om je website beveiliging te verbeteren.


HTTP Strict-Transport-Security (HSTS) reactieheader in web.config

HTTP-reactieheaders kun je onder andere instellen door middel van een Outbound Rule in het web.config-bestand. Een Outbound Rule herschrijft de reactie die van de server teruggestuurd wordt naar de browser.


Dit in tegenstelling tot een gewone Rewrite Rule waarbij dat wat de bezoeker opvraagt (request) herschreven wordt.

In het web.config-bestand voeg je de volgende XML-code toe, onder bestaande rewrite rules:

<outboundRules>
  <rule name="Add Strict-Transport-Security when HTTPS" enabled="true">
    <match serverVariable="RESPONSE_Strict_Transport_Security" pattern=".*" />
    <conditions>
      <add input="{HTTPS}" pattern="on" ignoreCase="true" />
    </conditions>
    <action type="Rewrite" value="max-age=31536000; includeSubDomains; preload" />
  </rule>
</outboundRules>

Als je al gebruikmaakt van IIS web.config URL Rewrite HTTPS-verbinding voor alle pagina’s voor het herschrijven van URL’s, dan moet deze code staan onder </rules> en boven </rewrite>.


Zie dit genoemde artikel HTTPS-verbinding voor alle pagina’s voor meer informatie over een HTTP naar HTTPS redirect voor jouw website.


Als je nog geen gebruik maakt een URL Rewrite in web.config, dan moet dit de bovenstaande outboundRules verpakken in de juiste elementen. Neem in het web.config-bestand op (of kies de juiste onderdelen):

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <!-- redirect HTTP naar HTTPS -->
        <rule name="HTTP to HTTPS redirect" stopProcessing="true">
          <match url="(.*)" />
          <conditions>
            <add input="{HTTPS}" pattern="off" ignoreCase="true" />
          </conditions>
          <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" />
        </rule>
      </rules>
      <outboundRules>
        <rule name="Add Strict-Transport-Security when HTTPS" enabled="true">
          <match serverVariable="RESPONSE_Strict_Transport_Security" pattern=".*" />
          <conditions>
            <add input="{HTTPS}" pattern="on" ignoreCase="true" />
          </conditions>
          <action type="Rewrite" value="max-age=31536000; includeSubDomains; preload" />
        </rule>
      </outboundRules>
    </rewrite>
  </system.webServer>
</configuration>

Door hiervan gebruik te maken bied je jouw bezoekers net een beetje meer veiligheid en privacy, doordat “downgrade attacks” worden voorkomen. 


HSTS in Apache .htaccess

Staat jouw website gehost op een Apache-webserver? Dan kun je de volgende regel opnemen voor het terugsturen van een HTTP Strict Transport Security reactieheader: 

Header set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"


HSTS in WordPress

add_action( 'send_headers', 'vevida_add_hsts_header' );
function vevida_add_hsts_header() {
  header( 'Strict-Transport-Security: max-age=31536000; includeSubDomains; preload' );
}


Meer informatie over HTTP Strict-Transport-Security (HSTS)

Wil je graag meer informatie over het HTTP Strict-Transport-Security (HSTS) protocol? Neem dan een kijkje op onderstaande links (sommige artikelen kunnen droog en technisch zijn):


En je vindt nóg meer handige informatie over het aanbieden van HTTPS URL’s in ons artikel SSL voor WordPress. Wist je bijvoorbeeld dat iedere bron die luistert op poort 80 (HTTP) moet redirecten naar dezelfde bron op poort 443 (HTTPS)?


M
Marjolein is the author of this solution article.

Was dit antwoord nuttig? Ja Nee

Feedback versturen
Het spijt ons dat we u niet hebben kunnen helpen. Als u feedback geeft, kunnen we het artikel verbeteren.