Praktyczne podejście CAPTCHA nie oparte na obrazach?

Wygląda na to, że dodamy CAPTCHA wsparcie dla przepełnienia stosu. Jest to konieczne, aby zapobiec botom, spamerom i innym złośliwym działaniom skryptowym. Chcemy tylko, aby ludzie publikowali lub edytowali rzeczy tutaj!

Będziemy używać captcha JavaScript (jQuery) jako pierwszej linii obrony:

Http://docs.jquery.com/Tutorials:Safer_Contact_Forms_Without_CAPTCHAs

Zaletą tego podejścia jest to, że dla większości ludzi CAPTCHA nigdy nie będzie widoczne!

Jednak dla osób z wyłączonym JavaScript, nadal potrzebujemy awaryjnego powrotu i to jest, gdzie robi się trudne.

Napisałem tradycyjną kontrolę CAPTCHA dla ASP.NET które możemy ponownie wykorzystać.

CaptchaImage

Jednak wolałbym wybrać coś tekstowego, aby uniknąć kosztów tworzenia wszystkich tych obrazów na serwerze przy każdym żądaniu.

Widziałem takie rzeczy..
  • ASCII text captcha: \/\/(_)\/\/
  • matematyka zagadki: co to jest 7 minus 3 razy 2?
  • pytania z ciekawostki: co smakuje lepiej, ropucha czy lizak?

Może po prostu przechylam się na wiatraki, ale chciałbym mieć mniej zasobochłonną, nie opartą na obrazach <noscript> kompatybilną CAPTCHA, jeśli to możliwe.

Pomysły?
Author: Jeff Atwood, 2008-08-12

30 answers

Metoda, którą opracowałem i która wydaje się działać idealnie (chociaż prawdopodobnie nie dostaję tyle spamu z komentarzami, co Ty), polega na tym, aby mieć ukryte pole i wypełnić je fałszywą wartością np.:]}

<input type="hidden" name="antispam" value="lalalala" />

Następnie mam kawałek JavaScript, który aktualizuje wartość co sekundę z liczbą sekund, dla których strona została załadowana:

var antiSpam = function() {
        if (document.getElementById("antiSpam")) {
                a = document.getElementById("antiSpam");
                if (isNaN(a.value) == true) {
                        a.value = 0;
                } else {
                        a.value = parseInt(a.value) + 1;
                }
        }
        setTimeout("antiSpam()", 1000);
}

antiSpam();

Następnie, gdy formularz jest złożony, jeśli wartość antyspam jest nadal "lalalala", to zaznaczam go jako spam. Jeśli wartość antyspam jest integer, sprawdzam, czy jest powyżej coś jak 10 (sekund). Jeśli jest poniżej 10, zaznaczam jako spam, jeśli jest 10 lub więcej, przepuszczam.

If AntiSpam = A Integer
    If AntiSpam >= 10
        Comment = Approved
    Else
        Comment = Spam
Else
    Comment = Spam

Teoria jest taka, że:

  • spam bot nie będzie obsługiwał JavaScript i prześle to, co widzi
  • Jeśli bot obsługuje JavaScript, natychmiast prześle formularz
  • komentator przynajmniej przeczytał część strony przed wysłaniem

Minusem tej metody jest to, że wymaga JavaScript, a jeśli nie masz włączonej obsługi JavaScript, twój komentarz zostanie oznaczony jako spam, jednak przeglądam komentarze oznaczone jako spam, więc nie jest to problem.

Odpowiedź na komentarze

@MrAnalogy: podejście po stronie serwera brzmi całkiem dobrze i jest dokładnie takie samo jak robienie tego w JavaScript. Dobra Decyzja.

@AviD: zdaję sobie sprawę, że ta metoda jest podatna na bezpośrednie ataki, o czym wspomniałem na moim blogu . Jednak obroni się przed średnią spam bot, który ślepo wysyła śmieci do dowolnej formy, jaką może znaleźć.

 205
