Suojaamaton lomake kerää roskapostia, ja lomake, jonka suojaus ei tee mitään, kerää samaa roskapostia ja antaa sinulle silti turvallisen olon. Ilmainen lomaketarkistus vastaa kysymyksen ensimmäiseen puoliskoon: minkä bottisuojauksen sivu toimittaa? Tämä artikkeli selittää, miten tuloksen luet ja mihin sen vastaus loppuu.
Mitä tarkistus tekee
Syötät sellaisen sivun osoitteen, jolla on lomake. Tarkistus lukee ensin sivuston robots.txt-tiedoston; jos se kieltää haun tai sitä ei voi lukea, tarkistus pysähtyy siihen. Muuten se hakee tämän yhden sivun selkeällä nimellä (SilentShieldFormCheck), ilman evästeitä, enintään kolmella uudelleenohjauksella ja enintään 1 MB:n kokoisena. Sitten se etsii HTML:stä tunnettujen tarjoajien tunnisteita: skriptien osoitteita, elementtien luokkia ja kenttien nimiä. Se tuntee Google reCAPTCHAn, hCaptchan, Cloudflare Turnstilen, Friendly Captchan ja SilentShieldin. Mitään ei tallenneta, ei osoitetta eikä tulosta.
Viisi tulosta
- Jokaisessa lomakkeessa on tunniste. Jokaisessa löydetyssä lomakkeessa HTML sisältää tunnetun tarjoajan tunnisteen. Suojaus on sijoitettu lomakkeeseen.
- Vain joissakin lomakkeissa on tunniste. Luettelo näyttää, mistä se puuttuu.
- Tarjoajan skripti ladataan, mutta missään lomakkeessa ei ole tunnistetta. Sivu lataa tarjoajan skriptin, mutta yksikään sen lomakkeista ei sisällä tunnistetta. Suojaako skripti jotakin lomaketta ja mitä, ei näy ilman JavaScriptin suorittamista.
- Toimitetusta HTML:stä ei tunnistettu mitään. Sivulla on lomakkeita, mutta ei tunnistetta eikä tunnetun tarjoajan skriptiä.
- Toimitetussa HTML:ssä ei ole lomaketta. Lomakkeet saattavat syntyä vasta selaimessa skriptin luomina, eikä tarkistus näe sitä.
Mitä tarkistus ei näe
Tarkistus lukee palvelimesi toimittaman HTML:n. JavaScriptiä se ei suorita. Siitä seuraa neljä asiaa, jotka kannattaa pitää mielessä.
- Lomaketta tai widgetiä, jonka skripti luo selaimessa, ei ole tarkistuksen kannalta olemassa. ”Mitään ei tunnistettu” tarkoittaa siis ”mitään ei toimitetussa HTML:ssä”, ei koskaan ”suojaamaton”.
- Se ei näe, tarkistaako palvelimesi vastauksen. Lomakkeen widget ilman tarkistusta palvelimella ei pysäytä ketään.
- Sivun edessä oleva suojaus, kuten palomuuri tai pyyntörajoitus, ei jätä HTML:ään jälkeäkään.
- Kirjautumisen takana olevat sivut ovat tavoittamattomissa, koska tarkistus hakee vain julkisia sivuja, ilman evästeitä.
Oikea esimerkki: oma rekisteröitymissivumme
Kun ajoimme tarkistuksen omalle rekisteröitymissivullemme, ensimmäinen versio ilmoitti kaksi tarjoajaa, joiden skripti ”ladataan”. Sivu ei lataa kumpaakaan. Syy oli sivun omassa datassa: valikkomerkintä ”Vaihtoehto hCaptchalle.” oli sivun sisäisessä skriptissä, ja tarkistus luuli sanaa tarjoajan koodiksi. Muutimme sääntöä: sivun sisäinen skripti lasketaan vain, jos se kutsuu tarjoajaa (render- tai execute-kutsu), ja sama sivu ilmoittaa nyt, ettei toimitetusta HTML:stä tunnistettu mitään. Opetus on syy, miksi tarkistus nimeää vain tosiasioita: sana sivulla ei ole tarjoaja.
Mitä teet tuloksella
- Jos tunniste löytyy, kokeile toista puoliskoa: lähetä lomake ulkopuolelta puuttuvalla tai väärällä vastauksella ja katso, hylkääkö palvelimesi sen. Tunniste osoittaa vain, että widget on sijoitettu.
- Jos tarjoajan skripti ladataan mutta lomakkeessa ei ole tunnistetta, katso, miten widget liitetään. Monet toteutukset lisäävät sen vasta selaimessa sivun latauduttua.
- Jos mitään ei tunnistettu, älä päättele, että lomake on auki. Katso palvelimesi lokeja ja sitä, mitä todella saapuu, ja tarkista, toimiiko suojaus palvelimella vai sivun edessä.
- Jos päätät korvata näkyvän tehtävän, vertaile vaihtoehtoja sivulla CAPTCHA-vertailu ja katso konversiolaskurilla, mitä näkyvä tehtävä sinulle maksaa.
Tarkistus on ensimmäinen silmäys toimitettuun HTML:ään, ei auditointi. Käytä sitä nähdäksesi, mitä sivusi kertoo itsestään, ja kokeile loput lähettämällä lomake.