Teknike
Laku i ridrejtimeve
Ridrejtime që kthehen te vetvetja; faqja nuk hapet fare dhe shfletuesi dorëzohet.
Çfarë është
Një lak ridrejtimesh ndodh kur zinxhiri kthehet te një URL ku ka kaluar tashmë: A çon te B, dhe B kthen te A.
Shfletuesi e zbulon pas disa përsëritjeve dhe ndalon me një gabim — "kjo faqe nuk po ridrejton siç duhet". Nuk shfaqet asnjë përmbajtje.
Shkaqet janë pothuajse gjithnjë dy rregulla që kundërshtojnë njëri-tjetrin dhe që u shkruan në kohë të ndryshme nga njerëz të ndryshëm: një rregull serveri që shton www dhe një rregull aplikacioni që e heq, ose një ridrejtim HTTPS te një server që mendon se është ende mbi HTTP sepse rri pas një ndërmjetësi.
Pse ka rëndësi
Ky është dështim i plotë, jo degradim. Faqja e prekur nuk hapet nga askush — as nga vizitorët, as nga motorët.
Kur laku prek gjithë sajtin, është ndërprerje totale. Kur prek një pjesë — një kategori, një gjuhë, një rrugë — është më e keqe, sepse askush nuk e vëren: faqja kryesore punon, dhe raportimi vjen ditë më vonë nga një klient.
Për motorët, URL-ja bëhet e pamerrshme dhe pas një kohe del nga indeksi. Rikthimi merr javë edhe pas ndreqjes.
Rasti më i fshehtë është laku i kushtëzuar: ndodh vetëm për vizitorë me një cookie të caktuar, ose vetëm për ata që vijnë nga një vend i caktuar. Atëherë testimi nga zyra nuk e zbulon kurrë.
Dhe një shkak i zakonshëm i heshtur: një ndërmjetës që nuk e kalon kokën e protokollit origjinal, prandaj aplikacioni ridrejton përjetësisht drejt HTTPS-së duke menduar se është mbi HTTP.
Si rregullohet
# ndiq zinxhirin dhe shiko ku përsëritet
curl -sIL --max-redirs 10 https://shembull.com/faqja | grep -i '^location'Hapat:
- Gjej të gjitha vendet ku ridrejtohet. Zakonisht janë dy: serveri dhe aplikacioni.
- Zgjidh një vend të vetëm ku merret vendimi, dhe hiqe tjetrin.
- Vendos një rregull të vetëm për formën kanonike: skema, hosti, vija e fundit.
- Pas një ndërmjetësi, sigurohu që koka e protokollit origjinal kalon dhe që aplikacioni e beson.
- Testo me cookie dhe pa to, dhe nga rrjete të ndryshme, për lakun e kushtëzuar.
- Kontrollo edhe faqet e gabimit — një 404 që ridrejton mund të hyjë vetë në lak.
Si e mat ky mjet
RedirectAnalyzer::traceChain() (services/RedirectAnalyzer.php:74) mban listën e URL-ve të vizituara gjatë ndjekjes së zinxhirit dhe ngre flamurin has_loop kur ndesh një URL të përsëritur.
Te analyze() (:18), kur ai flamur është i vërtetë, jepet një konstatim kritik me ndikim të lartë dhe zbriten 30 pikë (:20) — ndëshkimi më i madh i vetëm i këtij analizuesi.
Çfarë NUK e mat
Zbulohet vetëm laku që ndodh gjatë kësaj kërkese të vetme, nga ky server, pa cookie dhe pa gjendje sesioni. Laqet e kushtëzuara — që ndodhin vetëm për një vizitor të loguar, vetëm nga një vend i caktuar, ose vetëm pas një cookie-je të caktuar — nuk shihen.
Ndjekja ndalon te një numër i caktuar hopash; një lak shumë i gjatë mund të raportohet si "zinxhir i gjatë" në vend se si lak.
Ridrejtimet me JavaScript ose me <meta http-equiv="refresh"> nuk shihen fare, ndonëse laqet e ndërtuara ashtu janë po aq të zakonshme dhe më të vështira për t'u diagnostikuar.
Kontrolli bën kërkesa rrjeti dhe nuk është i riprodhueshëm; asnjë dalje referencë nuk ekziston për këtë analizues.
Kodi që e kryen matjen
services/RedirectAnalyzer.php:74— RedirectAnalyzer::traceChainservices/RedirectAnalyzer.php:18— Redirect Loop Detected