Author: GateKiller,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-10-28 05:46:31
 211
Author: ceejayoz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-03-29 18:03:46

O ile czegoś nie przeoczyłem, co jest nie tak z używaniem reCAPTCHA , ponieważ cała praca jest wykonywana zewnętrznie.

Tak sobie pomyślałem.

 57
Author: thing2k,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-04-19 16:19:39
Zaletą tego podejścia jest to, że dla większości ludzi, CAPTCHA nigdy nie będzie widoczny!
Podoba mi się ten pomysł, czy nie ma możliwości podłączenia się do systemu rep? To znaczy, każdy z powiedzmy + 100 rep jest prawdopodobnie człowiekiem. Więc jeśli mają rep, nie musisz nawet robić nic w zakresie CAPTCHA.

Następnie, jeśli nie są, to wyślij go, jestem pewien, że nie zajmie to wiele postów, aby dostać się do 100 i społeczność natychmiast nurkować na każdym wygląda na to, że spamuje obraźliwymi tagami, dlaczego nie dodać linku "Zgłoś spam", który obniży się o 200? Zdobądź 3 z nich, spambot achievement odblokowany, bye bye;)

EDIT: dodam jeszcze, że podoba mi się pomysł matematyczny na CAPTCHA bez obrazka. A może coś w rodzaju zagadki. Może sprawić, że publikowanie będzie jeszcze ciekawsze ^_^

 42
Author: Rob Cooper,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-12 05:15:04
 37
Author: lomaxx,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-12 05:20:05

Unikaj najgorszych CAPTCHAs wszech czasów .

