Defaults.Exposed › Ispravci › HSTS (Strict-Transport-Security)
Kako popraviti HSTS (Strict-Transport-Security)
HSTS je jednolinirajska uputa koju vaša web stranica šalje svakom pregledniku: 'uvijek se vraćaj meni putem sigurne, šifrirane veze — nikad nešifrirane.' Bez toga, vaš lokot se može tiho skinuti na dijeljenom Wi-Fi-ju, a prvi posjet vašoj stranici je izložen.
Zaključak za vaše poslovanje: Imati HTTPS (lokot) nije isto kao i provoditi ga. Bez HSTS-a, napadač na istom Wi-Fi-ju kao vaš klijent može tiho degradirati vezu na običan, nešifriran HTTP — hvatajući prijave, podatke kartice i podatke obrasca dok klijent ne vidi ništa pogrešnog. Vaš SSL certifikat, za koji možda i plaćate, zaobiđen je. Popravak je besplatan i osobi koja vodi vašu stranicu traje oko 15 minuta.
Što vas ovo može koštati
- Klijenti na Wi-Fi-ju kafića, hotela, zračne luke ili konferencije mogu imati svoju vezu s vašom stranicom tiho degradiranu i podatke pročitane — bez ikakvog upozorenja na njihovom zaslonu.
- Platili ste za HTTPS i imate lokot, ali bez HSTS-a napadači ga mogu jednostavno zaobići; certifikat daje lažan osjećaj sigurnosti.
- Sam prvi posjet vašoj stranici (prije bilo kojeg preusmjeravanja na HTTPS) je slaba točka na koju napadači ciljaju — HSTS je ono što je zatvara za svaki povratni posjet.
- Sigurnosni upitnik, obrazac cyber-osiguranja ili kontrolna lista kupca iz poduzeća označi 'nema HSTS-a' i blokira posao dok se ne ispravi.
- Postavite vrijednost pogrešno (prekratko) i dobivate najgore od obaju: izgleda konfigurirano, ali pruža gotovo nikakvu stvarnu zaštitu.
Zašto je to važno. HTTPS štiti vezu jednom kad je šifrirana — ali ne prisiljava preglednikeda je koriste. Napadači iskorištavaju tu prazninu s 'SSL strippingom': na bilo kojoj dijeljenioj mreži tiho drže posjetitelja na nesigurnom HTTP-u, čitajući sve. HSTS govori pregledniku da u potpunosti odbije obični HTTP za vašu domenu, na dugo vremena, pa se praznina zatvori nakon prvog posjeta. To je jedno zaglavlje odgovora, besplatno za dodati, a u našem bodovanju vrijedi prave bodove jer nedostajuća ili prekratka vrijednost svim posjetiteljima na javnom Wi-Fi-ju ostavlja izložene.
Što je ovo, jednostavnim riječima
Gotovo sigurno imate HTTPS — mali lokot u adresnoj traci preglednika. Dobro. Ali evo dijela o kojima gotovo nitko nije rečen: imati HTTPS nije isto kao i provoditi ga.
HTTPS čini vezu šifriranom jednom kad preglednik odluči koristiti je. HSTS — skraćeno od HTTP Strict Transport Security — je uputa koja tjesnar preglednik uvijek koristi. To je jedno, nevidljivo zaglavlje koje vaša web stranica šalje svakom posjetitelju koje kaže, u suštini:
“Od sada, za moju domenu, razgovaraj sa mnom samo putem sigurne veze. Nikad nešifrirane. Ne pokušavaj ni.”
Preglednik to pamti i poštuje toliko dugo koliko mu naložite — obično godinu. Nakon prvog sigurnog posjeta posjetitelja, njihov preglednik jednostavno će odbiti učitati vašu stranicu putem običnog, nešifriranog HTTP-a, čak i ako nešto to pokuša prisiliti.
Bez HSTS-a, to pravilo “uvijek koristi sigurnu verziju” ne postoji — a napadači znaju točno kako iskoristiti tu prazninu.
Što vas ovo može koštati
Ovo su realni, svakodnevni scenariji. Nikad ne imenujemo stvarno poduzeće; ovo su ilustracije kako se praznina koristi.
-
Naplata u kafiću. Klijent otvori vašu trgovinu na Wi-Fi-ju kafića i ide na naplatu. Napadač na istoj mreži pokrene besplatan, dobro poznat alat koji drži klijenta na običnom HTTP-u umjesto HTTPS-a. Klijent vidi ono što izgleda kao vaša normalna stranica — nema upozorenja, nema pokvarenog lokota na mjestu gdje bi pogledali — i upiše podatke kartice. Napadač čita svaki pritisak tipke. Vaš SSL certifikat nije učinio ništa, jer veza nikad nije bila dopuštena da postane sigurna.
-
Putujući zaposlenik. Zaposlenik se prijavi u vaš admin panel ili webmail iz hotela ili zračne luke. Isti trik degradiranja uhvati njihovo korisničko ime i lozinku. Sada napadač ima put u vaše poslovanje — ne jer je politika lozinki bila slaba, već jer je stranica za prijavu bila dosežna putem nesigurnog HTTP-a.
-
Posao koji stane. Veći klijent šalje vam standardni sigurnosni upitnik prije potpisa. Jedan redak pita: “Provodi li vaša web stranica HTTPS putem HSTS-a?” Vaš IT kontakt mora odgovoriti “ne,” i nabavni proces pauza dok žurite popraviti besplatnu, 15-minutnu postavku koja sada izgleda kao crvena zastava pred kupcem.
-
Cyber-osiguranje ili provjera usklađenosti. Skeniranje osiguravatelja, ili revizor koji pregledava vašu zaštitu podataka, označi nedostajuće zaglavlje. Enkripcija osobnih podataka eksplicitno je očekivanje pod propisima o zaštiti podataka (GDPR Članak 32), a “imamo certifikat, ali ga ne provodimo” je slabo mjesto na kojemu stajati.
-
Lažni osjećaj sigurnosti. Plaćate za SSL, lokot se prikazuje i svi pretpostavljaju da je stranica sigurna. Uglavnom jest — dok klijent nije na dijeljenim mreži, što je točno kad su najranjiviji i najmanje vjerojatno primijetiti nešto pogrešno.
Crta kroz sve: trošak nije apstraktan. To je stvarna kartica ili prijava klijenta, uhvaćena u najgorem mogućem trenutku, bez ikakvih alarma.
Što je to zapravo
Kad preglednik zatraži stranicu od vaše web stranice, vaš server vraća stranicu plus nekoliko nevidljivih “zaglavlja” — dodatnih uputa koje preglednik čita, ali posjetitelju nikad ne vidi. HSTS je jedno od tih zaglavlja:
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
Tri dijela su važna:
max-age— koliko dugo (u sekundama) preglednik treba pamtiti da prisilno koristi HTTPS.31536000je godinu dana. Ovo je srce: prekratko i jedva pomaže.includeSubDomains— proširi pravilo na svaku poddomenu (shop.,app.,mail.i tako dalje), ne samo na vašu glavnu adresu.preload— prijavite vašu domenu na master listu ugrađenu u preglednikima, pa zaštita vrijedi čak i na prvom zahtjevu posjetitelja, prije nego su ikad vidjeli vašu stranicu.
Zašto “prvi posjet” je važan
HSTS ima jedno inherentno ograničenje: preglednik poštuje pravilo tek nakon što je vidio zaglavlje barem jednom. Dakle, sasvim novi posjetiteljev prvi spoj je i dalje mali prozor izloženosti. Dvije stvari sužuju ga: HTTP-na-HTTPS preusmjeravanje (koje ih brzo dovede na sigurnu verziju) i preload (koji u potpunosti ukloni prozor). Zbog toga potpuni postav pari HSTS s ispravnim preusmjeravanjem.
Kako izgleda ‘dobro’ — i kako se boduje
Naša provjera čita vaše živo zaglavlje i ocjenjuje max-age:
| max-age vrijednost | Što to znači | Rezultat |
|---|---|---|
| 1 godinu ili više (≥ 31536000) | Odlično — preporučena postavka | Pune ocjene |
| 6 mjeseci ili više (≥ 15768000) | Dobro, ali ne puna godinu | Djelomično |
| 1 dan ili više (≥ 86400) | Slabo — prekratko za pouzdano | Nisko / djelomično |
| Ispod 1 dana, ili bez zaglavlja | Praktički bez zaštite | Neuspjeh (visoke ozbiljnosti) |
Dakle, zaglavlje koje postoji, ali je postavljeno na nekoliko minuta, tretira se kao neuspjeh — izgleda konfigurirano, ali ne obavlja posao. Ciljajte na godinu. Provjera također bilježi jesu li includeSubDomains i preload prisutni.
Kako to popraviti (besplatno, ~15 minuta)
Proslijedite ovaj odjeljak onome tko vodi vašu web stranicu — vašoj IT osobi, web programeru ili podršci hostinga. Popravak je besplatan. Jedno zaglavlje je, ili prekidač u vašoj hosting platformi. Nema ničega za kupiti.
Jedno važno pravilo redoslijeda najprije: HSTS je ljepljiv — jednom omogućen, preglednici će odbijati obični HTTP za vašu domenu za puni max-age. Dakle, potvrdite da HTTPS ispravno radi na vašoj glavnoj stranici i svakoj poddomeni prije nego ga omogućite široko. Siguran put je: testirajte s kratkom vrijednošću → potvrdite da se ništa ne pokvari → povišite na godinu.
Korak 1 — Provjerite da HTTPS već svugdje radi
Posjetite svoju stranicu i ključne poddomene putem https:// i potvrdite da se čisto učitavaju s valjanim certifikatom. Potvrdite i da zahtjevi na http:// preusmjeravaju na https://. (Ako ne preusmjeravaju, najprije ispravite HTTP-na-HTTPS preusmjeravanje — HSTS pretpostavlja da je to na mjestu.)
Korak 2 — Dodajte zaglavlje (odaberite svoju platformu)
Cloudflare (ili sličan CDN): Ovo je najlakše. Idite na SSL/TLS → Rubni certifikati → HTTP Strict Transport Security (HSTS) i omogućite ga. Postavite Max-Age na 6 mjeseci ili 12 mjeseci, i omogućite “Primijeni HSTS politiku na poddomene” jednom kad ste sigurni da su sve poddomene na HTTPS-u.
Nginx: dodajte unutar vašeg HTTPS server bloka:
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
Apache: provjerite da je mod_headers omogućen, zatim dodajte u vaš HTTPS virtualni host:
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
Microsoft IIS: dodajte u web.config unutar <customHeaders>:
<add name="Strict-Transport-Security" value="max-age=31536000; includeSubDomains; preload" />
Napomena Google Workspace / Microsoft 365: ovi pokreću vašu e-poštu, ne vaš website hosting — HSTS se postavlja gdje god vaša javna web stranica zapravo živi (vaš CDN, web server ili graditelj stranica), ne u Workspace/365 adminu. Ako je vaša stranica na graditelju poput Squarespaca, Wixa ili Shopifyja, HSTS se obično za vas odrađuje; provjerite SSL/sigurnosne postavke ako naša provjera to označi.
Korak 3 — Testirajte malo, zatim se obvežite
Krenite s max-age=300 (5 minuta). Potvrdite da se stranica i dalje svugdje savršeno učitava. Zatim povišite na max-age=31536000 (godinu). To je postavka s punim ocjenama.
Korak 4 (neobavezno, zlatni standard) — preload
Jednom kad ste sigurni i imate godišnje zaglavlje s includeSubDomains neko vrijeme, možete predati svoju domenu na hstspreload.org da bude ugrađena u preglednikima. Ovo u potpunosti zatvori prozor prvog posjeta. Tretirajte to kao namjernu obvezu — uklanjanje domene s liste je sporo.
Česte greške
- Postavljanje
max-ageprekratko. Vrijednost od nekoliko minuta ili sati izgleda konfigurirano, ali pruža gotovo nikakvu zaštitu — a naša provjera tretira sve ispod dana kao neuspjeh. Koristite godinu. - Uključivanje
includeSubDomainsprije nego su poddomene HTTPS-spremne. Ako poddomene nisu u potpunosti na HTTPS-u, ljepljivo pravilo može ih učiniti nedosežnima za posjetitelje. Najprije svaku poddomenu prebacite na HTTPS. - Dodavanje HSTS-a, ali bez HTTP-na-HTTPS preusmjeravanja. HSTS pretpostavlja da posjetitelji dosežu sigurnu verziju; bez preusmjeravanja, prvi posjet je nepotrebno izložen. Ispravite oboje zajedno.
- Izravno skok na
preloadda budete ‘temeljiti.’ Preload je teško poništiti. Zaradite ga postupno nakon stabilnog godišnjeg zaglavlja — ne žurite s tim. - Pretpostavljanje da lokot znači da ste pokriveni. Lokot i HSTS su različite stvari. Možete imati savršen certifikat i još uvijek ne proći ovu provjeru.
Česta pitanja
Već imamo HTTPS i lokot se prikazuje. Nije li to dovoljno?
Ne — i ovo je jedna najčešća nerazumijevanja. Lokot znači da se veza MOŽE šifrirati; ne prisiljava preglednika da koristi šifriranu verziju. Bez HSTS-a, napadač na istoj mreži može zadržati posjetitelja na običnom HTTP-u (tzv. SSL stripping) i pročitati sve što upišu, dok klijent vidi naizgled normalnu stranicu. HSTS je uputa koja čini 'samo šifrirano' obveznim. HTTPS bez HSTS-a je zaključana vrata koja zapravo nisu zasuna.
Je li ovo skupo ili rizično za uključiti?
Sam popravak je besplatan — jedne je linije na vašem web serveru ili prekidač u vašem CDN-u — i traje oko 15 minuta. Jedno pravo upozorenje: HSTS je ljepljiv. Jednom kad ga preglednik vidi, odbijat će obični HTTP za vašu domenu koliko god ste specificirali. Dakle, morate biti sigurni da HTTPS radi na vašoj glavnoj stranici I svakoj poddomeni prije nego ga omogućite široko. Krenite s kratkom testnom vrijednošću, potvrdite da se ništa ne pokvari, zatim povisitena godinu. Rađeno tim redoslijedom, rizik je zanemariv.
Kako izgleda 'dobro' zapravo?
Maksimalna dob od najmanje godinu dana (31536000 sekundi). Naša provjera dodjeljuje pune ocjene na godinu ili više, djelomične ocjene na šest mjeseci, slabe/djelomične na dan, i tretira sve ispod dana kao praktički nepostojeće. Najjači postav također dodaje includeSubDomains (pokriva shop.vasastranica.com, app.vasastranica.com, itd.) i preload (unosi zaštitu u preglenike pa čak i sam prvi posjet je siguran).
Što je 'preload' i trebamo li ga?
HSTS štiti posjetitelja tek NAKON što je njihov preglednik vidio zaglavlje barem jednom — pa je sasvim novi posjetiteljev prvi zahtjev još uvijek mali prozor izloženosti. HSTS preload lista, ugrađena u Chrome, Firefox, Safari i Edge, zatvara taj prozor unaprijed dostavom vaše domene preglednicima. Neobavezno je i nešto veća obveza (uklanjanje je sporo), ali je zlatni standard. Za većinu malih poduzeća, godišnja max-dob s includeSubDomains već je snažan, siguran rezultat; preload je dodatni korak kad se slegnete.
Koristimo Squarespace / Wix / Shopify — trebamo li uopće nešto napraviti?
Većina potpuno hosteanih graditelja stranica (Squarespace, Wix, Shopify i slični) provodi HTTPS i često automatski postavljaju HSTS za vas — pa biste već mogli prolaziti provjeru bez ničeg. Iznimka je kad koristite prilagođenu domenu ili CDN ispred vaše stranice; tada postavka može propasti kroz pukotine. Pokrenite provjeru: ako prolazi, gotovi ste. Ako označi, popravak je prekidač u SSL/sigurnosnim postavkama vaše platforme, ili jedna linija na vašem CDN-u.
Ako ga ne popravimo, snizuje li to našu ocjenu?
Da. HSTS je bodovana provjera web sigurnosti, ne informativna — nedostajuće ili prekratko zaglavlje košta bodova i ocijenjeno je visoke ozbiljnosti, jer izravno izlaže podatke vaših posjetitelja na dijeljenim mrežama. To je i jedna od najjeftinijih točaka za povratiti: jedno besplatno zaglavlje, oko 15 minuta rada.