Przyjąłem odpowiedź, ale niestety wierzę, że utknęliśmy w naszym pierwotnym najgorszym scenariuszu: CAPTCHA wszyscy próbują kupić bzdury . Krótkie wyjaśnienie: buforowanie / farmy internetowe uniemożliwiają śledzenie trafień, a jakiekolwiek obejście (wysyłanie niebuforowanego sygnału nawigacyjnego do sieci, pisanie do zunifikowanego stołu itp.) Spowalnia działanie witryny bardziej niż boty. Prawdopodobnie jest jakiś drogi sprzęt firmy Cisco lub podobny, który może pomóc na wysokim poziomie, ale trudno uzasadnić koszt, jeśli CAPTCHA -ing wszystkich jest alternatywą. Spróbuję później pełniejszego wyjaśnienia, a także posprzątać to dla przyszłych poszukiwaczy (choć inni mogą spróbować, ponieważ jest to wiki społeczności).
Sytuacja
Chodzi o sprzedaż torby na bzdury na woot.com. Jestem prezesem Woot Workshop, filii Woot, która zajmuje się projektowaniem, pisze opisy produktów, podcasty, posty na blogach i moderuje fora. Pracuję z CSS / HTML i ledwo znam inne technologie. Ściśle współpracuję z programistami i omówiłem wszystkie odpowiedzi tutaj (i wiele innych pomysłów, które mieliśmy).
Użyteczność jest ogromną częścią mojej pracy, a sprawianie, że strona jest ekscytująca i przyjemna, to większość jej pozostałych. To tutaj wywodzą się trzy cele poniżej. CAPTCHA szkodzi użyteczności, a boty kradną radość i podekscytowanie z naszej badziewnej sprzedaży.
Boty dziesiątki razy uderzają w naszą stronę główną, skrobiąc drugi ekran (i / lub skanując nasz RSS) w celu wyprzedaży losowych bzdur. Gdy tylko to zobaczą, uruchamia drugi etap programu, który się loguje, klika Chcę, jeden, wypełnia formularz i kupuje badziewie.
Ocena
lc : Na stosie przepływu i innych stronach, które używają tej metody, prawie zawsze mają do czynienia z uwierzytelnionymi (zalogowanymi) użytkownikami, ponieważ wymaga tego próba wykonania zadania.
Na Woot anonimowi (niezalogowani) użytkownicy mogą przeglądać naszą stronę główną. Innymi słowy, trzaskające boty mogą nie być uwierzytelniane (i zasadniczo nie mogą być śledzone z wyjątkiem adresu IP).
Wracamy do skanowania adresów IP, które: a) jest dość bezużyteczne w dobie sieci w chmurze i zombie spambotów; b) łapie zbyt wielu niewinnych, biorąc pod uwagę liczbę firm pochodzących z jednego adresu IP (nie wspominając o problemach z niestatyczni dostawcy usług internetowych i potencjalne uderzenia wydajności w celu próby śledzenia tego).
Aha, i dzwonienie do nas byłoby najgorszym możliwym scenariuszem. Czy możemy prosić, żeby do ciebie zadzwonili?
Metody BradC : Neda Batcheldera wyglądają całkiem fajnie, ale są dość mocno zaprojektowane, aby pokonać boty zbudowane dla sieci witryn. Naszym problemem jest to, że boty są budowane specjalnie w celu pokonania naszej witryny. Niektóre z tych metod mogą prawdopodobnie działać przez krótki czas, dopóki skrypty nie rozwiną swoich botów, aby zignorować plaster miodu, przesłać ekran do pobliskich nazw etykiet zamiast identyfikatorów formularzy i użyć kontrolki przeglądarki obsługującej javascript.
lc ponownie : „Chyba że szum jest częścią twojego planu marketingowego”. Tak, zdecydowanie tak jest. Zaskoczenie, kiedy pojawia się przedmiot, a także podekscytowanie, jeśli uda ci się go zdobyć, jest prawdopodobnie tak samo ważne lub ważniejsze niż bzdury, które w rzeczywistości dostajesz. Wszystko, co eliminuje kto pierwszy ten lepszy, szkodzi emocjom związanym z „wygrywaniem” badziewia.
novatrust : I ja, na przykład, witam naszych nowych panów-botów. W rzeczywistości oferujemy kanały RSS, aby umożliwić aplikacjom zewnętrznym skanowanie naszej witryny w poszukiwaniu informacji o produkcie, ale nie przed kodem HTML strony głównej. Jeśli dobrze to interpretuję, twoje rozwiązanie pomaga celowi 2 (problemy z wydajnością), całkowicie poświęcając cel 1 i po prostu rezygnując z faktu, że boty będą kupować większość bzdur. Głosowałem za odpowiedzią, ponieważ pesymizm z ostatniego akapitu wydaje mi się trafny. Wygląda na to, że nie ma tu srebrnej kuli.
Reszta odpowiedzi zazwyczaj opiera się na śledzeniu adresów IP, które znowu wydaje się być zarówno bezużyteczne (w przypadku botnetów / zombie / sieci w chmurze), jak i szkodliwe (łapanie wielu niewinnych osób pochodzących z tego samego adresu IP).
Jakieś inne podejścia / pomysły? Moi programiści powtarzają „po prostu zróbmy CAPTCHA”, ale mam nadzieję, że istnieją mniej inwazyjne metody dla wszystkich rzeczywistych ludzi, którzy chcą trochę naszego badziewia.
Oryginalne pytanie
Powiedzmy, że sprzedajesz coś taniego, co ma bardzo wysoką postrzeganą wartość i masz bardzo ograniczoną ilość. Nikt nie wie dokładnie, kiedy sprzedasz ten przedmiot. Ponad milion osób regularnie odwiedza to, co sprzedajesz.
Skończysz ze skryptami i botami próbującymi programowo [a] dowiedzieć się, kiedy sprzedajesz rzeczony przedmiot, i [b] upewnij się, że są jednymi z pierwszych, którzy go kupią. To jest do kitu z dwóch powodów:
- Twoja strona została zablokowana przez nie-ludzi, spowalniając wszystko dla wszystkich.
- Skrypty ostatecznie „wygrywają” produkt, powodując, że stali bywalcy czują się oszukani.
Pozornie oczywistym rozwiązaniem jest utworzenie obręczy, na którą użytkownicy będą mogli skakać przed złożeniem zamówienia, ale są z tym co najmniej trzy problemy:
- Doświadczenie użytkownika jest do bani dla ludzi, którzy muszą rozszyfrować CAPTCHA, wybrać kota lub rozwiązać problem matematyczny.
- Jeśli dostrzegana korzyść jest wystarczająco wysoka, a tłum wystarczająco duży, pewna grupa obejdzie wszelkie poprawki, prowadzące do wyścigu zbrojeń. (Jest to szczególnie prawdziwe, im prostsza jest poprawka; ukryty formularz „komentarze”, zmiana układu elementów formularza, błędne oznaczanie ich, ukryty tekst „gotcha” wszystko będzie działać raz, a następnie należy go zmienić, aby walczyć z tym konkretnym formularzem .)
- Nawet jeśli skrypty nie są w stanie „rozwiązać” twojej poprawki, nie przeszkadza im to w zatrzaśnięciu twojej strony głównej, a następnie w alarmie, aby scripter wypełnił zamówienie ręcznie. Biorąc pod uwagę, że uzyskają przewagę dzięki rozwiązaniu [a], prawdopodobnie nadal wygrają [b], ponieważ będą pierwszymi ludźmi, którzy dotrą do strony zamówienia. Ponadto 1. nadal występuje, powodując błędy serwera i zmniejszając wydajność dla wszystkich.
Innym rozwiązaniem jest obserwowanie zbyt częstego uderzania adresów IP, blokowanie ich od zapory lub w inny sposób zapobieganie ich zamawianiu. Może to rozwiązać problem 2. i zapobiec [b], ale wydajność związana ze skanowaniem adresów IP jest ogromna i prawdopodobnie spowodowałaby więcej problemów, takich jak 1., niż powodowane przez skrypty. Ponadto możliwość tworzenia sieci w chmurze i zombie Spambot sprawia, że sprawdzanie adresów IP jest dość bezużyteczne.
Trzeci pomysł, wymuszający ładowanie formularza zamówienia przez jakiś czas (powiedzmy, pół sekundy) potencjalnie spowolniłby postęp szybkich zamówień, ale znowu, skrypty nadal byłyby pierwszymi osobami, przy dowolnej prędkości, która nie byłaby szkodliwa dla faktyczni użytkownicy.
Cele
- Sprzedaj przedmiot ludziom bez skryptów.
- Utrzymuj działanie strony z prędkością nie spowalnianą przez boty.
- Nie kłopotaj „normalnych” użytkowników jakimikolwiek zadaniami do wykonania, aby udowodnić, że są ludźmi.