HSTS is een beveiligingsmechanisme dat gedefinieerd is in RFC 6797 en browsers dwingt om HTTPS te gebruiken voor alle toekomstige verbindingen met een domein, waardoor downgrade-aanvallen en man-in-the-middle-kwetsbaarheden worden voorkomen.
Wanneer een server antwoordt met de header Strict-Transport-Security, slaat de browser het beleid op voor de duur die is opgegeven in de directive max-age (in seconden). Elk vervolgend poging om dat domein via HTTP te openen wordt automatisch geüpgraded naar HTTPS, zelfs als een gebruiker http:// in de adresbalk typt of op een onveilige link klikt.
Header-voorbeeld:
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
De directive includeSubDomains breidt het beleid uit naar alle subdomeinen, en preload stelt het domein in staat om te worden opgenomen in browser-preload-lijsten—ingebakken in Chrome, Firefox, Safari en Edge—zodat HTTPS wordt afgedwongen zelfs bij het eerste bezoek van een gebruiker, voordat de header ooit wordt ontvangen.
Preload-vereisten: Bij gebruik van preload moet max-age minimaal 31536000 (1 jaar) zijn en moet includeSubDomains aanwezig zijn. Domeinen moeten ook handmatig worden ingediend bij de HSTS-preload-lijst voor verificatie.
WarningZonder preload-indiening beschermt HSTS gebruikers alleen nadat zij voor het eerst via HTTPS uw site hebben bezocht. Bij dat eerste bezoek blijven zij kwetsbaar voor downgrade-aanvallen tenzij uw server al het HTTP-verkeer naar HTTPS omleidt voordat de header wordt verstuurd.
HSTS is essentieel voor beveiligingsgevoelige toepassingen en wordt meestal gecombineerd met SSL-certificaten om browsers in veilige verbindingen vast te zetten.