Forma be apsaugos renka šlamštą, o forma su apsauga, kuri nieko neveikia, renka tą patį šlamštą, nors kuria saugumo jausmą. Nemokama formos apsaugos patikra atsako į pirmąją šio klausimo pusę: kokią apsaugą nuo botų puslapis pateikia? Šiame straipsnyje paaiškinama, kaip skaityti rezultatą ir kur baigiasi jo atsakymas.
Ką patikra daro
Įvedate puslapio su forma adresą. Patikra pirmiausia nuskaito tos svetainės robots.txt; jei jis draudžia atsisiuntimą arba jo nepavyksta perskaityti, patikra čia ir sustoja. Priešingu atveju ji atsisiunčia tik tą vieną puslapį, aiškiu pavadinimu (SilentShieldFormCheck), be slapukų, ne daugiau kaip su trimis peradresavimais ir ne daugiau kaip 1 MB. Tada HTML ieško žinomų teikėjų žymių: skriptų adresų, elementų klasių ir laukų pavadinimų. Patikra pažįsta Google reCAPTCHA, hCaptcha, Cloudflare Turnstile, Friendly Captcha ir SilentShield. Nieko nesaugoma: nei adresas, nei rezultatas.
Penki rezultatai
- Kiekviena forma turi žymę. Kiekvienoje rastoje formoje HTML turi žinomo teikėjo žymę. Apsauga įdėta į formą.
- Žymę turi tik kai kurios formos. Sąraše parodoma, kurioms formoms jos trūksta.
- Teikėjo skriptas įkeltas, bet nė viena forma neturi žymės. Puslapis įkelia teikėjo skriptą, tačiau nė vienoje jo formoje nėra žymės. Ar skriptas apsaugo kurią nors formą ir kurią būtent, nematyti nepaleidus JavaScript.
- Pateiktame HTML nieko neaptikta. Puslapyje yra formų, bet nėra nei žymės, nei žinomo teikėjo skripto.
- Pateiktame HTML formos nėra. Formas gali kurti skriptas naršyklėje, o jo patikra nemato.
Ko patikra nemato
Patikra skaito Jūsų serverio pateiktą HTML. JavaScript ji nevykdo. Dėl to reikia atsižvelgti į keturias pasekmes.
- Forma ar valdiklis, kurį skriptas sukuria naršyklėje, patikrai neegzistuoja. Todėl „nieko neaptikta“ reiškia „nieko pateiktame HTML“, bet niekada „neapsaugota“.
- Ji negali pasakyti, ar Jūsų serveris tikrina atsakymą. Valdiklis formoje be patikros serveryje nieko nesustabdo.
- Apsauga, esanti prieš puslapį, pavyzdžiui, užkarda ar užklausų ribojimas, HTML nepalieka jokių pėdsakų.
- Puslapiai už prisijungimo nepasiekiami, nes patikra atsisiunčia tik viešus puslapius, be slapukų.
Tikras pavyzdys: mūsų pačių registracijos puslapis
Paleidus patikrą mūsų pačių registracijos puslapyje, pirmoji versija nurodė du teikėjus, kurių skriptas esą „įkeltas“. Puslapis neįkelia nė vieno. Priežastis buvo paties puslapio duomenys: meniu įrašas „Alternatyva hCaptcha.“ buvo įterptajame skripte, o patikra šį žodį palaikė teikėjo kodu. Pakeitėme taisyklę: įterptasis skriptas skaičiuojamas tik tada, kai kreipiasi į teikėją (iškviečia atvaizdavimą arba vykdymą), ir to paties puslapio rezultatas dabar toks, kad pateiktame HTML nieko neaptikta. Pamoka paaiškina, kodėl patikra įvardija tik faktus: žodis puslapyje dar nėra teikėjas.
Ką daryti su rezultatu
- Jei žymė yra, išbandykite kitą pusę: pateikite formą iš išorės be atsakymo arba su neteisingu atsakymu ir pažiūrėkite, ar Jūsų serveris ją atmeta. Žymė rodo tik tai, kad valdiklis įdėtas.
- Jei teikėjo skriptas įkeltas, bet formoje žymės nėra, pažiūrėkite, kaip valdiklis prijungiamas. Daugelis sprendimų jį prideda naršyklėje, kai puslapis jau įkeltas.
- Jei nieko neaptikta, nedarykite išvados, kad forma atvira. Peržiūrėkite serverio žurnalus ir tai, kas iš tiesų pasiekia serverį, ir patikrinkite, ar apsauga veikia serveryje, ar prieš puslapį.
- Jei nusprendžiate pakeisti matomą užduotį, palyginkite galimybes CAPTCHA palyginimo puslapyje, o su konversijos skaičiuokle pažiūrėkite, kiek Jums kainuoja matoma užduotis.
Patikra yra pirmas žvilgsnis į pateiktą HTML, o ne auditas. Naudokite ją, kad sužinotumėte, ką puslapis pasako apie save, o likusią dalį išbandykite pateikdami formą.