Kadangi mano subjektyvia nuomone, captcha kodų naudojimas mažina naudojimosi svetainę patogumą, tęsiu galimus būdus išvengti reklamos ar flood problemas.
Alternatyvus medaus puodynių (angl. honeypot) metodas. Robotai dažniausiai stengiasi užpildyti visus rastus formos laukus. Norint apsisaugoti, yra sukuriamas žmonėms nematomas laukas su populiariu pavadinimu (pvz. email). Jei vykdant submit veiksmą, šis laukas bus užpildytas, reiškia rašo robotas ir šį veiksmą praleisti negalima. Minusas - neapsaugo nuo specialiai svetainei pritaikytų robotų.
Minimalus formos užpildymo laikas. Robotai užpildo formas žymiai greičiau nei tai padaro žmogus, todėl priklausomai nuo formos sunkumo galima nustatyti minimalų formos užpildymui skirtą laiką. T.y. jei forma siūnčiama į serverį greičiau nei nustatytas laikas, reiškia didelė tikimybė, kad tai daro robotas. Minusai: neapsaugo nuo specialiai svetainei pritaikytų robotų, nepraleis vartotojus, kurie naudoja auto-complete įrankius.
Kodo obfuskacija arba šifravimas. Baisus žodis obfuskacija (angl. Obfuscated code) reiškia kodo apsunkinimas, norint pvz. sumažinti jo analizės galimybės. Apsaugos esmė - kodo skanavimo apsunkinimas, šifruojant arba taikant obfuskacijos metodą. T.y. jei robotas neras formos kodo, reiškia, jis negalės užpildyti formos ir nusiųsti jos į serverį su įrašytais duomenimis. Kita vertus, vartotojai net nepastebės, kad kodas yra šifruotas. Minusai: kodas veikia šiek tiek liečiau.
Blokavimas pagal user-agent atributą. Dažnai robotai naudoja specifinius user-agent atributus, todėl galima blokuoti visus lankytojus turinčius netinkamą arba nenurodytą user-agent parametrą. Minusas: robotai dažnai naudoja naršyklių parametrus.
Dinaminis formos kūrimas. Metodo esmė - dinaminis formos sukūrimas Javascript pagalba. Veiksmingas metodas prieš daugelį robotų, nes javascript palaikymas reikalauja didesnių resursų sąnaudų. Minusas: vis dar pasitaiko lankytojų, kurių naršyklės nepalaiko Javascript, tačiau tokių lankytojų labai ir labai mažai, todėl jiems galima panaudoti <noscript> HTML atributą.
Pagalbinių servisų naudojimas. Galima naudoti 3 šalių apsaugos nuo reklamos paslauga, pvz. Akismet.
Papildomas klausimas gimtąją kalbą. Kaip bebūtų, o lietuviškai kalbančių robotų yra pakankamai mažai (jei išvis yra), todėl apsaugai nuo botų galima panaudoti papildomą klausimą. Šis metodas ypač tinka mažoms bendruomenėms. Pvz. jau apie metus nesulaukiu reklamos forume, nes į paprastą klausimą „Du plius du?“ vis dar nesulaukiau roboto atsakymo ;) Minusas: labai lengva įveikti, jei į boto pagalbą ateina žmogus.
Hibrindinis metodas. Galima panaudoti vieną iš išvardintų viršuje metodų. Ir jei dėl kažkokių priežaščių vartotojui nepavyko jo praeiti, pasiūlyti kaip alternatyvą visų mėgstamą ir mylimą Captcha.
Pastebėjimai
- Nei vienas iš išvardintų metodų nėra nepriekaištingas ir neapsaugos nuo nukreiptos reklamos ar flood atakos, tačiau nuo 90-99 proc., o Lietuvos atveju dar didesniu procentu, apsaugos nuo kvailų robotų-vorų.
- Įraše paminėjau tik įdėjas. Skirtingus įgyvendimus galima aptarti komentaruose.
- Galima naudoti iškart keletą iš išvardintų metodų.
Kokius metodus dar praleidau? Captcha nesiūlyti! :)