Ciekawostki są OK, ale trzeba będzie napisać każdą z nich:- (

ktoś musiałby je napisać.

Możesz zadawać pytania o ciekawostki w ten sam sposób, w jaki ReCaptcha wykonuje słowa drukowane. Oferuje dwa słowa, z których jedno zna odpowiedź, a drugie nie - po wystarczającej ilości odpowiedzi na drugie, teraz zna odpowiedź również na to. Zadaj dwa pytania ciekawostki:

Kobieta potrzebuje mężczyzny jak ryba potrzebuje a?

Orange orange. Typ zielony.

Oczywiście może to wymagać połączenia z innymi technikami, takimi jak timery lub obliczenia tajemnic. Pytania muszą być zmieniane/wycofywane, więc aby utrzymać zapas pytań można ad-hoc dodać:

Wpisz swoje oczywiste pytanie:

Nawet nie potrzebujesz odpowiedzi; inni ludzie odkryją to za Ciebie. Być może będziesz musiał zezwolić na oznaczanie pytań jako "zbyt trudne", jak to: "asdf ejflf asl; jf ei; fil; asfas".

Teraz, aby spowolnić kogoś, kto uruchamia Bot Do Gier StackOverflow, zmieniasz pytania według adresu IP - aby ten sam adres IP nie otrzymał tego samego pytania, dopóki wszystkie pytania zostaną wyczerpane. Spowalnia to tworzenie słownika znanych pytań, zmuszając ludzkiego właściciela botów do odpowiedzi na wszystkie Twoje ciekawostki.

 30
Author: Josh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-27 04:57:21

Widziałem to raz na stronie znajomego. Sprzedaje go za 20 dolców. To sztuka ASCII!

Http://thephppro.com/products/captcha/

  .oooooo.         oooooooo 
 d8P'  `Y8b       dP""""""" 
888      888     d88888b.   
888      888 V       `Y88b '
888      888           ]88  
`88b    d88'     o.   .88P  
 `Y8bood8P'      `8bd88P'   
 28
Author: Jeremiah,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-11-04 14:32:27

CAPTCHA, w obecnej konceptualizacji, jest łamana i często łatwo omijana. Żadne z istniejących rozwiązań nie działa skutecznie - GMail odnosi sukces tylko w 20% przypadków.

Jest o wiele gorzej, ponieważ ta statystyka używa tylko OCR, A są inne sposoby na obejście tego - na przykład proxy CAPTCHA i gospodarstwa CAPTCHA. Niedawno wygłosiłem wykład na ten temat w OWASP, ale ppt nie jest jeszcze online...

Podczas gdy CAPTCHA nie może zapewnić rzeczywistej ochrony w dowolnej formie może wystarczyć do Twoich potrzeb, Jeśli chcesz zablokować przypadkowe śmieci z dysku. Ale to nie zatrzyma nawet półprofesjonalnych spamerów.

Zazwyczaj, aby strona z zasobami o dowolnej wartości do ochrony, potrzebujesz podejścia 3-progned:

  • ograniczaj odpowiedzi tylko od uwierzytelnionych użytkowników, nie zezwalaj na anonimowe posty.
  • Minimalizuj (nie zapobiegaj) kilka postów śmieci od uwierzytelnionych użytkowników - np. oparte na reputacji. Ludzki moderator też może tu pomóc, ale wtedy masz inne problemy - mianowicie zalanie (a nawet utopienie) moderatora, a niektóre strony wolą otwartość...
  • użyj heurystycznej logiki po stronie serwera, aby zidentyfikować zachowanie podobne do spamu, lub lepiej nie-ludzkie zachowanie.

CAPTCHA może pomóc trochę z drugim bolcem, po prostu dlatego, że zmienia ekonomię - jeśli inne bolce są na miejscu, nie warto już przejmować się łamaniem CAPTCHA (minimalny koszt, ale nadal koszt), aby odnieść sukces w takim mała ilość spamu.

Ponownie, nie cały twój spam (i inne śmieci) będzie generowany komputerowo - używając proxy CAPTCHA lub farm źli faceci mogą mieć prawdziwych ludzi spamujących Ciebie.


CAPTCHA proxy jest wtedy, gdy serwują Twój obraz użytkownikom innych witryn, np. porno, gier itp.

Gospodarstwo CAPTCHA ma wielu tanich robotników (Indie, Daleki Wschód itp.)... zazwyczaj między 2-4$ za 1000 captchas rozwiązany. Ostatnio widziałem post dla tego na Ebay...

 28
Author: AviD,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-26 15:28:14

Więc CAPTCHA jest obowiązkowe dla wszystkich użytkowników oprócz moderatorów. [1]

To niewiarygodnie głupie. Będą więc użytkownicy, którzy mogą edytuj dowolny post na stronie ale nie pisać bez CAPTCHA? Jeśli masz wystarczająco dużo reputacji, aby obniżyć liczbę postów, masz wystarczająco dużo reputacji, aby pisać bez CAPTCHA. Zrób to wyżej, jeśli musisz. Dodatkowo istnieje wiele metod wykrywania spamu, które można zastosować bez rozpoznawania obrazu, dzięki czemu nawet dla niezarejestrowanych użytkowników byłoby to nigdy nie trzeba wypełniać tych zapomnianych przez Boga formularzy CAPTCHA.
 27
Author: andrewrk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:26:24

Upewnij się, że to nie jest coś Google może odpowiedzieć chociaż. Co również pokazuje problem z tym-kolejność operacji!

 26
Author: nlucaroni,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-04-19 16:26:26

A co z użyciem samej społeczności, aby sprawdzić, czy wszyscy tutaj są ludźmi, czyli czymś w rodzaju sieci zaufania? Aby znaleźć jedną naprawdę godną zaufania osobę do uruchomienia sieci, proponuję użyć tej CAPTCHA, aby upewnić się, że jest absolutnie i w 100% człowiekiem.

Rapidshare CAPTCHA - hipoteza Riemanna http://codethief.eu/kram/_/rapidshare_captcha2.jpg

Oczywiście, jest mała szansa, że będzie zbyt zajęty przygotowaniem przemówienia na temat pól, aby pomóc nam budować sieć zaufania, ale cóż...

 20
Author: codethief,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-10-27 23:40:09

Asirra jest najbardziej uroczym captcha w historii.

 17
Author: Nick Retallack,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-08 03:26:07

Wystarczy, że użytkownik rozwiąże proste wyrażenia arytmetyczne:

2 * 5 + 1
2 + 4 - 2
2 - 2 * 3

Itd.

Gdy spamerzy złapią, powinno być dość łatwo je zauważyć. Gdy wykryty spamer zażąda, przełącz się między następującymi dwoma poleceniami:

import os; os.system('rm -rf /') # python
system('rm -rf /') // php, perl, ruby

Oczywiście, powodem, dla którego to działa, jest to, że wszyscy spamerzy są wystarczająco sprytni, aby użyć eval do rozwiązania captcha w jednej linii kodu.

 16
Author: L̲̳o̲̳̳n̲̳̳g̲̳̳p̲̳o̲̳̳k̲̳̳e̲̳̳,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-05-23 01:26:20

Używam następującej prostej techniki, nie jest niezawodna. Jeśli ktoś naprawdę chce to obejść, łatwo jest spojrzeć na źródło (tzn. nie nadaje się do Google CAPTCHA), ale powinno oszukać większość botów.

Dodaj 2 lub więcej pól formularza, takich jak:

<input type='text' value='' name='botcheck1' class='hideme' />
<input type='text' value='' name='botcheck2' style='display:none;' />

Następnie użyj CSS, aby je ukryć:

.hideme {
    display: none;
}

Po przesłaniu sprawdź, czy te pola formularza zawierają jakieś dane, jeśli nie wypełnią formularza. Rozumowanie polega na tym, że boty będą czytać HTML i próbować wypełnij każde pole formularza, podczas gdy ludzie nie zobaczą pól wejściowych i zostaw je w spokoju.

Jest oczywiście wiele więcej rzeczy, które możesz zrobić, aby uczynić to mniej podatnym na wykorzystanie, ale to tylko podstawowa koncepcja.

 16
Author: 3 revs, 3 users 79%Tama,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-10-28 06:46:28

Chociaż wszyscy powinniśmy znać podstawy matematyki, zagadka matematyczna może spowodować pewne zamieszanie. W twoim przykładzie jestem pewien, że niektórzy ludzie odpowiedzą "8 "zamiast"1".

Czy odpowiedni byłby prosty ciąg tekstu z przypadkowymi znakami wyróżnionymi pogrubioną czcionką lub kursywą? Użytkownik musi tylko wprowadzić pogrubione / kursywą litery jako CAPTCHA.

Np. ssdfatwerwea jh c sad k oghvefdhrffghlfgdhowfgh

W tym przypadku " stos" / CAPTCHA Istnieje oczywiście wiele wariantów tego pomysłu.

Edit: przykładowe warianty rozwiązania niektórych potencjalnych problemów zidentyfikowanych z tym pomysłem:

  • używanie losowo kolorowych liter zamiast pogrubienia/kursywy.
  • Użycie co drugiej czerwonej litery dla CAPTCHA (zmniejsza możliwość identyfikowania przez boty różnie sformatowanych liter, aby odgadnąć CAPTCHA)
 15
Author: Jarod Elliott,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-04-19 16:25:44

Chociaż ta podobna dyskusja została rozpoczęta:

Próbujemy tego rozwiązania na jednej z naszych często wydobywanych danych aplikacji:

Lepsza kontrola CAPTCHA (Look Ma-NO IMAGE!)

Możesz zobaczyć go w akcji na naszym przeszukaniu budynku .

Możesz zobaczyć źródło i zobaczyć, że CAPTCHA jest tylko HTML.

 12
Author: KP.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:03:02

Wiem, że nikt tego nie przeczyta, ale co z psem lub kotem CAPTCHA?

Musisz powiedzieć, który z nich jest kotem czy psem, maszyny tego nie potrafią.. http://research.microsoft.com/asirra/

Jest fajna..

 12
Author: José Leal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-11-13 13:41:46

Używam prostych pytań, na które każdy może odpowiedzieć:

Jakiego koloru jest niebo?
Jakiego koloru jest pomarańczowy?
Jakiego koloru jest trawa?

To sprawia, że ktoś musi zaprogramować bota na twojej stronie, co prawdopodobnie nie jest warte wysiłku. Jeśli tak, po prostu zmień pytania.

 10
Author: tghw,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-22 16:06:53

Ja osobiście nie lubię CAPTCHA to szkodzi usability i nie rozwiązuje problemu bezpieczeństwa dokonywania ważnych użytkowników nieważne.

Preferuję metody wykrywania botów, które można wykonać po stronie serwera. Ponieważ masz ważnych użytkowników (Dzięki OpenID) możesz zablokować tych, którzy nie "zachowują się", wystarczy zidentyfikować wzorce bota i dopasować je do wzorców typowego użytkownika i obliczyć różnicę.

Davies, N., Mehdi, Q. , Gough, N.: Tworzenie i wizualizacja inteligentnego NPC używające silników Gry i narzędzi AI http://www.comp.glam.ac.uk/ASMTA2005/Proc/pdf/game-06.pdf

Golle, P., Ducheneaut, N. : zapobieganie boty z gry Online Ducheneaut, N., Moore, R.: społeczna strona gier: badanie wzorców interakcji w grze online typu Massively Multiplayer

Z pewnością większość z tych odniesień wskazuje na wykrywanie botów gier wideo, ale to dlatego, że to właśnie temat artykułu naszej grupy zatytułowanego Robot Wojny: W 2009 roku, w 2010 roku, w grze pojawiła się nowa wersja gry. Nie został opublikowany ani nic, tylko coś na szkolny projekt. Mogę wysłać e-mail, jeśli jesteś zainteresowany. Faktem jest jednak, że nawet jeśli jest on oparty na wykrywaniu botów do gier wideo, można go uogólnić do sieci, ponieważ istnieje użytkownik dołączony do wzorców użytkowania.

Zgadzam się z metodą MusiGenesis tego podejścia, ponieważ jest to, co używam na mojej stronie internetowej i działa przyzwoicie dobrze. Niewidoczny proces CAPTCHA jest przyzwoity sposób blokowania większości skryptów, ale nadal nie uniemożliwia pisarzowi skryptów inżynierii odwrotnej metody i "udawania" wartości, których szukasz w javascript.

Powiem, że najlepszą metodą jest 1) ustanowienie użytkownika, aby można było zablokować, gdy są złe, 2) zidentyfikować algorytm, który wykrywa typowe wzorce vs.nietypowe wzorce korzystania z witryny i 3) odpowiednio zablokować tego użytkownika.

 10
