All Posts in robotas

2010-03-04 - No Comments!

Apsaugos nuo reklamos būdai (II dalis)

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! :)

2010-03-03 - 8 comments

Filosofija ir Captcha kodai

Nekenčiu Captcha!  Nenoriu būti karo tarp robotų ir programuotojų dalyvis!

Žvelgiant į situaciją filosofiškai, Captcha ir panašių kodų naudojimo perspektyvos vis dar miglotos. Captcha kodai, kurie turėtų būti skirti apsaugoti svetaines nuo nepageidaujamo reklamos robotų aktyvumo, dažnai apsaugo ir nuo nepatyrusių interneto vartotojų. Apibendrinant, gaunasi, kad Captcha geba įveikti tik „protingi“ žmonės ir „protingi“ robotai.

Galiausiai, yra indai, kinai ir kitų tautybių žmonės, kurie padeda reklamos robotams įveikti bet kokio sudėtingumo Captcha kodus. Todėl reklamos ar užtvindimo pranešimais (angl. flood) problemos išlieka nepriklausomai ar naudojamas Captcha kodas ar ne.

Visi Captcha ir panašus robotų nustatymo testai veikia daugmaž vienodu principu, kuris realybėje būtų panašus į bandymą nuspėti ar į buto duris beldžiasi pažįstamas ar nusikaltėlis. Esmė, kad dabartinis dirbtinis intelektas (DI) yra panašaus lygio kaip ir nepatyrusieji interneto vartotojai. Kaip bebūtų gaila, reikia pripažinti, kad egzistuoja interneto vartotojų grupė, kurie pagal internetinio intelekto lygį ir patirtį, yra žymiai „kvailesni“ už robotus (nepamirštam, kad robotus rašo protingi žmonės). Todėl, mano manymu, Captcha kodai yra netiesioginės diskriminacijos pagal internetinę patirtį apraiška. Be to, Captcha ir panašus kodai turi ir kitų problemų:

  • atima ar sumažina neįgaliųjų galimybes naudotis svetaine. Ar kada pagalvojote kaip žmogus su regos sutrikimu turėtų įveikti Captcha? Analogija realiame pasaulyje - Jungtinių Tautų Organizacijos Generalinės Asamblėjos patvirtintos Lygių galimybių neįgaliems žmonėms teikimo bendrosios taisyklės.
  • atima iš sąžiningų vartotojų daugumos galimybę patogiai naudotis svetaine. Gaunas, kad visi vartotojai suprantami kaip robotai iki tol, kol jie neįrodo, kad yra žmonės. Analogija realiame pasaulyje - Nekaltumo prezumpcija, t.y. asmuo laikomas nekaltu, kol jo kaltumas nėra įrodytas įstatymo numatyta tvarka ir pripažintas įsiteisėjusiu teismo nuosprendžiu.
  • Captcha neatlieka savo paskirties, nes neapsaugo nuo neigiamos informacijos pateikimo. Mitai apie Captcha neįveikiamumą jau seniai paneigti.

Yra daug būdų apsaugoti svetainę nuo nepageidaujamos reklamos. Apie jos veikiausiai parašysiu ateityje.

Kaip bebūtų, manau, kad reikia saugoti svetainę ne pagal tai ar vartotojas yra robotas ar žmogus, o pagal vartotojo atliekamus veiksmus. O prašyti vartotojus įvedinėti Captcha kodus, t.y. vykdyti netikslingus veiksmus, norint parašyti pranešimą ar užsiregistruoti, yra resursų naudojimas (laikas, programiniai sprendimai). Be to, kaip minėjau - tai ne tik diskriminacijos apraiška, bet ir savotiškas totalitarizmas iš svetainės kūrėjų. Vienintelis Captcha pliusas - DI vystymo skatinimas.

Ką jus manote šia tema?

2009-11-11 - 6 comments

CAPTCHA kitaip

captchaCAPTCHA kodai skirti apsaugoti nuo automatinės robotų registracijos ar kitos formos užpildymo, bet neretai pasitaiko, kad CAPTCHA „apsaugo“ ir nuo pačių žmonių, kurie tiesiog nesugeba praeiti apsaugos. Labiausiai trukdo būtinybė į tekstinį lauką įrašyti kodo tekstą. Šis žingsnis, mano manymu, nėra patogus. Būtų galima vartotojui tiesiog pasirinkti vieną iš užrašymo variantų. Saugumo šis pakeitimas labai nesumažintų, o žmonėms būtų patogiau.