All Posts in spam

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 - 3 comments

Apsaugos nuo reklamos būdai

Egzistuoja daug būdu kaip svetainės lankytojo neįtraukti į kovą tarp robotų ir sistemos programuotojų. Šiandien pabandysiu apžvelgti, mano manymu, geriausius. Prieš aprašant kiekvieną algoritmą ar apsaugos būdą atskirai, norėčiau dar kartą pažymėti, kad kiekvienas algoritmas turi savo minusų, tačiau visi žemiau išvardinti algoritmai turi vieną savybę - jie palengvina lankytojo dalią. Be to, vėlgi pasikartosiu, manau, kad nereikia bandyti atpažinti ar lankytojas yra robotas ar žmogus, o kovoti su tam tikrais nepageidautinais veiksmais (pvz. reklamos skleidimas). Svarbu ne kas daro, o ką daro.

Pvz. kam reikalingas Captcha kodas registracijos metu?  Tegul robotas užsiregistruoja, bet, jei jis neturės normalios galimybės parašyti komentarą, jis nepadarys didelės žalos, o po tam tikro laiko bus ištrintas dėl neaktyvumo.

Be abejo, kovoti galima keliais frontais - neleisti robotams rašyti, registruotis kol nebus įrodyta, kad rašo žmogus bei atlikti tam tikrų veiksmų prevenciją (pvz. reklamos skleidimas), bet turėtų visiems būti aiškus vienas faktas - lankytojo geriausia neįtraukti į šią kovą.

Pirmasis būdas yra Bajeso teoremos naudojimas. Bajeso filtrai gali savarankiškai, nedaug nusileisdami žmogaus sugebėjimams, atpažinti „blogą“ žinutę. Šį metodą kartais naudoja elektroninio pašto žinučių šlamšto (angl. spam) filtrams sukurti. Metodas yra pakankamai geras, tačiau reikalauja pakankamai didelio įdirbio. Vikipedijos skelbia, kad po mokymo ir didelio įdirbio pasiseka atrinkti iki 95 –97 proc. spamo.

Blokavimas pagal žodį ar jo kaukę - internetinės cenzūros mechanizmas kaip blokuojami tam tikri pranešimai turintys nepageidaujamų žodžių. Šis metodas dažnai nepasiteisina (žr. Scunthorpe problem) kai yra naudojamas vienas, tačiau jo panaudojimais kartu su kitais metodais gali atnešti pakankamai gerų rezultatų.

UPD: Atsiprašau, netyčia paskelbiau viešai šį įrašą, nors jis nebuvo iki galo pabaigtas. Šiek tiek vėliau pratęsiu apie galimus alternatyvius Captcha kodams apsaugos nuo reklamos ir fludo būdus. Laukite pratęsimo ;)

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?