Kalo te përmbajtja
SEO Analyzer

Siguri

Ridrejtime me protokoll të përzier

Zinxhir që kalon midis HTTP dhe HTTPS; çdo hop mbi HTTP është i pambrojtur.

Çfarë është

Një zinxhir me protokoll të përzier kalon nga HTTPS te HTTP dhe kthehet, ose e nis rrugën me disa hapa mbi HTTP para se të mbërrijë te versioni i sigurt.

Shembull tipik: http://shembull.comhttp://www.shembull.comhttps://www.shembull.com. Dy hapa, dhe i pari kalon i pambrojtur nëpër rrjet.

Kjo ndodh kur rregullat e ridrejtimit u shkruan veç: një për www, një për HTTPS, dhe askush nuk i bashkoi. Rezultati punon, prandaj askush nuk e prek.

Pse ka rëndësi

Çdo hop mbi HTTP është një kërkesë e lexueshme dhe e ndryshueshme nga kushdo midis vizitorit dhe serverit.

Sulmi konkret është i njohur: një ndërhyrës në rrjet e kap hopin e pambrojtur dhe e ndryshon ridrejtimin që të çojë diku tjetër, ose e mban vizitorin mbi HTTP për gjithë sesionin. Vizitori nuk sheh asnjë paralajmërim, sepse ai nuk arriti kurrë te versioni i sigurt.

Edhe pa sulm, ka kosto: çdo hop shtesë është një udhëtim vajtje-ardhje, dhe kalimi midis protokolleve kërkon një shtrëngim të ri duarsh TLS.

HSTS-ja e zgjidh problemin për vizitat pas të parës, por jo për të parën — përveç nëse domaini është në listën e parangarkuar.

Pra ndreqja e vërtetë është te rregullat: një hop i vetëm, drejt e te destinacioni i sigurt.

Si rregullohet

# një hop i vetëm: HTTP dhe www → HTTPS pa www
server {
  listen 80;
  server_name shembull.com www.shembull.com;
  return 301 https://shembull.com$request_uri;
}
server {
  listen 443 ssl;
  server_name www.shembull.com;
  return 301 https://shembull.com$request_uri;
}

Hapat:

  • Bashko rregullat. Skema dhe hosti duhet të zgjidhen në një hop të vetëm.
  • Kurrë mos ridrejto nga HTTPS te HTTP.
  • Shto HSTS pasi zinxhiri të jetë i pastër, jo para.
  • Kontrollo çdo variant: me dhe pa www, me dhe pa vijë të fundit, me dhe pa https.
  • Ndrysho lidhjet e brendshme dhe të jashtme që të tregojnë drejtpërdrejt te forma përfundimtare.

Si e mat ky mjet

Te RedirectAnalyzer::traceChain() (services/RedirectAnalyzer.php:74), gjatë ndjekjes së zinxhirit vendoset flamuri has_mixed_protocol kur skemat e hopave nuk janë të njëjta; ai kthehet te services/RedirectAnalyzer.php:168.

Te analyze() (:49), kur ai flamur është i vërtetë, jepet paralajmërim me ndikim mesatar dhe zbriten 10 pikë (:51).

Çfarë NUK e mat

Flamuri ngrihet kur zinxhiri përmban skema të përziera, por konstatimi nuk dallon drejtimin. Një zinxhir http → https — pra ridrejtimi i saktë dhe i dëshiruar — mund ta ngrejë të njëjtin flamur si një zinxhir https → http, që është vërtet i rrezikshëm.

Për këtë arsye konstatimi duhet lexuar bashkë me zinxhirin e plotë, jo më vete: shiko cilët hopa janë mbi HTTP dhe në çfarë rendi.

Numri i hopave të pambrojtur nuk raportohet, prandaj një zinxhir me tre hopa HTTP duket njësoj si një me një.

Kontrolli kërkon rrjet dhe nuk është i riprodhueshëm; ky analizues nuk ka dalje referencë.

Kodi që e kryen matjen

  • services/RedirectAnalyzer.php:74RedirectAnalyzer::traceChain
  • services/RedirectAnalyzer.php:168has_mixed_protocol
  • services/RedirectAnalyzer.php:49Mixed Protocol Redirects

Standardi