CAI Technology
Menu ☰
aegis · · 6 min citire

HSTS: HTTPS-only forțat și HSTS Preload List — anti SSL Stripping în 2026

HSTS forțează browserul să refuze conexiuni HTTP pe domeniul vostru. Cu HSTS Preload List, atacurile SSL Stripping pe rețele publice devin imposibile.

CAI Technology · Ultima revizuire: 09.05.2026
HSTS: HTTPS-only forțat și HSTS Preload List — anti SSL Stripping în 2026

Pe scurt

HSTS (HTTP Strict Transport Security, RFC 6797) e un header HTTP care instruiește browserul să refuze conexiuni HTTP pe acel domeniu pentru o perioadă declarată (max-age). Fără HSTS, atacul SSL Stripping (Marlinspike 2009) este posibil: un atacator în poziție MITM (rețea publică WiFi, ISP compromis) interceptează primul request HTTP al utilizatorului și redirecționează către o variantă fără TLS, livrând conținutul propriu.

Cu HSTS Preload, browserul are baked-in în cod faptul că domeniul e HTTPS-only — atac SSL Stripping inutil chiar și la primul request.

Atacul SSL Stripping pe Public WiFi

Cafenea aglomerată. Atacatorul setează un access point fake cu același SSID ca al cafenelei. Telefoanele clienților se conectează automat. Atacatorul rulează un proxy MITM (sslstrip, mitmproxy) care:

  1. Interceptează GET http://firma.ro (primul request al utilizatorului)
  2. Face request la https://firma.ro în spate (atacator → server real)
  3. Rescrie toate link-urile https:// în http:// în răspuns
  4. Returnează utilizatorului versiunea HTTP plain
  5. Atacatorul vede credențiale, sesiuni, date form în clar

Cu HSTS deja cunoscut de browser (din vizite anterioare), atacul nu funcționează — browserul nici nu trimite HTTP, merge direct HTTPS.

Anatomia headerului HSTS

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

HSTS Preload List — protecția definitivă

Preload List e o listă hardcodată în Chrome, Firefox, Safari, Edge: domeniile listate sunt HTTPS-only de la prima vizită vreodată. Nici un atac SSL Stripping pe primul request.

Submission la https://hstspreload.org/ — gratuit, dar:

Atenție: Reversing din Preload List durează 6-12 luni. Dacă deciziți greșit (ex. un subdomain nu e HTTPS), site-ul vostru e inaccesibil pe acel subdomain timp de luni.

Implementare pas-cu-pas

Pas 1 — Forțați HTTPS pe TOT

Redirect 301 HTTP → HTTPS la nivel server (nginx, Caddy, Apache, Cloudflare). HSTS în browser nu securizează prima conexiune fără preload.

nginx:

server {
    listen 80;
    server_name firma.ro www.firma.ro;
    return 301 https://$host$request_uri;
}

Pas 2 — Adăugați header HTTPS

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

nginx:

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

Caddy: automat dacă e configurat HTTPS (default cu header Strict-Transport-Security adjustabil).

Pas 3 — Test cu max-age scurt întâi (1 lună)

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

(Fără preload deocamdată.) Lasă 30 zile, verificați că niciun subdomain nu e accidental pe HTTP.

Pas 4 — Bump max-age la 2 ani + activă preload

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

Pas 5 — Submit la Preload List

https://hstspreload.org/ → enter domain → verificare automată cerințe → submit. Acceptarea durează 1-3 luni (browser releases).

Subdomenii: paranoia justificată

includeSubDomains aplică pe toate. Verificați că toate subdomeniile sunt HTTPS:

Audit complet înainte: dig pe toate subdomeniile + check fiecare are cert TLS valid.

Confuzii frecvente

“max-age=300 e suficient pentru testare.” — Greșit. HSTS Preload cere ≥31536000. Testarea cu max-age scurt e bună, dar fără submit preload nu sunteți protejat la primul request.

“HSTS îmi rupe staging.” — Doar dacă includeți staging în preload. Soluție: nu submitati staging.firma.ro separat; folosiți staging.firma.local intern doar.

“Am HSTS dar nu mă cunoaște browserul.” — Browser cunoaște HSTS doar după prima vizită successful HTTPS care setează headerul. Pentru protecție de la prima vizită → necesar Preload.

Verificați acum

ARTEMIS verifică prezența HSTS + max-age value + preload eligibility în orice scanare Site (2 EUR).


🔗 Soluții complementare CAI Technology


tehnic@caitech.ro

Începem cu o conversație de 30 de minute.

Audit AI-readiness gratuit pentru companii peste 50 angajați. Răspundem în 24 de ore.