HSTS: Skirtumas tarp puslapio versijų

Iš IV pagalba klientams.
Peršokti į: navigacija, paiešką
 
(nerodoma 2 tarpinės versijos, sukurtos to paties naudotojo)
6 eilutė: 6 eilutė:
  
 
Šio mechanizmo esminiai veikimo principai yra:
 
Šio mechanizmo esminiai veikimo principai yra:
# Visos svetainės nuorodos priverstinai pakeičiamos į saugias, pavyzdžiui nuoroda <code><nowiki>http://mano-svetaine.lt/idomus-straipsnis.html</nowiki></code> bus pakeista į <code><nowiki>https://mano-svetaine.lt/idomus-straipsnis.html</nowiki></code> dar prieš pilnai užkraunant visą svetainę.
+
 
# Jei saugus susijungimas negali būti užmegztas (serveryje nėra įdiegtas SSL sertifikatas), tada pateikiamas klaidos pranešimas.  
+
#Visos svetainės nuorodos priverstinai pakeičiamos į saugias, pavyzdžiui nuoroda <code><nowiki>http://mano-svetaine.lt/idomus-straipsnis.html</nowiki></code> bus pakeista į <code><nowiki>https://mano-svetaine.lt/idomus-straipsnis.html</nowiki></code> dar prieš pilnai užkraunant visą svetainę.
 +
#Jei saugus susijungimas negali būti užmegztas (serveryje nėra įdiegtas SSL sertifikatas), tada pateikiamas klaidos pranešimas.
 +
 
 
HSTS mechanizmas pilnai apsaugo nuo trečių šalių įsikišimo tarp lankytojo ir serverio.
 
HSTS mechanizmas pilnai apsaugo nuo trečių šalių įsikišimo tarp lankytojo ir serverio.
 
