Defaults.Exposed

Defaults.ExposedIspravci › 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

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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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:

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čiRezultat
1 godinu ili više (≥ 31536000)Odlično — preporučena postavkaPune ocjene
6 mjeseci ili više (≥ 15768000)Dobro, ali ne puna godinuDjelomično
1 dan ili više (≥ 86400)Slabo — prekratko za pouzdanoNisko / djelomično
Ispod 1 dana, ili bez zaglavljaPraktički bez zaštiteNeuspjeh (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

Č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.