Kalo te përmbajtja
SEO Analyzer

Siguri

Koka Strict-Transport-Security (HSTS)

Koka që e detyron shfletuesin të përdorë vetëm HTTPS për një domain; mjeti kontrollon vetëm praninë e saj.

Çfarë është

HSTS i thotë shfletuesit: për këtë domain, përdor gjithnjë HTTPS, edhe nëse përdoruesi shkruan http:// ose klikon një lidhje HTTP.

Shfletuesi e mban këtë rregull për aq sekonda sa thotë max-age dhe e zbaton para se të dërgojë asnjë kërkesë. Pra ridrejtimi nuk ndodh më te serveri — ndodh brenda shfletuesit, dhe asnjë paketë nuk niset mbi HTTP.

Direktiva includeSubDomains e shtrin rregullin te të gjitha nëndomainet. preload e fut domainin në një listë të integruar brenda vetë shfletuesve, që vlen edhe për vizitën e parë.

Pse ka rëndësi

Pa HSTS mbetet një dritare e vogël por e vërtetë: kërkesa e parë. Kur dikush shkruan shembull.com në shiritin e adresës, shfletuesi provon http:// dhe pret ridrejtimin. Ajo kërkesë e parë udhëton e pambrojtur.

Në atë çast, kush kontrollon rrjetin mund ta ndërpresë ridrejtimin dhe ta mbajë vizitorin mbi HTTP pa e vënë re — një sulm i njohur dhe i automatizuar prej vitesh. Vizitori sheh një faqe që duket e njëjtë, pa dryn, dhe shkruan fjalëkalimin.

HSTS e mbyll atë dritare për çdo vizitë pas të parës. Me preload, edhe për të parën.

Por ka një kosto që duhet kuptuar para se ta ndezësh: rregulli nuk hiqet dot shpejt. Nëse vendos max-age një vit dhe pastaj HTTPS-ja prishet, vizitorët e mëparshëm nuk arrijnë dot te sajti fare.

Si rregullohet

# fillo me një vlerë të shkurtër, për ta provuar
Strict-Transport-Security: max-age=300

# pasi gjithçka punon, kaloje te vlera e plotë
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload

Hapat, me këtë radhë:

1. Sigurohu që çdo nëndomain punon mbi HTTPS, përfshirë ato që i ke harruar. 2. Vendos `max-age` të shkurtër (disa minuta) dhe testo. 3. Rrite gradualisht te një ditë, një javë, një vit. 4. Shto `includeSubDomains` vetëm pasi të jesh i sigurt për të gjithë. 5. `preload` në fund, dhe vetëm nëse je i vendosur — heqja nga lista merr muaj.

Koka ka efekt vetëm mbi HTTPS; e dërguar mbi HTTP shpërfillet.

Si e mat ky mjet

SecurityAnalyzer::checkSecurityHeaders() (services/SecurityAnalyzer.php:90) kalon nëpër një tabelë me gjashtë koka (:92–99). Rreshti për këtë kokë është services/SecurityAnalyzer.php:93.

Për secilën kontrollohet vetëm nëse çelësi strict-transport-security ekziston te kokat e përgjigjes dhe nuk është bosh (:103). Kur ekziston, jepet konstatim i kaluar me vlerën e plotë të kokës (:105); kur mungon, jepet konstatim me tekstin e ndreqjes (:109).

Kjo kokë është në grupin e rëndë: mungesa e saj jep paralajmërim me ndikim të lartë (services/SecurityAnalyzer.php:107).

Çfarë NUK e mat

Kontrolli mat praninë e kokës, jo vlerën e saj. Çdo vlerë, sado e dobët ose e pakuptimtë, kalon si e rregullt — kjo është kufizimi kryesor dhe vlen për të gjashtë kokat e sigurisë.

Për HSTS-në kjo është veçanërisht e rëndësishme: max-age=0 — që e çaktivizon HSTS-në — raportohet si kokë e vendosur dhe kontrolli kalon. Njësoj një max-age=60, që jep mbrojtje praktikisht zero.

Nuk kontrollohet as prania e includeSubDomains, as preload, as nëse koka dërgohet vërtet mbi HTTPS. Dhe matet vetëm përgjigja e një faqeje të vetme.

Kodi që e kryen matjen

  • services/SecurityAnalyzer.php:90SecurityAnalyzer::checkSecurityHeaders
  • services/SecurityAnalyzer.php:93strict-transport-security

Standardi