HSTS (HTTP Strict Transport Security)

E-mail & Beveiliging
Een beveiligingskop die browsers dwingt om alleen via HTTPS verbinding te maken met een website, waardoor downgrade-aanvallen worden voorkomen.
← Terug naar Woordenlijst

Wat is HSTS?

HSTS (HTTP Strict Transport Security) is een webbeveiligingsmechanisme dat browsers vertelt dat zij uitsluitend via HTTPS met een website mogen communiceren, nooit via HTTP. Zodra een browser een HSTS-header ziet, zet hij alle toekomstige verzoeken automatisch om naar HTTPS en weigert hij verbinding via gewone HTTP, zelfs wanneer de gebruiker expliciet http://. typt.

Waarom HSTS belangrijk is

Zelfs met een geldig SSL-certificaat bestaan er kwetsbaarheden:

SSL-strippingaanval

1. De gebruiker typt "example.com" zonder https://

2. De aanvaller onderschept het eerste HTTP-verzoek

3. De aanvaller gebruikt een proxy naar HTTPS, maar toont HTTP aan de gebruiker

4. De gebruiker denkt veilig te zijn, terwijl de aanvaller alles kan zien

HSTS voorkomt dit door ervoor te zorgen dat browsers dat eerste HTTP-verzoek nooit uitvoeren.

Voordelen van HSTS

Syntaxis van de HSTS-header

Strict-Transport-Security: max-age=31536000; includeSubDomains; preload

Richtlijnen

RichtlijnBeschrijving
max-ageAantal seconden dat HSTS wordt onthouden (31536000 = 1 jaar)
includeSubDomainsHSTS toepassen op alle subdomeinen
preloadInstemmen met opname in de preloadlijst van browsers

HSTS implementeren

Nginx

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;

Apache

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

Cloudflare

Schakel dit in via SSL/TLS → Edge Certificates → HTTP Strict Transport Security

Express.js

const helmet = require('helmet');

app.use(helmet.hsts({

maxAge: 31536000,

includeSubDomains: true,

preload: true

}));

HSTS-preloadlijst

De HSTS-preloadlijst is een lijst domeinen die hardcoded in browsers staat en uitsluitend via HTTPS mag worden benaderd. Daarmee wordt zelfs de kwetsbaarheid van het eerste HTTP-verzoek geëlimineerd.

Vereisten voor preload

1. Geldig SSL-certificaat

2. Alle HTTP naar HTTPS omleiden

3. HSTS-header met:

- max-age van ten minste 31536000 (1 jaar)

- de richtlijn includeSubDomains

- de richtlijn preload

4. Alle subdomeinen moeten HTTPS ondersteunen

Indienen bij de preloadlijst

1. Vereisten verifiëren: gebruik hstspreload.org voor controle

2. Domein indienen: voer het domein in op hstspreload.org

3. Opname afwachten: browserupdates kunnen weken tot maanden duren

Waarschuwingen voor preload

Preload is praktisch permanent. Verwijdering uit de lijst duurt maanden en vereist browserupdates. Gebruik preload alleen als u zeker weet dat alle subdomeinen HTTPS onbeperkt zullen ondersteunen.

HSTS controleren

Browser DevTools:

1. Open DevTools → tabblad Network

2. Laad de site

3. Controleer de responsheaders op Strict-Transport-Security

Via curl:
curl -I https://example.com | grep -i strict
Via DomScan:
curl "https://domscan.net/v1/health?domain=example.com"

# Reports hasHSTS in security details

Preloadstatus:

Controleer op hstspreload.org of een domein is voorgeladen.

Strategie voor HSTS-implementatie

Fase 1: Korte max-age

Begin met een korte max-age om te testen:

Strict-Transport-Security: max-age=300

Als er iets stukgaat, hebben gebruikers de waarde slechts 5 minuten gecachet.

Fase 2: Duur verhogen

Nadat u hebt bevestigd dat HTTPS overal werkt:

Strict-Transport-Security: max-age=86400

Fase 3: Subdomeinen toevoegen

Zodra alle subdomeinen HTTPS ondersteunen:

Strict-Transport-Security: max-age=2592000; includeSubDomains

Fase 4: Volledige implementatie + preload

Na maanden stabiele werking:

Strict-Transport-Security: max-age=31536000; includeSubDomains; preload

Dien het domein daarna in bij de preloadlijst.

Veelvoorkomende HSTS-problemen

Subdomein zonder HTTPS: includeSubDomains verbreekt dat subdomein Ontwikkelomgevingen: HSTS uit productie kan lokale ontwikkeling breken wanneer het is gecachet CDN- of proxyheaders: zorg dat tussenliggende systemen de HSTS-header niet verwijderen Gemengde inhoud: alle resources moeten HTTPS gebruiken; HSTS repareert geen ingesloten HTTP-resources

HSTS is essentieel voor elke website die gevoelige gegevens verwerkt en wordt sterk aanbevolen voor alle HTTPS-sites.

Pas Deze Kennis Toe

Gebruik de API van DomScan om domeinbeschikbaarheid, gezondheid en meer te controleren.