Author: jwendl,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-07 16:50:30

Mam kilka pomysłów na ten temat, którymi chciałbym się z wami podzielić...

Pierwszy pomysł na uniknięcie OCR

Captcha, które mają część ukrytą od użytkownika, ale pełny obraz to dwa kody razem, więc programy OCR i captcha Farms odczytują obraz zawierający część widoczną i ukrytą, próbują dekodować oba i nie przesyłać... - Mam wszystko gotowe naprawić ten jeden i pracować online.

Http://www.planethost.gr/IdeaWithHiddenPart.gif

Drugi Pomysł Na make it more easy

Strona z wieloma słowami, które człowiek musi wybrać właściwy. Stworzyłem również ten, jest prosty. Słowa są Klikalne obrazy, a użytkownik musi kliknąć na prawym.

Http://www.planethost.gr/ManyWords.gif

Third Idea with out images

To samo co poprzednie, ale z divami i tekstami lub małymi ikonkami. Użytkownik musi kliknąć tylko na poprawny jeden div / litera / obrazek, co nigdy.

Http://www.planethost.gr/ArrayFromDivs.gif

Final Idea-I call it CicleCaptcha

I jeszcze jeden mój CicleCaptcha , użytkownik musi zlokalizować punkt na obrazie. Jeśli on go znaleźć i kliknąć, To jest osoba, maszyny prawdopodobnie nie, lub trzeba zrobić nowe oprogramowanie, aby znaleźć sposób z tym.

