CAPTCHA nie dla ludzi
Opublikowano: 10 września 2006 2006 20:09 w kategorii » DostępnośćDefinicja CAPTCHA
Na początek kilka słów wyjaśnienia czym jest CAPTCHA. Otóż CAPTCHA (od angielskiego skrótu: Completely Automated Public Turing Test to Tell Computers and Humans Apart) Jest to rodzaj techniki stosowanej jako zabezpieczenie we wszelkiego rodzaju formularzach na stronach WWW. Po wypełnieniu formularza, w celu potwierdzenia, iż nie jesteśmy automatem musimy również podać tekst z obrazka. Tekst ten (zazwyczaj losowo dobrane znaki, bądź krótki wyraz), poddany często niewielkiej manipulacji graficznej, jest prosty do przeczytania przez człowieka, jednakże odczytanie go poprzez komputer jest, przynajmniej w założeniu, prawie niemożliwe.

Głównym założeniem techniki CAPTCHA było utrudnienie pająkom spamowania formularzy (np. na forach i blogach), powstrzymanie masowej rejestracji kont przez automaty na portalach a także ochrona usług typu Whois przed automatycznymi zapytaniami - w skrócie CAPTCHA powinna bronić dostępu do miejsc, z których powinien skorzystać tylko człowiek.
Skuteczność CAPTCHA
Technologia CAPTCHA ma zarówno zwolenników, jak i przeciwników. W rzeczywistości skuteczność ochrony strony WWW (a w zasadzie formularzy zamieszczonych na tejże stronie) za pomocą techniki CAPTCHA jest dużo mniejszy niż się tego od niej oczekuje. Kody są trudne, bądź niemożliwe do odczytania, np. dla osób niewidomych, a także dla tych które mają wyłączone wyświetlanie obrazków w swoich przeglądarkach (jak ja) względnie dla użytkowników przeglądarek tekstowych (np. Links, Lynx). Sam często mam problemy z rozszyfrowanie tekstu z obrazka, chociaż z moim wzrokiem jest wszystko w porządku. Wystarczy zresztą zerknąć na poniżej umieszczony obrazek.

Ponadto na systemy CAPTCHA zostały opublikowane liczne ataki, począwszy od technologicznych (takich jak PWNtcha - technika dekodująca CAPTCHA, w przypadku których zademonstrowano podatność wielu popularnych mechanizmów CAPTCHA na OCR), po socjotechniczne (wykorzystywanie naiwności użytkowników witryn kontrolowanych przez atakującego - np. serwisów o treściach erotycznych - by w efekcie zlecić im odczytywanie tekstu z obrazków serwowanych przez atakowane serwisy). Typowe błędy programistów, takie jak przekazywanie tekstu zawartego w obrazku jako parametr (?!) lub jako atrybut TITLE (?!) tylko ułatwiają spamerom „prześlizgiwanie” przez skuteczną, wydawałoby się, technikę zabezpieczenia formularza. Czasem zdarzają się też rozwiązania, w których każda cyfra (lub litera) występuje w osobnym obrazku, w dodatku o nazwie zawierającej tą cyfrę (lub literę)! Do ominięcia takich zabezpieczeń nie jest potrzebny nawet OCR.
O nieskuteczności mechanizmów CAPTCHA traktuje również dokument Computers beat Humans at Single Character Recognition in Reading based Human Interaction Proofs, który dowodzi, że rozwiązaniem problemów z CAPTCHA od ludzi lepiej radzą sobie komputery…
Dostępność CAPTCHA
CAPTCHA to ostatnio dość powszechne zabezpieczenie formularzy… Pół biedy, jeżeli do obrazka dołączona jest anternatywa dzwiękowa (w polskich serwisach to ciągle jeszcze rzadkość). Moim zdaniem główny problem dostępności CAPTCHA… W praktyce wygląda to tak, że obrona jest tak skuteczna, że ciężko przedostać się przez nią nie tyle automatom co ludziom - i to nie tylko niewidomi mają problem z przejściem tego systemu zabezpieczeń. Sam nieraz tracę zmysły musząc wpisywać wydawałoby się łatwe do odczytania literki po raz kolejny przy wypełnianiu jakiegoś formularza… Takie rozwiązania odstraszają użytkowników, wywołują u nich irytacje, niechęć do strony na której umieszczono CAPTCHA.

