Defaults.Exposed › Rešenja › HSTS (Strict-Transport-Security)
Kako popraviti HSTS (Strict-Transport-Security)
HSTS je jednolinijska instrukcija koju vaš sajt daje svakom pretraživaču: 'uvek se vrati kod mene putem sigurne, šifrovane veze — nikad nesigurne.' Bez njega, vaš katanac može biti tiho uklonjen na zajedničkom WiFi-ju, a i sama prva posjeta vašem sajtu je izložena.
Suština za vaše poslovanje: Imanje HTTPS-a (katanca) nije isto što i njegova primjena. Bez HSTS-a, napadač na istom WiFi-ju kao vaš kupac može tiho degradirati vezu na običan, nešifrovan HTTP — hvatajući prijave, kartične podatke i podatke forme dok kupac ne vidi ništa loše. Vaš SSL sertifikat, za koji možda plaćate, biva zaobiđen. Popravka je besplatna i traje oko 15 minuta za ko god pokreće vaš sajt.
Šta vam ovo može koštati
- Kupci na kafićkom, hotelskom, aerodromskom ili konferencijskom WiFi-ju mogu imati svoju vezu s vašim sajtom tiho degradiranu i njihove podatke pročitane — bez ikakvog upozorenja na ekranu.
- Platili ste za HTTPS i imate katanac, ali bez HSTS-a napadači mogu jednostavno zaobići; sertifikat daje lažan osjećaj sigurnosti.
- Prva posjeta vašem sajtu (pre svakog preusmjeravanja na HTTPS) je slaba tačka na koju napadači ciljaju — HSTS je ono što je zatvara za svaku buduću posjetu.
- Bezbednosni upitnik, cyber-osiguranje ili lista za provjeru enterprise kupca flaguje 'nema HSTS-a' i zaustavlja posao dok se ne popravi.
- Postavite vrijednost pogrešno (previše kratku) i dobijate najgore od oba: izgleda konfigurisano, ali pruža gotovo nikakvu stvarnu zaštitu.
Zašto je to važno. HTTPS štiti vezu jednom kad je šifrovana — ali ne prisiljava pretraživače da je koriste. Napadači iskorišćavaju tu prazninu s 'SSL strippingom': na bilo kojoj zajedničkoj mreži tiho drže posjetioca na nesigurnom HTTP-u, čitajući sve. HSTS govori pretraživaču da odbije običan HTTP za vaš domen u potpunosti, dugo vremena, pa se praznina zatvori nakon prve posjete. To je jedan response header, besplatan za dodavanje, a u našem bodovanju vrijedi prave bodove jer nedostajuća ili prekratka vrijednost ostavlja svakog posjetioca na javnom WiFi-ju izloženim.
Šta je ovo, jednostavnim rečima
Gotovo sigurno imate HTTPS — mali katanac u traci pretraživača. Dobro. Ali evo dijela koji skoro niko ne kaže: imanje HTTPS-a nije isto što i njegova primjena.
HTTPS čini vezu šifriranom jednom kad se pretraživač odluči da je koristi. HSTS — skraćenica za HTTP Strict Transport Security — je instrukcija koja čini da pretraživač uvek koristi. To je jedna, nevidljiva linija koju vaš sajt šalje svakom posjetiocu koja u suštini kaže:
“Od sada, za moj domen, razgovaraj sa mnom samo putem sigurne veze. Nikad nesigurne. Ne pokušavaj ni.”
Pretraživač to pamti i poštuje onoliko dugo koliko mu kažete — tipično godinu dana. Nakon prve sigurne posjete posjetioca, njihov pretraživač će jednostavno odbiti učitati vaš sajt putem običnog, nešifrovanog HTTP-a, čak i ako nešto pokušava to prisiliti.
Bez HSTS-a, to pravilo “uvek koristi sigurnu verziju” ne postoji — a napadači znaju tačno kako da iskoriste tu prazninu.
Šta vam ovo može koštati
Ovo su realistični, svakodnevni scenariji. Nikad ne navodimo pravo preduzeće; ovo su ilustracije kako se praznina koristi.
-
Checkout u kafiću. Kupac otvori vaš shop na kafićkom WiFi-ju i krene na checkout. Napadač na istoj mreži pokreće besplatan, dobro poznat alat koji drži kupca na običnom HTTP-u umjesto HTTPS-a. Kupac vidi ono što izgleda kao vaš normalni sajt — bez upozorenja, bez pokvarenog katanca na mestu gdje bi gledali — i upiše podatke kartice. Napadač čita svaki pritisak tipke. Vaš SSL sertifikat nije ništa uradio, jer veza nikad nije mogla postati sigurna.
-
Zaposleni koji putuje. Zaposleni se prijavi na vaš admin panel ili webmail iz hotela ili aerodroma. Isti trik degradiranja hvata korisničko ime i lozinku. Sada napadač ima ulaz u vaš posao — ne zato što je politika lozinki bila slaba, već zato što je stranica za prijavu bila dostupna putem nesigurnog HTTP-a.
-
Posao koji zastaje. Veći kupac vam šalje standardni bezbednosni upitnik pre potpisivanja. Jedan red pita: “Da li vaš sajt primjenjuje HTTPS putem HSTS-a?” Vaš IT kontakt mora odgovoriti “ne,” i nabavni proces se zaustavi dok žurite da popravite besplatno, 15-minutno podešavanje koje sada izgleda kao crvena zastava pred kupcem.
-
Cyber-osiguranje ili compliance provjera. Skeniranje osiguravača, ili revizor koji pregleda vašu zaštitu podataka, flaguje nedostajući header. Enkripcija ličnih podataka je eksplicitno očekivanje prema propisima o zaštiti podataka (GDPR Član 32), a “imamo sertifikat, ali ga ne primjenjujemo” je slabo mjesto na kom stajati.
-
Lažan osjećaj sigurnosti. Plaćate za SSL, katanac prikazuje i svi pretpostavljaju da je sajt siguran. Uglavnom je — sve dok kupac nije na zajedničkoj mreži, što je tačno kad su najranjiviji i najmanje vjerovatno da će primijetiti da je nešto pogrešno.
Nit: trošak nije apstraktan. To je pravi kupčev broj kartice ili prijava, snimljeni u najgorem mogućem trenutku, bez da ikakav alarm zvoni.
Šta je to zapravo
Kad pretraživač traži stranicu od vašeg sajta, vaš server šalje natrag stranicu plus neke nevidljive “headere” — dodatne instrukcije koje pretraživač čita, ali posjetilac nikad ne vidi. HSTS je jedan od tih headera:
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
Tri dijela su bitna:
max-age— koliko dugo (u sekundama) pretraživač treba pamtiti da prisili HTTPS.31536000je jedna godina. Ovo je srce toga: prekratko i jedva pomaže.includeSubDomains— proširite pravilo na svaki subdomen (shop.,app.,mail.itd.), ne samo vašu glavnu adresu.preload— prijavite vaš domen na glavnu listu ugrađenu u pretraživače, pa zaštita važi čak i za sasvim prvu posjetu posjetioca, pre nego što su ikad vidjeli vaš sajt.
Zašto je “prva posjeta” bitna
HSTS ima jedno inherentno ograničenje: pretraživač poštuje pravilo tek nakon što vidi header barem jednom. Dakle sasvim nova posjeta posjetioca i dalje je mali prozor izloženosti. Dvije stvari ga sužavaju: HTTP-na-HTTPS preusmjeravanje (koje ih brzo stavlja na sigurnu verziju) i preload (koji potpuno uklanja prozor). Zbog toga se kompletna postavka HSTS-a kombinuje s ispravnim preusmjeravanjem.
Kako izgleda “dobro” — i kako se boduje
Naša provjera čita vaš živi header i ocjenjuje max-age:
| max-age vrijednost | Šta znači | Rezultat |
|---|---|---|
| 1 godina ili više (≥ 31536000) | Odlično — preporučena postavka | Puni bodovi |
| 6 meseci ili više (≥ 15768000) | Dobro, ali ne puna godina | Djelomičan |
| 1 dan ili više (≥ 86400) | Slabo — prekratko za pouzdanost | Nisko / djelomičan |
| Ispod 1 dana, ili nema headera | Efektivno nema zaštite | Pad (visoka ozbiljnost) |
Dakle header koji postoji, ali je postavljen na nekoliko minuta, tretira se kao pad — izgleda konfigurisano, ali ne obavlja posao. Ciljajte na godinu dana. Provjera također bilježi da li su includeSubDomains i preload prisutni.
Kako popraviti (besplatno, ~15 minuta)
Prosledite ovaj odeljak ko god pokreće vaš sajt — vašoj IT osobi, web developeru ili podršci hostinga. Popravka je besplatna. To je jedan header, ili toggle u vašoj hosting platformi. Nema ničeg za kupiti.
Jedna važna napomena o redoslijedu na prvom mestu: HSTS je ljepljiv — jednom kad je omogućen, pretraživači će odbijati obični HTTP za vaš domen tokom punog max-age. Dakle potvrdite da HTTPS ispravno funkcioniše na vašem glavnom sajtu i svakom subdomenu pre nego što ga uključite. Siguran put je: testirajte s kratkom vrijednošću → potvrdite da se ništa ne pokvari → podignite na godinu dana.
Korak 1 — Pobrinite se da HTTPS već radi svugdje
Posjetite vaš sajt i ključne subdomene putem https:// i potvrdite da se čisto učitavaju s validnim sertifikatom. Potvrdite i da obični http:// zahtjevi preusmjeravaju na https://. (Ako ne, ispravite HTTP-na-HTTPS preusmjeravanje prvo — HSTS pretpostavlja da je to na snazi.)
Korak 2 — Dodajte header (odaberite platformu)
Cloudflare (ili sličan CDN): Ovo je najlakše. Idite u SSL/TLS → Edge Certificates → HTTP Strict Transport Security (HSTS) i omogućite ga. Postavite Max-Age na 6 ili 12 meseci i omogućite “Apply HSTS policy to subdomains” jednom kad ste sigurni da su svi subdomeni na HTTPS-u.
Nginx: dodajte unutar vašeg HTTPS server bloka:
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
Apache: osigurajte da je mod_headers omogućen, zatim dodajte vašem HTTPS virtual hostu:
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 za Google Workspace / Microsoft 365: ovi pokreću vaš imejl, a ne vaš web hosting — HSTS se postavlja gdje god vaš javni sajt zapravo živi (vaš CDN, web server ili graditelj sajtova), a ne u Workspace/365 admin panelu. Ako je vaš sajt na graditelju poput Squarespace-a, Wix-a ili Shopify-ja, HSTS se obično za vas rukuje; provjerite njihova SSL/bezbednosna podešavanja ako naša provjera to flaguje.
Korak 3 — Testirajte malo, zatim se obavežite
Počnite s max-age=300 (5 minuta). Potvrdite da se sajt i dalje svuda savršeno učitava. Zatim ga podignite na max-age=31536000 (godinu dana). To je postavka s punim bodovima.
Korak 4 (opciono, zlatni standard) — preload
Jednom kad ste sigurni i koristite jednogodišnji header s includeSubDomains neko vreme, možete podnijeti vaš domen na hstspreload.org da bude upečen u pretraživače. Ovo potpuno zatvara prozor prve posjete. Tretirajte ga kao svjesnu obavezu — uklanjanje domena s liste je sporo.
Česte greške
- Postavljanje
max-ageprekratko. Vrijednost od nekoliko minuta ili sati izgleda konfigurisano, ali pruža gotovo nikakvu zaštitu — a naša provjera tretira bilo šta ispod dana kao pad. Koristite godinu. - Uključivanje
includeSubDomainspre nego što su subdomeni HTTPS-ready. Ako subdomen nije u potpunosti na HTTPS-u, ljepljivo pravilo može ga učiniti nedostupnim posjetiocima. Prvo postavite sve subdomene na HTTPS. - Dodavanje HSTS-a, ali bez HTTP-na-HTTPS preusmjeravanja. HSTS pretpostavlja da posjetioci dostignu sigurnu verziju; bez preusmjeravanja, prva posjeta je nepotrebno izložena. Ispravite oboje zajedno.
- Skakanje odmah na
preloadda biste bili “temeljiti”. Preload je teško poništiti. Zaslužite ga postepeno nakon stabilnog jednogodišnjeg headera — ne žurite s njim. - Pretpostavljanje da vas katanac pokriva. Katanac i HSTS su različite stvari. Možete imati savršen sertifikat i i dalje pasti ovu provjeru.
Često postavljana pitanja
Već imamo HTTPS i prikazuje se katanac. Zar to nije dovoljno?
Ne — i ovo je daleko najčešći nesporazum. Katanac znači da veza MOŽE biti šifrovana; ne prisiljava pretraživače da koriste šifrovanu verziju. Bez HSTS-a, napadač na istoj mreži može zadržati posjetioca na običnom HTTP-u (tzv. SSL stripping) i čitati sve što upiše, dok kupac vidi sasvim normalan izgled sajta. HSTS je instrukcija koja čini 'samo šifrovano' obaveznim. HTTPS bez HSTS-a je zaključana vrata koja zapravo nisu zaključana.
Je li ovo skupo ili rizično za uključivanje?
Sama popravka je besplatna — to je jedna linija u vašem web serveru ili toggle u vašem CDN-u — i traje oko 15 minuta. Jedna prava napomena: HSTS je 'ljepljiv'. Jednom kad ga pretraživač vidi, odbijat će obični HTTP za vaš domen onoliko koliko ste naznačili. Dakle morate biti sigurni da HTTPS funkcioniše na vašem glavnom sajtu I svakom subdomenu pre nego što ga široko omogućite. Počnite s kratkom test vrijednošću, potvrdite da se ništa ne pokvari, zatim podignite na godinu dana. Urađeno tim redosledom, rizik je zanemariv.
Kako zapravo izgleda 'dobro'?
max-age od barem godinu dana (31536000 sekundi). Naša provjera dodjeljuje pune bodove na godini dana ili više, djelomične bodove na šest meseci, slab/djelomičan na jedan dan, i tretira bilo šta ispod jednog dana kao efektivno odsutno. Najjača postavka dodaje i includeSubDomains (pokriva shop.vasadomena.com, app.vasadomena.com itd.) i preload (peče zaštitu u pretraživače da čak i sasvim prva posjeta bude sigurna).
Šta je 'preload' i trebamo li to?
HSTS štiti posjetioca tek NAKON što mu pretraživač vidi header barem jednom — dakle prva posjeta potpuno novog posjetioca i dalje je mali prozor. HSTS preload lista, ugrađena u Chrome, Firefox, Safari i Edge, zatvara taj prozor tako što šalje vaš domen u pretraživače unaprijed. Opciono je i nešto veća obaveza (uklanjanje je sporo), ali je zlatni standard. Za većinu malih preduzeća, jednogodišnji max-age s includeSubDomains je već jak, siguran rezultat; preload je dodatni korak jednom kad ste se smjestili.
Na Squarespace-u / Wix-u / Shopify-ju smo — trebamo li išta raditi?
Većina potpuno hostovanih graditelja sajtova (Squarespace, Wix, Shopify i slično) primjenjuje HTTPS i često postavlja HSTS za vas automatski — pa možda već prolazite bez ikakvog rada. Izuzetak je kad koristite prilagođeni domen ili CDN ispred sajta; tada podešavanje može ispasti kroz pukotine. Pokrenite provjeru: ako prolazi, gotovi ste. Ako flaguje, popravka je toggle u podešavanjima SSL/bezbednosti vaše platforme, ili jedna linija u vašem CDN-u.
Ako ne popravimo, snižava li nam ocjenu?
Da. HSTS je bodovana provjera web bezbednosti, ne informativna — nedostajući ili prekratki header košta bodove i ocjenjen je kao visoka ozbiljnost, jer direktno izlaže podatke vaših posjetioca na zajedničkim mrežama. Takođe je jedan od najjeftinijih bodova za povratiti: jedan besplatan header, oko 15 minuta rada.