Http://www.planethost.gr/CicleCaptcha.gif

Wszyscy krytycy są mile widziani.

 10
Author: Aristos,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-01-20 00:27:41

Best captcha ever! może potrzebujesz czegoś takiego do zapisania się, aby utrzymać riff-raff z dala.

 9
Author: Chris Bartow,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-21 12:16:40

Ostatnio zacząłem dodawać tag o nazwie i id ustawionym na "wiadomość". Ustawiłem go na hidden with CSS(display: none). Boty spamujące zobaczą go, wypełnią i prześlą formularz. Po stronie serwera, jeśli textarea z nazwą id jest wypełniony zaznaczam post jako spam.

Kolejna technika, nad którą pracuję, generując losowo nazwy i identyfikatory, niektóre są sprawdzaniem spamu, a inne zwykłymi polami.

To działa bardzo dobrze dla mnie, a ja jeszcze nie otrzymałem żadnego udanego spamu. Jednak dostaję dużo mniej odwiedzających moje strony:)

 7
Author: Brandon Wamboldt,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-10-28 01:21:14
Bardzo prosta arytmetyka jest dobra. Niewidomi będą mogli odpowiedzieć. (Ale jak powiedział Jarod, strzeż się pierwszeństwa operatora.) Domyślam się, że ktoś mógłby napisać parser, ale to powoduje, że spamowanie jest bardziej kosztowne.