Vienintelis minusas yra tai, kad interneto naršyklėse, per kurias lankytojai pirmą kartą atidarys atitinkamą interneto svetainę, pirmojo susijungimo metu dar gali būti bandoma svetainę pasiekti HTTP protokolu. Norint išspręsti šią problemą, galima įtraukti savo svetainę į specialų HSTS mechanizmą naudojančių svetainių sąrašą ([https://hstspreload.org/ hstspreload.org])
 
Vienintelis minusas yra tai, kad interneto naršyklėse, per kurias lankytojai pirmą kartą atidarys atitinkamą interneto svetainę, pirmojo susijungimo metu dar gali būti bandoma svetainę pasiekti HTTP protokolu. Norint išspręsti šią problemą, galima įtraukti savo svetainę į specialų HSTS mechanizmą naudojančių svetainių sąrašą ([https://hstspreload.org/ hstspreload.org])
27 eilutė: 29 eilutė:
 
  header("Antraštės-pavadinimas-ir-naudojamos-reikšmės");
 
  header("Antraštės-pavadinimas-ir-naudojamos-reikšmės");
 
  }
 
  }
 
'''Parametrų paaiškinimas:'''
 
* "max-age" leidžia nurodyti norimą laiką, "31536000" - 12 mėnesių arba "63072000" - 24 mėnesiai.
 
* "includeSubdomains" reiškia, kad ir visi subdomenai bus pasiekiami HTTPS prievadu.
 
* "preload" nurodykite, jei norite įtraukti svetainę į HSTS mechanizmą naudojančių svetainių sąrašą .
 
  
 
'''Pastaba:''' jeigu Jūsų svetainė yra parašyta su '''HTML''' programiniu kodu, šis kodas turi būti aprašytas '''.htaccess''' faile. Naudojami tokie patys pagrindiniai parametrai, tačiau naudojama ir papildoma šiam failui reikalinga sintaksė, pavyzdžiui:
 
'''Pastaba:''' jeigu Jūsų svetainė yra parašyta su '''HTML''' programiniu kodu, šis kodas turi būti aprašytas '''.htaccess''' faile. Naudojami tokie patys pagrindiniai parametrai, tačiau naudojama ir papildoma šiam failui reikalinga sintaksė, pavyzdžiui:
  
 
  Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" env=HTTPS
 
  Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" env=HTTPS
 +
 +
'''Parametrų paaiškinimas:'''
 +
 +
*"max-age" leidžia nurodyti norimą laiką, "31536000" - 12 mėnesių arba "63072000" - 24 mėnesiai.
 +
*"includeSubdomains" reiškia, kad ir visi subdomenai bus pasiekiami HTTPS prievadu.
 +
*"preload" nurodykite, jei norite įtraukti svetainę į HSTS mechanizmą naudojančių svetainių sąrašą .
  
 
Papildomai turi būti sukurtas automatinis peradresavimą į HTTPS protokolą. Šį peradresavimą esame aprašę kitoje savo [[Automatinis peradresavimas i HTTPS protokola|pamokoje]].
 
Papildomai turi būti sukurtas automatinis peradresavimą į HTTPS protokolą. Šį peradresavimą esame aprašę kitoje savo [[Automatinis peradresavimas i HTTPS protokola|pamokoje]].
  
Patikrinimui ar '''HSTS''' buvo įvestas sėkmingai, galite naudoti šią patikros formą: https://securityheaders.com/
+
Patikrinimui ar '''HSTS''' buvo įvestas sėkmingai, galite naudoti šią patikros formą: [https://securityheaders.com/ https://securityheaders.com/]
 +
 
 +
'''Pavyzdys:'''
 +
 
 +
jeigu į svetainės programinį kodą saugumo antraštės (detaliau apie tai pamokoje: [[HTTP saugumo antraštės]]):
 +
 
 +
* X-Content-Type-Options
 +
* X-Frame-Options
 +
* Strict-Transport-Security
 +
* Referrer-Policy
 +
* Permissions-Policy
 +
* Content-Security-Policy
 +
 
 +
buvo įterptos korektiškai, tuomet svetainės tikrinimo metu (įrankyje [https://securityheaders.com securityheaders.com]) bus matomas rezultatas:
 +
 
 +
[[Vaizdas:HSTS_yra.png|600px]]
 +
 
 +
Priešingu atveju, jeigu antraštės nėra įterptos (arba įterptos nekorektiškai), įrankis pateiks šį rezultatą:
 +
 
 +
[[Vaizdas:HSTS_nera.png|600px]]
  
 
[[Kategorija:Serverio_ir_PHP_nustatymai]]
 
[[Kategorija:Serverio_ir_PHP_nustatymai]]

Dabartinė 14:44, 20 rugpjūčio 2025 versija

HTTP Strict Transport Security (HSTS) - interneto svetainių saugumo mechanizmas, skirtas apsaugoti svetainę nuo duomenų nutekėjimo. Šis mechanizmas leidžia svetainei nurodyti, kad interneto naršyklės turi ją atidaryti tik saugiu HTTPS protokolu ir negali užmegzti susijungimo HTTP protokolu.

Veikimas

Svetainės savininkas HTTP antraščių pagalba gali nurodyti, kaip ateityje interneto naršyklėms reikėtų užmegzti ryšį su jo svetaine. Pavyzdžiui, nurodžius antraštę Strict-Transport-Security: max-age=31536000 - tai reikš, kad ateinančias 31536000 sekundžių (365 dienas) visos naršyklės su svetaine ryšį turės užmegzti tik HTTPS protokolu.

Šio mechanizmo esminiai veikimo principai yra:

  1. Visos svetainės nuorodos priverstinai pakeičiamos į saugias, pavyzdžiui nuoroda http://mano-svetaine.lt/idomus-straipsnis.html bus pakeista į https://mano-svetaine.lt/idomus-straipsnis.html dar prieš pilnai užkraunant visą svetainę.
  2. Jei saugus susijungimas negali būti užmegztas (serveryje nėra įdiegtas SSL sertifikatas), tada pateikiamas klaidos pranešimas.

HSTS mechanizmas pilnai apsaugo nuo trečių šalių įsikišimo tarp lankytojo ir serverio. Vienintelis minusas yra tai, kad interneto naršyklėse, per kurias lankytojai pirmą kartą atidarys atitinkamą interneto svetainę, pirmojo susijungimo metu dar gali būti bandoma svetainę pasiekti HTTP protokolu. Norint išspręsti šią problemą, galima įtraukti savo svetainę į specialų HSTS mechanizmą naudojančių svetainių sąrašą (hstspreload.org)

Įgyvendinimas

SVARBU - prieš išsaugodami HSTS parametrus įsitikinkite, kad domenas bei naudojami subdomenai palaiko HTTPS sertifikatą. HSTS parametrai po įvedimo svetainėje būna išsaugomi naršyklėje globaliai. Gali užtrukti kelis mėnesiui kol naršyklė atliks atnaujinimą ir priverstinai nebevykdys peradresavimo į HTTPS protokolą. Tol kol HSTS įrašas nebus pašalinamas iš naršyklės bus atliekamas priverstinį peradresavimas ir Jūsų svetainė nebus atvaizduojama.

Norėdami įjungti HSTS savo svetainėje, rekomenduotume savo svetainės faile (-uose) su PHP programiniu kodu nurodyti žemiau esantį kodą. Šis kodas turėtų būti įterptas į failą, kuris visada yra užkraunamas naršant po Jūsų svetainę:

<?php
 header("Antraštės-pavadinimas-ir-naudojamos-reikšmės");
?>

Jei naudojate turinio valdymo sistemą, pvz. "Wordpress", Jums reikės koreguoti dizaino temos "functions.php" failą (domains/<jusu_domenas.lt>/public_html/wp-content/themes/<temos_pavadinimas>/functions.php), jo apačioje pridedant žemiau nurodytą kodą ir jame įterpiant norimą antraštę, pvz.:

add_action('send_headers', 'security_headers');
function security_headers() {
header("Antraštės-pavadinimas-ir-naudojamos-reikšmės");
}

Pastaba: jeigu Jūsų svetainė yra parašyta su HTML programiniu kodu, šis kodas turi būti aprašytas .htaccess faile. Naudojami tokie patys pagrindiniai parametrai, tačiau naudojama ir papildoma šiam failui reikalinga sintaksė, pavyzdžiui:

Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" env=HTTPS

Parametrų paaiškinimas:

  • "max-age" leidžia nurodyti norimą laiką, "31536000" - 12 mėnesių arba "63072000" - 24 mėnesiai.
  • "includeSubdomains" reiškia, kad ir visi subdomenai bus pasiekiami HTTPS prievadu.
  • "preload" nurodykite, jei norite įtraukti svetainę į HSTS mechanizmą naudojančių svetainių sąrašą .

Papildomai turi būti sukurtas automatinis peradresavimą į HTTPS protokolą. Šį peradresavimą esame aprašę kitoje savo pamokoje.

Patikrinimui ar HSTS buvo įvestas sėkmingai, galite naudoti šią patikros formą: https://securityheaders.com/

Pavyzdys:

jeigu į svetainės programinį kodą saugumo antraštės (detaliau apie tai pamokoje: HTTP saugumo antraštės):

  • X-Content-Type-Options
  • X-Frame-Options
  • Strict-Transport-Security
  • Referrer-Policy
  • Permissions-Policy
  • Content-Security-Policy

buvo įterptos korektiškai, tuomet svetainės tikrinimo metu (įrankyje securityheaders.com) bus matomas rezultatas:

HSTS yra.png

Priešingu atveju, jeigu antraštės nėra įterptos (arba įterptos nekorektiškai), įrankis pateiks šį rezultatą:

HSTS nera.png