Lemat, strona domowa

Lepsza captcha

Spamerzy są wszędzie, boję się wręcz otworzyć lodówkę. Używanie obrazków potwierdzających ("captcha", "test turinga") staje się wręcz koniecznością. Ostatnio jednak trafiłem na problem - na pewnym forum phpBB2 spamerzy "przechodzili" rejestrację pomimo użycia tego zabezpieczenia. Najpierw myślałem, że po prostu siedzi tysiąc Chińczyków i przepisują kod. Ale spojrzenie w logi rozwiało wątpliwiości - nikt nie jest w stanie wypełnic formularza rejestracji w cztery sekundy.

Wniosek jest jeden - używają oprogramowania do odczytywania tekstu z grafiki - OCRa.

Dotychczasowe zebezpieczenie wyglądało tak:

Zrobiłem wiec trochę lepszą wersję, która wygląda tak:

Jaka jest różnica:

  1. Jest to kolorowe
  2. Tło jest obrazkiem
  3. Jest użyty font typu TTF (kształt literek jest inny i można go dowolnie zmieniać ściągając inny font)
  4. Kolor, pochylenie i rozmiar fontu
  5. Tekst jest przezroczysty
  6. Zawiera wyraźny tekst małą czcionką (zmyłka)

Minusy: trzeba dobrze dobrać obrazek oraz trzy parametry: "jasność", "nasycenie" i "alpha" aby napis był czytelny dla ludzi.

To wszystko powinno pomóc w oszukiwaniu OCRa.

Kod można pobrać stąd: captcha.phps

Kod w miarę możliwości usiłuje dostosować wielkość napisu do wielkości obrazka, jednak zgłupieje jak da mu się zbyt długi napis i zbyt wąski obrazek. Jeżeli nie będzie pliku z tłem to oczywiście będzie błąd. Jeżeli nie będzie pliku z fontem, to nie będzie napisu na obrazku. Wymagany jest moduł GD2 i Truetype (powinno być na większości hostingów).

Wszelkie uwagi mile widzane. Łącznie ze statystykami skuteczności.

Na stronie http://pornel.net/captcha jest opisane jak wygląda zła captcha. Pozwolę sobie nie zgodzić się z jednym argumentem - kolor. Kolor ma znaczenie. Obecne spamerskie OCRY nie potrafią w ogóle radzic sobie z kolorowymi obrazkami. Ponadto etap OCRowania który najpierw sprowadza obrazek do odcieni szarości pozwolę sobie przedstawić na podstawie 2 poniższych obrazków:


Drugi obrazek powstał po przekształceniu do odcieni szarości i wyostrzeniu krawędzi - brakuje litery H - mój program nie znalazł tam krawędzi. Trzeci, czwarty i piąty obrazek to efekt nałożenia filtrów wyostrzających krawędzie bez etapu sprowadzania do szarości.



Czego to dowodzi? - Każdą captchę da się złamać. Jest to tylko problem opłacalności. A jaki z tego wniosek? Unikajmy takich rozwiązań, które już ktoś zastosował w tysiącach egzemplarzy.

Zrobiłem jeszcze jedną captchę:


Niestety po przefiltrowaniu w programie graficznym na obecność krawędzi wyszło takie coś:



Kod jest do pobrania stąd: captcha2.phps

Pozmieniałem trochę:


I już filtr krawędzi daje zupełnie inny obraz:



Niestety captcha jest słabo czytelna :(

Kod jest do pobrania stąd: captcha3.phps

Chciałbym wyraźnie zaznaczyć, że cały ten kod w plikach *.phps pokazuję wam po to, abyście mogli sobie samemu zrobić generowanie obrazka. Trzeba ściągnąć samemu font *.ttf, podłożyć własny background, dobrać odpowiednio parametry etc...

No i trzeba wyważyć pomiędzy czytelnością obrazka a jego podatnością na OCR. Forum phpBB przy obrazku daje taki text: Jeżeli nie możesz odczytać kodu skotaktuj się z administratorem - to powinno rozwiązać problemy ludzi słabowidzących.

Acha, oczywiście zamiast $_GET['txt'] trzeba użyć $_SESSION['txt'] albo czegoś podobnego, bo podanie spamerom na tacy <img src="captcha.php?txt=alamakota"> jest trochę niepoważne...

Data utworzenia : 2007-02-05, data aktualizacji :2007-02-11
Skomentuj ten tekst
2010-04-08 16:31:40iks
.
@BART tez wlasnie o czyms takim myslalem i zeby zaimplementowac to we flashu. Niestety brak czasu i slaba znajomosc flash mi nie pozwalaja. Ciekawi mnie jednak czy to by zalatwilo spamerow
Odp.: o! flesz to jest myśl
2010-03-22 14:10:25BART
Logic Captcha :)
A może ciekawym rozwiązaniem byłoby zastosowanie logicznej captchy?

Np. Ładujemy obrazek, dzielimy go na części, mieszamy te części i wyświetlamy w losowej kolejności i teraz metodą drag and drop ustawiamy obrazek?

Dodatkowo można dzielić na losową liczbę kawałków.

???
2009-08-31 21:20:16spideroso
Captcha
Hey,
Ja zamiast captcha zastosowalem pytanie -> odpowiedz.

Np. kolor ferrari - > czerwony
Na montecasino - > maki
Ma kota - > ala itd.

Od tego czasu spokój.

ps. wlasnie przerabiam, i bedzie do wypelnienia iles pol w formularzu. skrypt bedzie pytal o zawartosc losowego pola. zobacze jak to sie sprawdzi.
Odp.: Bardzo dobrze, nie powielaj tylko tego rozwiązania w tysiącach egzemplarzy, bo bardzo łatwo je złamać tworząc po prostu tablicę pytań i odpowiedzi.
2009-08-21 11:06:41kewin86
captcha obrazkowa
Może jestem w błędzie ale zastanawiałem się jakby się sprawowało zabezpieczenie w postaci obrazu - np. zdjęcie motyla i pytanie w stylu "co widzisz na obrazku?". Z tego co się orientuję to komputery nie potrafią rozpoznawać tego "co widzą" na zdjęciu.

Oczywiście program musiałby rozpoznawać odpowiedzi w kilku językach(podstawowym byłby język na danej stronie i do tego np. angielski,niemiecki,hiszpański).

Było by to niewygodne dla użytkowników, bo część musiałaby zaglądać do słowników(może to i plus.. ;)) ale łatwiej "odczytać" jakiś przedmiot,zwierzę,roślinę niż porządnie zamaskowany tekst.

Pozdrawiam
Odp.: jest problem z kwestią interpretacji czy na zdjęciu jest "motyl" czy "bielinek kapustnik". Captcha taka jest dobra o ile nikomu nie opłacałoby się jej łamać. Bo gdyby ktoś zechciał ją łamać to zwyczajnie zgra obrazki i stworzy sobie odwzorowanie obrazek-> właściwe słowo kluczowe i łamiąc captchę po prostu porówna obrazki pixel po pixelu.
2009-07-22 12:53:36ExExEx
reCaptcha
1. Czy reCaptcha jest dobrym rozwiązaniem?
2. Czy losowa zmiana koloru tła we własnej CAPTCHY jest skuteczna?
Odp.: 2) kolor tła jako jednolita płaszczyzna o tym samym kolorze nie ma znaczenia. Natomiast tło jako obrazek na którym można wyszukać krawędzie i tym samym zmylić robota - tak, jego wymiana utrudni życie robotom. Weź jakiś program graficzny i na swojej captchy użyj filtru znajdowania krawędzi. Jeżeli twoje tło dodaje mnóstwo krawędzi do krawędzi pochodzących od literek - to jest to dobra captcha (oczywiście o ile nadal jest czytelna dla ludzi)
wszystkie opinie »
Protected by spf
[Nospam-PL.NET]
UWAGA lisy roznoszą wściekliznę!
© Lemat 2004 - ∞ engine:Lemat
info@seminar.pl.ua przedstawicielstwo@tiscali.it