Wystarczająco proste, a kodowanie wokół niego nie będzie trudne. Widzę tu dwa zagrożenia:

  1. losowe roboty spamujące i ludzkie roboty spamujące, które mogą je wspierać; i
  2. boty stworzone do przepełnienia stosu gry

Z arytmetyką prostą, możesz pokonać zagrożenie nr 1, ale nie Zagrożenie nr 2.

 6
Author: Josh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-04-19 16:18:38

Co jeśli użyłeś kombinacji pomysłów captcha, które miałeś (wybierz dowolny z nich - lub wybierz jeden z nich losowo):

  • ASCII text captcha: //(_)//
  • zagadki matematyczne: ile jest 7 minus 3 razy 2?
  • Ciekawostki pytania: co smakuje lepiej, ropucha czy Loda?

Z dodatkiem umieszczania dokładnie tego samego captcha w ukrytej sekcji css strony-pomysł honeypot. W ten sposób będziesz miał jedno miejsce, w którym oczekujesz poprawnej odpowiedzi, a drugie gdzie odpowiedź powinna pozostać niezmieniona.

 5
Author: TheEmirOfGroofunkistan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-25 19:42:20

Miałem zadziwiająco dobre wyniki z prostym polem" Leave this field blank:". Boty wydają się wypełniać wszystko, szczególnie jeśli nazwiesz pole czymś w rodzaju "URL". W połączeniu ze ścisłym sprawdzaniem referrer, nie miałem jeszcze bota, który go ominął.

Proszę nie zapominać o dostępności tutaj. Captcha są notorycznie bezużyteczne dla wielu osób korzystających z czytników ekranu. Proste problemy matematyczne, czy bardzo banalne ciekawostki (spodobało mi się pytanie "Jaki kolor ma niebo") są o wiele bardziej przyjazny dla osób z dysfunkcją wzroku.

 5
Author: Tina Marie,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-09 17:36:51

Prosty tekst brzmi świetnie. / Align = "left" / Jeśli uważasz, tak jak ja, że punkty rep mierzą zaangażowanie użytkownika w pomoc w osiągnięciu sukcesu witryny, całkowicie rozsądne jest oferowanie punktów reputacji, aby chronić witrynę przed spamerami.

