Verifikimi i pronësisë
Pse crawl-i i plotë kërkon provë se hosti është yti, dhe dy mënyrat për ta dhënë atë provë.
Pse kërkohet
Skanimi i një faqeje të vetme nuk kërkon verifikim. Ai është një kërkesë drejt një adrese publike — po aq e lejuar sa hapja e saj në një shfletues.
Crawl-i i plotë i një sajti kërkon verifikim. Ai do të thotë qindra kërkesa drejt serverit të dikujt tjetër, dhe ajo është ngarkesë reale mbi burimet e tij.
Sistemi i vjetër i këtij projekti nuk e kishte këtë kufi. Të dhënat e ruajtura tregojnë crawl-e të plota të sajteve institucionale dhe mediatike, të nisura nga kushdo që dinte adresën, pa asnjë gjurmë autorizimi. Verifikimi është ndreqja e asaj gjendjeje, dhe nuk ka flamur për ta anashkaluar.
Ai mbron edhe ty si përdorues: pa të, kushdo mund të niste crawl-e në emrin tënd, dhe raportet për sajtin tënd mund të hapeshin nga kushdo.
Dy mënyra, dhe pse të dyja
DNS TXT — një regjistrim te _lessonpeak-verifikim.<hosti> ose te apex-i i domainit. Kjo provon kontroll mbi zonën DNS, pra provën më të fortë. Por kërkon qasje te paneli i DNS-së, të cilën shumë përdorues nuk e kanë.
`/.well-known/` — një skedar te /.well-known/lessonpeak-verifikim.txt. Kjo provon kontroll mbi përmbajtjen e serverit, dhe është e arritshme edhe për dikë që ka vetëm FTP ose një panel të thjeshtë.
Njëra pa tjetrën do të përjashtonte një pjesë të përdoruesve. Mjafton njëra; provohet DNS-ja e para, pastaj skedari.
Të dyja provojnë gjëra pak të ndryshme, dhe kjo është me qëllim: kush kontrollon zonën DNS nuk ka domosdo qasje te serveri, dhe anasjelltas.
Si bëhet
Merr tokenin që të jepet — 64 shenja heksadecimale — dhe vendose në njërën nga dy vendet.
Me DNS TXT:
_lessonpeak-verifikim.shembull.com. TXT "lessonpeak-verifikim=<64 hex>"Regjistrimi pranohet edhe te apex-i i domainit. Vlerat TXT të gjata ndahen nga serverët në copa 255-shenjëshe; ne i bashkojmë pa ndarës para se të krahasojmë, prandaj ndarja nuk të prish asgjë.
Me skedar:
https://shembull.com/.well-known/lessonpeak-verifikim.txtPërmbajtja: lessonpeak-verifikim=<64 hex>. Skedari duhet të kthejë kod statusi 2xx dhe të jetë nën 4 KiB.
Pas vendosjes, nis verifikimin. Kontrolli bëhet në atë çast, kundrejt DNS-së dhe HTTP-së reale.
Detajet që kanë rëndësi
Marrja e skedarit `.well-known` bëhet me zero ridrejtime. Kjo nuk është kujdes i tepërt: nëse do të lejonim një ridrejtim, atëherë viktima.com/.well-known/… → sulmuesi.com/… do të verifikonte sajtin e dikujt tjetër. Kushdo që mund të vendosë një ridrejtim te një sajt do të merrte kontrollin e tij te ne.
Krahasimi bëhet në kohë konstante, mbi hash-e me gjatësi të njëjtë. Pa këtë, koha e përgjigjes do të rridhte informacion mbi tokenin — edhe vetëm gjatësinë e tij. Dhe krahasimi nuk ndërpritet midis rreshtave, që koha të mos varet nga pozicioni ku gjendet tokeni.
Tokeni skadon pas 30 ditësh. Një token i përjetshëm do të thotë se një domain i shitur mbetet i verifikuar te pronari i vjetër.
Verifikimin e kryen vetë crawler-i, jo radha e punëve. Puna sjell vetëm pretendimin — tokenin që duhet gjetur. Radha nuk është autentikim, dhe nuk trajtohet si e tillë.
Nëse dështon
Rezultati të thotë cila nga dy metodat u provua dhe pse nuk kaloi. Arsyet e mundshme:
- Nuk ka regjistrim TXT te asnjëri nga dy emrat e provuar.
- Ka TXT, por pa përputhje — zakonisht një token i vjetër ose i kopjuar gabim.
- Skedari `.well-known` nuk kthen 2xx — 404, 403, ose një ridrejtim (i cili refuzohet me qëllim).
- Skedari kthen HTML në vend të tokenit — shumë serverë kthejnë faqen e gabimit me kod 200.
Për DNS-në, prit përhapjen: një regjistrim i ri mund të mos jetë i dukshëm menjëherë, veçanërisht nëse zona ka TTL të gjatë. Ul TTL-në para se ta shtosh, nëse mundesh.
Nëse asnjëra nuk punon dhe je vërtet pronari, shkruaj — kontakti.
Nga u nxor kjo faqe
Çdo pohim më sipër është nxjerrë nga kodi ose nga plani, dhe këtu janë vendet e sakta. Nëse njëri prej tyre nuk përputhet me atë që lexove, faqja është gabim.
workers/seo-crawler/src/verifikimi/token.ts:21workers/seo-crawler/src/verifikimi/token.ts:24workers/seo-crawler/src/verifikimi/token.ts:27workers/seo-crawler/src/verifikimi/token.ts:30workers/seo-crawler/src/verifikimi/token.ts:57workers/seo-crawler/src/verifikimi/index.ts:16workers/seo-crawler/src/verifikimi/index.ts:105workers/seo-crawler/src/kontrata.ts:34