Uważam, że głównym problemem dotyczącym dostępności stron WWW (i nie chodzi tu jedynie o mechanizm CAPTCHA) jest przede wszystkim brak wiedzy. Większość ludzi z branży to osoby nie zdające sobie sprawy z istnienia czegoś takiego jak dostępność (a także użyteczność, standardy sieciowe, semantyka. itp). Pozostała grupa osób ma już pojęcie na te tematy - niestety w przeważającej większości zaledwie teoretyczne, a nawet jeśli jest to poparte praktyką to zazwyczaj bardzo ograniczoną…

Czy ktokolwiek z Was zadał sobie trud tworząc dostępny serwis WWW aby przetestować go na niewidomych i/lub niedowidzących, osobach z ograniczonymi zdolnościami percepcyjnymi, osobach z upośledzeniami ruchowymi lub innymi? Czy myślicie, że do stwierdzenia poprawności wykonania stron WWW wystarczy Validator W3C, narzędzia takie jak Color Contrast Analyser, czy inne walidatory typu Synthia itp?? Czemu większość ludzi z branży zapomina o user-testach, które wbrew powszechnej opinii, wcale nie muszą być ani drogie, ani długotrwałe… W końcu tworząc serwis dla niepełnosprawnych wypada zapytać się ich o zdanie czy wdrażana dostępność nie jest czasem iluzoryczna… Dostępność ma być dla nich, a nie dla zaspokojenia próżności klientów czy twórców stron WWW.
CAPTCHA - jak to jest naprawdę?
Systemy CAPTCHA dają nam jedynie iluzoryczne poczucie bezpieczeństwa. Twórcy systemów i użytkownicy z nich korzystający CAPTCHA chyba nie zrozumieli o co w nich chodzi - o utrudnieniu dostępu komputerom, a nie jak to ma miejsce zazwyczaj - ludziom.
Zamiast podsumowania postanowiłem umieścić kilka opinii osób niewidomych na temat CAPTCHA. Myślę, że doskonale oddają one przydatność mechanizmów CAPTCHA. Opinie zaczerpnięte są z listy dyskusyjnej lista-screenreaders@screenreaders.com.pl (poprawiłem jedynie błędy ortograficzne) na której od niedawna od czasu do czasu się udzielam. Przy odrobinie wysiłku podobne opinie można znaleźć na wielu forach, listach dyskusyjnych.
No jak kiedyś już pisaliśmy na tej liście, CAPTCHA nie jest dostępne w żaden sposób dla screenreaderów, jedynie alternatywna zawartość audio pozwala na dostęp do informacji zawartej na obrazku. O ile mi wiadomo to któraś z wersji Wineyes lub Jawsa miała obsługiwać kody bodajże na Yahoo, ale sam tego nie sprawdzałem więc jeśli się mylę to na pewno ktoś mnie poprawi. A co do radzenia sobie z CAPTCHA to każdy kombinuje jak tylko może.
Ja sobie radzę tak, że wołam brata lub inne oko, albo spierniczam z takiego portalu. Niestety uparli się na te obrazki (((( co za plaga.
Myślę że opinie osób niewidomych na ten temat nie dadzą się zamieścić w publikowanym artykule, bo zawierałyby zbyt dużą ilość słów powszechnie uznanych za obelżywe…
Zasadniczo wprowadzanie tych zabezpieczeń jest dla nas rozwiązaniem fatalnym. Można śmiało postawić tezę, że twórcy tego rozwiązania wrzucili do jednego worka niewidomych użytkowników sieci razem ze spamerami, złodziejami, włamywaczami itd. Wszyscy chętnie wprowadzają to rozwiązanie w swoich serwisach mając głęboko w „D!” nasze problemy. Spamerom, hackerom i innym takim utrudnia to działanie, a nam kompletnie uniemożliwia samodzielne założenie konta mailowego, komunikacyjnego, przesłanie konfiguracji do telefonu, wysłanie smsa czy sprawdzenie kolejności kodu bankowego.
Czasem daje się po omacku zapisać obrazek z kodem na dysk, rozpoznać FR i wpisać, ale ilość błędów jest tak duża że jest to marne i mało skuteczne rozwiązanie. Jedynym alternatywnym rozwiązaniem są kody dźwiękowe, ale zainteresowanie wprowadzaniem tych rozwiązań jest marne i nie zanosi się na zmiany w tym zakresie.
Dołączając do tego zabezpieczanie PDF pozostawiając tylko zgodę na druk, częste zmiany w interface programów na graficzne niebawem okaże się że niewidomi nie będą mogli kożystać z większości nowych rozwiązań
informatycznych…
Niestety dla mnie takie zabezpieczenia, to brak dostępu do strony czy potrzebnych informacji. A już zupełnym bezsensem jest dla mnie jak takie rzeczy są przy zakładaniu kont pocztowych, czy po zalogowaniu się na jakiejś stronie. Bo w tym momencie choć bym bardzo chciał, to nie jestem sobie w stanie założyć konta pocztowego czy ściągnąć pliku lub zrobić czegoś innego. Z tego co wiem, to na to obejścia nie ma, ja go przynajmniej nie znam, a moja wiedza na temat stron jest żadna bo jestem zwyczajnym użytkownikiem internetu.
Szkoda, że tylko nieliczne strony jak na przykład google oferują albo kod z obrazka, lub cyfry, które można wpisać. Tylko że te cyfry lub znaki, które można wpisać zamiast obrazka są moim zdaniem wymawiane dosyć niewyraźnie, no i czasami trzeba próbować kilka razy.
Ja sobie w ogóle z tym nie radzę. Dla programu to po prostu grafika. Najgorsze jest to, że choć niektórzy wprowadzili możliwość wpisywania dźwiękowo podawanych znaków, to większości trudno jest z tego wyciągnąć wnioski i takie portale jak np. O2 od kilku miesięcy nie potrafią nic z tym fantem zrobić, chociaż wiedzą o problemie. Moim zdaniem, to najgorszy rodzaj dyskryminacji, bo wynikający z nieużywania szarych komórek.
Polecam uważne przeczytanie i zapamiętanie zwłaszcza ostatniego zdania z ostatniego cytatu…
Na koniec jedna uwaga: internet ma być dla użytkowników, a nie użytkownicy dla internetu - pomyślcie o tym panie webmasterki i panowie webmasterzy wdrażając tego typu „ułatwiające” i „zabezpieczające” rozwiązania…










CAPTCHA czasami jest tez utrudnieniem dla osób widzących …. ale to było poruszone w artykule ..
W arykule jednak można zauwazyć dyskryminacje Pań webmasterek… przecież i płeć piękna zajmuje się tworzeniem stron internetowych. Więc autor pisząc o dyskryminacji mógłby sam nie dyskryminować w ostatnim zdaniu artykułu.
Z pozdrowieniami..
Dyskryminacja raczej nie zamierzona :D Doskonale zdaje sobie sprawę, że w branży są też kobiety… Choć są w mniejszości, to nierzadko mają umiejętności lepsze od facetów :D Te „panowie” to mi się jakoś tak niechcąco wrzuciło :D Zaraz poprawiam…
Witam,
Ciekawy wpis.
Ale jeśli chodzi o osoby niewidome to chyba można ten problem obejść (dostosować dla osób niewidomych) w sposób jaki stosuje google, a mianowiecie dodawać przy takich napisach plik dzwiękowy z nagraniem tego ciągu który jest na obrazku.
Zgadza się…
Dźwiękowa alternatywa ułatwia omijanie zabezpieczeń mechanizmu CAPTCHA… Nie zmienia to faktu, że są to jedynie półśrodki… Sam zresztą wiesz, że w polskim internecie alternatywa dźwiękowa to niezwykła rzadkość…
Czy przypadkiem drugi obrazek nie pochodzi z mojego bloga?
Całkiem możliwe :D Zbierałem je już jakiś czas temu i nie pamiętam, skąd mam te przykłady… Jeśli sobie życzysz mogę go usunąć..
Nie ma sprawy, może sobie być. Do dziś nie wiem co jest napisane na tym obrazku :D
Ja też próbowałem wyczytać co jest tam napisane ale na razie nie udało mi się rozszyfrować tego tekstu…
Spróbuję pobawić się w GIMPIE albo Photoshopie :D
Ale przyznać trzeba, że niektóre obrazki są do odczytania nawet dla osób z dobrym wzrokiem. Poza tym dla niektórych tokenów małe/duże litery robią różnicę, a dla niektórych nie. Przyszłością są imho zagadki - żaden bot nie przejdzie przez tekst -”ile jest dwa i pięć” - celowo nie używam + i - a także cyfr. Swoją drogą tokeny, które od jakiegoś czasu w związku z zalewem spamu pojawiają się wszędzie, nie mają wiele wspólnego z wychodzeniem autora serwisu ku użytkownikowi.
O kuchnia, miało być ze są trudne do odczytania, błąd w powyższym wpisie w pierwszym zdaniu :-)
CAPTCHA problemem jest i basta! :D Próbowałem rozgryźć ten drugi obrazek i pomęczyłem go Photoshopem ale niestety nie udało mi się odczytać co tam jest napisane… O ile zagadki są trudne dla botów - (póki co, bo i one w końcu nauczą się poznawać kontekst i liczyć), o tyle CAPTCHA jest trudna przede wszystkim dla ludzi - a zabezpieczyć można się na wiele innych sposobów - chociażby mój blog korzysta z pluginu Spam Karma 2…
Witam,
Jestem niewidomy, zgadzam się w pełni z treścią artykułu i komentarzami.
Jeśli chodzi o alternatywę dźwiękową, w jednym z anglojęzycznych serwisów miałem problem z rozpoznaniem, czy hodzi o cyfrę 8 czy o literę H. Jakość dźwięku była fatalna. Może rzeczywiście zagadki, to jest to?
A ja jestem w trakcie testów innego posobu na spam. Metoda banalnie prosta - od momentu wyświetlenia strony do momentu wysłania napisanego komentarza musi minąć minimum 5sec. Narazie jest czysto, a w logach widzę juz kilkadziesiąt odrzuconych komentarzy (większość dodawana już po jednej sekundzie od wejścia na stronę).
Hejka!
Sam webmasterką zajmuję się raczej hobbystycznie, ale właśnie pracuję nad projektem strony dla pewnego ośrodka dla niepełnosprawnych. Podczas tworzenia, oprócz zleceniodawcy (czyt. dyrektorki ośrodka), chcę zapytać o zdanie również ludzi tam przebywających i na codzień korzystających z internetu. Internet jest dla wszystkich, dlatego już dawno powiedziałem CAPTCHY stanowcze NIE! (:
P.S. Mimochodem wyłapałem w akapicie „Skuteczność CAPTCHA” dwie literówki - zdażają na zdarzają oraz iminięcia na ominięcia.
Pozdrawiam!
@Hadret: błedy poprawione… dziękuję za zwrócenie uwagi :D
Sam jestem osoba niepelnosprawna, należę do Polskiego Związku Niewidomych, takze stosunkowo często mam styczność z ludzimi o podobnych problemach opisanych wyzej, niestety siec jest dostepna tylko dla ‚wybrancow’
Osobiście uważam, że wszelkie systemy z tej rodziny są wybitnie mało user-friendly, więc zawsze odradzam korzystanie z captcha.
@Idolex: Znasz takie pojecie jak sztuczna inteligencja? Wlasciwie do podanego przypadku, to nawet ona nie bedzie potrzebna, bo wystarczy podpiac pod okreslone slowa symbole i cyfry i mamy juz zlamana zagadke :]
Jesli zmienimy typ zagadek z matematycznych, to musimy sie borykac z kolejnym klopotem… uniwersalnoscia, co w tym przypadku jest to wada z dwoch powodow:
- Kazdy z uzytkownikow bedzie musial znac odpowiedz na ta zagadke, nie zaleznie od statusu spolecznego, posiadanej wiedzy, czy chocby tak prozaicznego przypadku, jak kraj zamieszkania. Bo np. dla nas znany jest gest Kozakiewicza, ale czy taki Wietnamczyk bedzie to wiedzial?
- Jesli operujemy na zunifikowanym zestawie zagadek, to problemem pozostaje ilosc tych zagadek, czyli baza wiedzy. Zbyt duza, to klopot dla inzyniera wiedzy (ktory zwykle jest programista danego systemu), jesli jest zbyt mala, to losowane pytanie z zestawu moze dac spory odsetek trafnosci dla jednej odpowiedzi, a to wystarczy dla spambota, aby zalac strony spamem.
Dodatkowo jest to kolejna przeszkoda, po samym wprowadzeniu weryfikacji kodu.
Moim zdaniem (podkreslam „moim”), lepiej zastosowac kompilacje ponizszych metod:
- Przytoczony sposob przez Łukasza Więceka (nie pisze jego sposob, bo nie tylko on wpadl na ten pomysl. Rowniez ja juz kilka lat temu, jak i inni, ale jak to z kolem, takie pomysly powstaja niezaleznie od siebie w roznym czasie i miejscu). Uwaga a teraz bedzie bolesne, bo to wymaga myslenia ;) Logicznym jest, ze w ciagu kilku (nie muszi to byc akurat 5s) sekund od zaladowania strony user nie klepie posta :]
Jesli juz klepie, bo chce i zeby go nie dolowac mozna np. zablokowac za pomoca JS przycisk i zaraz zeby uciszyc podnoszace sie krzyki, przez uzytkowniow nie korzystajacych z JS… Zablokowac i odblokowac za pomoca JS, wiec jesli ktos ma wylaczone JS, to domyslnie ma odblokowany przycisk submit. W dodatku to ma byc male zabezpieczenie dla uzytkownikow, ktorzy klepia za szybko, i ktore znika po krotkim czasie. Jesli ktos to oleje, to i tak skrypt obslugujacy formularz odrzuci go, wiec obchodzenie tego nie bedzie mialo sensu :]
Dodatkowo zabezpieczy to strone przed FLOOD’em :] Nie jest to spuer skuteczna w 100% bezpieczna metoda, bo wystarczy nie wiele dluzszy kawalek kody, do bota, aby ten odczekal zadana ilosc sekund i dopiero potem wyslal formularz, ale nie kosztuje nas ona wysilku i jak na razie boty na niej sie wywalaja.
- Stosowanie dodatkowych pol input w komentarzach. Metoda, a raczej metody sa opisane w necie (Wujek Google sie klania), wiec ogranicze sie jedynie do stwierdzenia, ze 99.99% botow nie zwraca uwagi podczas parsowania formularzy, czy dane pola sa zakomentowane, czy nie i wysyla to jak leci. Metoda jak na razie skuteczna, bo wiekszosc botow jest po prostu glupia, a samo zaimplementowanie tej metody jest banalne i blyskawiczne, oraz wiekszosc wysilkow spamerow koncentruje sie na odczytywaniu znakow z obrazkow, a nie na udokonalaniu parserow :] Wraz ze wzrostem popularnosci tej metody na pewno znajda sie sposoby na zlamanie tego zabezpieczenia, ale jak w poprzednim wypadku, koszt implementacji jest znikomy i jak na razie skutecznosc co najmniej 99% :]
- Odrzucac posty krotsze niz X znakow. Wpis to wpis, musi iles wazyc, nie? :) Dodatkowo poleca dzieci neo ze swoja gra „Pierwszy!” :]
- Troche bardziej (w stosunku do poprzednich) skomplikowany sposob: Przekazywanie do moderacji wszystkich postow z linkami (lub postow z liczba wieksza niz 1-2 linki). Zadko Uzytkownicy daja wiecej jak 1-2 linki w poscie, wiec wielkiego utrudnienia nie bedzie. Oczywiscie nie wolno zapomniec o informacji dla uzytkownikow, ze taki system dziala.
- Jesli mozna sobie na to pozwolic, to udostepnic mozliwosc dodawania informacji tylko dla zarejestrowanych. Podkreslam, jesli to mozliwe. Jesli zalezy nam na uzytkownikach, ktorzy nie chca sie rejestrowac, to oczywiscie ten sposob odpada. Zastosowanie tego sposobu ma dwa plusy. Bot ma dodatkowy formularz do przejscia - czyli znowy klopot z zabezpieczeniami. Poprawia sie ogolna polityka bezpieczenstwa aplikacji. :] Dla tych, co zaraz by krzyczeli, ze posty w moderacji beda lezaly i lezaly, az sie komus zachce je przejrzec… to chyba powinniscie sami na siebie krzyczec ;) Odpowiedzialny i aktywny administrator, to taki co dba o strone, wiec odwiedza ja kilka razy na dzien. Jesli nie zlaezy wam na moderacji, to nie zalezy wam na stronie, a tym samym na uzytkownikach, wiec po co te zabezpieczenia? ;) W dodatku postawienie takiej przypominajki wysylajacej chocby na maila info o komentarzach do moderacji, to nie wielki problem :]
Dodatkowuym atutem, tym razem marketingowym mamy juz bardziej zdecydowanych uzytkownikow, ktorzy sa przywiazani do naszej strony i nadaja sie jako material lepszej jakosci dla potencjalnych klientow, niz wpadajacy na strone przypadkowi uzytkownicy. Oczywiscie, sama polityka bezpieczenistwa nie moze byc i nie jest motorem napedzajacym nam klientow, ale tu polecam zapoznawanie sie juz z tekstami odpowiednimi tla tej materii ;)
- Unikanie niektorych funkcji (np. blokowanie funkcji mail() w PHP), ktore maja dobrze znane luki, czesto wykorzystywane przez spamboty i wykorzystywanie innych, np. dla mail uzywanie chocby funkcji mailingowej z forum PHPBB ;)
- Jesli stosujemy jakies systemy weryfikacji za pomoca kluczy (np. linki aktywacyjne), to zmieniac takie systemy co jakis czas.
- Bardzo trudne: Zastosowanie „kontr-bota” opartego na sztucznej inteligencji, ktory bedzie sprawdzal np. posty pod katem dodawanych linkow na calym systemie komentarzy/forum/etc. Cos w rodzaju „Zwalczaj ogien ogniem” Jesli np. wyszlo, ze juz na jednej stronie padl post, o innej tresci, to taki komentarz zostanie przekazany do moderacji. Oczywiscie mozliwosci takiego kontr-bota zaleza od mozliwosci programisty :]
- I chyba najwazniejsze: Stale miec swiadomosc, ze nie ma zabezpieczenia idealnego i na kazde zabezpieczenie znajdzie sie sposob.
Jak widzicie wiekszosc z tego to banalne zabezpieczenia, latwe do implementacji. Beda dzialac jakis czas, az ktos w koncu dojdzie do wniosku, ze tyle ludzi z tego korzysta, ze to trza zlamac, ale zanim do tego dojdzie, my juz bedziemy mieli obmyslony system kolejnych zabezpieczen, doskonalszych, bo mielismy czas zeby je obmyslec ;)
Powstaje jeszcze pytanie jak szybko wprowadzac nowe zabezpieczenia.. Jesli stare sprawdzaja sie doskonale, to polecam zachowac nowe w rezerwie, w razie przelamania starych, jesli nie sa to krytyczne zabezpieczenia. W przypadku spamu nie musi byc tak, bo dane uzytkownikow sa wazniejsze. Na niektorych serwisach sprawa moze wygladac inaczej - np. duza liczba odwiedzin, ktore moga wazyc na naszej marce lub finansach - wtedy priorytet ochrony przed spamem moze byc rowny z ochrona danych uzytkownikow. Pozwoli to nam na blyskawiczna reakcje i dzieki temu nie odkryjemy wszystkich kart, bo jesli sie okarze, ze nowe zabezpieczenie padlo nadzwyczaj szybko, to zostajemy na cienkim lodzie, ktory w dodatku topi sie z kazda sekunda, a my tu goraczkowo wymyslamy nowe zabezpieczenie. Z doswiadczenia wlasnego i innych wiem, ze tak nie da sie sworzyc dobrego zabezpieczenia. To wymaga czasu i spokoju, do dokladnego przemyslenia i przetestowania. Mozna jedynie stworzyc juz zapasowe srodowisko, jesli nie korzystamy z modularnej budowy systemu, dla natychmiastowej podmiany shackowanych plikow i utrzymywanie go w obwodzie w stanie uzywalnosci. Powod opisany chwileczke wczesniej. Jesli dbamy o to, zeby dane zabezpieczenia zadzialaly od razu po podmianie ze starymi, to nie tracimy czasu (, uzytkownikow i pieniedzy) na przestoje w celu dostosowania zabezpieczen do aktualnie dzialajacego systemu.
Oczywiscie nie musze chyba, mowic, ze zabezpieczenia jak i inne rzeczy maja byc testowane na innym, testowym srodowisku, a nie robic opeacje na otwartym sercu, czyli na dzialajacej w Necie aplikacji :]
Ech.. i znow z kolejnego komentsa wyszedl mini-artykul :]
Doskonała analiza wykonana przez TAURIna. Gratulace też dla autora CAPTCHA to porażka.
CAPTCHA do lamusa - http://sblam.com FTW!