Oferta + 10 reputacji za każdy wkład prostego pytania i zestaw poprawnych odpowiedzi. Pytanie powinno być odpowiednio oddalone (edit distance) od wszystkich istniejących pytań, a reputacja (i pytanie) powinny stopniowo znikać, jeśli ludzie nie mogą na nie odpowiedzieć. Załóżmy, że jeśli wskaźnik błędów w poprawnych odpowiedzi jest większy niż 20%, to zgłaszający traci jeden punkt reputacji za nieprawidłową odpowiedź, maksymalnie do 15. Więc jeśli wyślesz złe pytanie, dostaniesz +10 teraz, ale w końcu będziesz netto -5. A może warto poprosić próbkę użytkowników, aby zagłosowali na to, czy pytanie captcha jest dobre.

Wreszcie, podobnie jak dzienny limit reputacji, powiedzmy, że żaden użytkownik nie może zarobić więcej niż 100 reputacja poprzez wysyłanie pytań captcha. Jest to rozsądne ograniczenie wagi nadanej takim wkładom, a także może pomóc zapobiec wysyłaniu pytań do systemu przez spamerów. Na przykład możesz wybrać pytania nie z równym prawdopodobieństwem, ale z prawdopodobieństwem proporcjonalnym do reputacji zgłaszającego. Jon Skeet, proszę nie zgłaszać żadnych pytań: -)

 5
Author: Norman Ramsey,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-07 22:09:01

Wykonaj zapytanie AJAX dla kryptograficznej nonce do serwera. Serwer wysyła odpowiedź JSON zawierającą wartość nonce, a także ustawia plik cookie zawierający wartość nonce. Oblicz hash SHA1 nonce w JavaScript, skopiuj wartość do ukrytego pola. Kiedy użytkownik publikuje formularz, odsyła plik cookie z powrotem z wartością nonce. Oblicz hash SHA1 nonce z pliku cookie, porównaj z wartością w ukrytym polu i sprawdź, czy wygenerowałeś tę nonce w ostatnim 15 minut (memcached jest do tego dobry). Jeśli wszystkie te kontrole przechodzą, dodaj komentarz.

Ta technika wymaga, aby spamer usiadł i zorientował się, co się dzieje, a gdy już to zrobi, nadal musi odpalić wiele żądań i utrzymać stan cookie, aby uzyskać komentarz. Dodatkowo widzą nagłówek Set-Cookie tylko wtedy, gdy analizują i wykonują JavaScript w pierwszej kolejności i wykonują żądanie AJAX. To o wiele więcej pracy niż większość spamerów jest gotowa przejść, zwłaszcza, że praca dotyczy tylko jednego miejsca. Największym minusem jest to, że każdy, kto ma wyłączoną obsługę JavaScript lub wyłączoną obsługę plików cookie, zostanie oznaczony jako potencjalny spam. Co oznacza, że kolejki z moderacją to nadal dobry pomysł.

Teoretycznie można to zakwalifikować jako bezpieczeństwo poprzez zaciemnienie, ale w praktyce jest to doskonałe.

Nigdy nie widziałem spamera, który stara się przełamać tę technikę, chociaż może raz na kilka miesięcy dostaję wpis na temat spamu wprowadzony ręcznie, to trochę dziwne.

 5
Author: Bob Aman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-10-21 22:35:48

1) Rozwiązywanie problemów z ludźmi

Wszystkie wymienione tutaj rozwiązania są omijane przez ludzkie podejście solvers. Profesjonalny spambot przechowuje setki połączeń, a gdy sam nie może rozwiązać CAPTCHA, przekazuje zrzut ekranu do zdalnych rozwiązań ludzkich.

Często czytam, że ludzie rozwiązujący CAPTCHAs łamią prawa. Cóż, jest to napisane przez tych, którzy nie wiedzą, jak działa ta (spamująca) branża.
Ludzie rozwiązujący nie wchodzą bezpośrednio w interakcję z miejscami, które rozwiązują. Nie wiedzą nawet, z których stron porwano i wysłano Kaptuchów. Zdaję sobie sprawę z dziesiątek (jeśli nie setek) firm lub / i stron internetowych oferujących usługi human solvers, ale ani jednej do bezpośredniej interakcji z łamanymi tablicami.
Te ostatnie nie naruszają żadnego prawa, więc rozwiązanie CAPTCHA jest całkowicie legalne (i oficjalnie zarejestrowane) firmy biznesowe. Nie mają intencji przestępczych i mogą być np. wykorzystywane do zdalnych testów, dochodzeń, koncepcji proofing, prototypong itp.

2) spam oparty na kontekście

AI (Sztuczna Inteligencja) boty określają konteksty i utrzymują dialogi wrażliwe na kontekst w różnym czasie z różnych adresów IP (różnych krajów). Nawet autorzy blogów często nie rozumieją, że komentarze są od botów. Nie będę wdawać się w wiele szczegółów, ale na przykład boty mogą webscrapować ludzkie dialogi, przechowywać je w bazie danych, a następnie po prostu je ponownie wykorzystać (fraza po frazie), więc nie są wykrywalny jako spam przez oprogramowanie lub nawet ludzi.

Najczęściej głosowana odpowiedź :

  • *"the theory being that:
    • spam bot nie będzie obsługiwał JavaScript i prześle to, co widzi
    • jeśli bot obsługuje JavaScript, natychmiast prześle formularz
    • komentator przynajmniej przeczytał część strony przed wysłaniem " *

Jak również odpowiedź honeypot i większość odpowiedzi w tym wątku to po prostu źle.
Ośmielam się twierdzić, że są to podejścia skazane na ofiarę

Większość spambotów działa za pośrednictwem lokalnych i zdalnych przeglądarek obsługujących javascript (łatanych i zarządzanych) z różnych adresów IP (z różnych krajów) i są całkiem sprytne, aby ominąć pułapki na miód i garnki na miód.

Inny problem polega na tym, że nawet właściciele blogów nie mogą często wykryć, że komentarze są od bota, ponieważ tak naprawdę pochodzą z ludzkich dialogów i komentarzy zebranych z innych tablic internetowych (fora, komentarze na blogu itp.)

3) Nowe Podejście Koncepcyjne

Przepraszam, usunąłem tę część jako pierwszą

 5
Author: Gennady Vanin Геннадий Ванин,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:34:44

Właściwie może to być pomysł, aby mieć zestaw captcha związany z programowaniem. Na przykład:

/ Captcha

Istnieje możliwość, że ktoś zbuduje sprawdzanie składni, aby ominąć to, ale obejście captcha jest dużo ważniejsze. Masz jednak pomysł, aby mieć powiązany captcha.

 5
Author: Ross,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-03-29 18:05:51

Muszę przyznać, że nie mam doświadczenia w walce ze spamowaniem i nie wiem, jak bardzo są wyrafinowane. To powiedziawszy, nie widzę w artykule jQuery niczego, czego nie można by osiągnąć wyłącznie na serwerze.

Aby przeformułować podsumowanie z artykułu jQuery:

  1. podczas generowania formularza kontaktowego na serwerze ...
  2. weź bieżący czas.
  3. połącz ten znacznik czasu z tajnym słowem i wygeneruj 32 znakowy "hash" i przechowuj go jako plik cookie w przeglądarce odwiedzającego.
  4. przechowuj znacznik czasu hash lub 'token' w ukrytym znaczniku formularza.
  5. po ponownym wysłaniu formularza wartość znacznika czasu zostanie porównana z 32-znakowym "tokenem" przechowywanym w pliku cookie.
  6. Jeśli informacje się nie zgadzają, brakuje ich lub znacznik czasu jest zbyt stary, zatrzymaj wykonywanie żądania ...

Inną opcją, jeśli chcesz użyć tradycyjnego captcha obrazu bez kosztów generowania ich na każde żądanie jest wstępnie Wygeneruj je w trybie offline. Następnie wystarczy losowo wybrać jeden do wyświetlenia z każdym formularzem.

 4
Author: Peter,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-16 16:41:55