Ich habe eine Antwort akzeptiert, aber leider glaube ich, dass wir an unserem ursprünglichen Worst-Case-Szenario festhalten : CAPTCHA alle bei Kaufversuchen des Mistes . Kurze Erklärung: Caching / Webfarmen machen es unmöglich, Treffer zu verfolgen, und jede Problemumgehung (Senden eines nicht zwischengespeicherten Web-Beacons, Schreiben an eine einheitliche Tabelle usw.) verlangsamt die Site schlechter als die Bots. Es gibt wahrscheinlich teure Hardware von Cisco oder dergleichen, die auf hohem Niveau helfen kann, aber es ist schwierig, die Kosten zu rechtfertigen, wenn CAPTCHA-ing für alle eine Alternative darstellt. Ich werde später eine ausführlichere Erklärung versuchen und diese für zukünftige Suchende bereinigen (obwohl andere es gerne versuchen können, da es sich um ein Community-Wiki handelt).
Situation
Hier geht es um die Tasche der Mistverkäufe auf woot.com. Ich bin der Präsident von Woot Workshop, der Tochtergesellschaft von Woot, die das Design übernimmt, die Produktbeschreibungen, Podcasts, Blog-Beiträge schreibt und die Foren moderiert. Ich arbeite mit CSS / HTML und bin mit anderen Technologien kaum vertraut. Ich arbeite eng mit den Entwicklern zusammen und habe alle Antworten hier (und viele andere Ideen, die wir hatten) durchgesprochen.
Benutzerfreundlichkeit ist ein wichtiger Teil meiner Arbeit, und die Website aufregend und unterhaltsam zu gestalten, ist der größte Teil des Restes. Hier ergeben sich die drei folgenden Ziele. CAPTCHA schadet der Benutzerfreundlichkeit und Bots stehlen den Spaß und die Aufregung aus unseren Mistverkäufen.
Bots schlagen unsere Titelseite zehnmal pro Sekunde auf den Bildschirm, um den Random Crap-Verkauf abzukratzen (und / oder unser RSS zu scannen). In dem Moment, in dem sie das sehen, löst es eine zweite Phase des Programms aus, die sich anmeldet, auf Ich möchte Eins klickt, das Formular ausfüllt und den Mist kauft.
Auswertung
lc : Auf Stackoverflow und anderen Sites, die diese Methode verwenden, handelt es sich fast immer um authentifizierte (angemeldete) Benutzer, da dies für die versuchte Aufgabe erforderlich ist.
Auf Woot können anonyme (nicht protokollierte) Benutzer unsere Homepage anzeigen. Mit anderen Worten, die Slamming-Bots können nicht authentifiziert sein (und im Wesentlichen nicht nachverfolgbar sein, außer nach IP-Adresse).
Wir suchen also wieder nach IPs, die a) in Zeiten von Cloud-Netzwerken und Spambot-Zombies ziemlich nutzlos sind und b) angesichts der Anzahl der Unternehmen, die von einer IP-Adresse stammen, zu viele Unschuldige fangen (ganz zu schweigen von den Problemen mit Nicht statische IP-ISPs und potenzielle Leistungseinbußen beim Versuch, dies zu verfolgen.
Oh, und Leute uns anrufen zu lassen, wäre das schlimmste Szenario. Können wir Sie anrufen lassen?
BradC : Die Methoden von Ned Batchelder sehen ziemlich cool aus, aber sie sind ziemlich fest darauf ausgelegt, Bots zu besiegen, die für ein Netzwerk von Websites erstellt wurden. Unser Problem ist, dass Bots speziell dafür gebaut wurden, unsere Site zu besiegen. Einige dieser Methoden könnten wahrscheinlich für kurze Zeit funktionieren, bis die Scripter ihre Bots weiterentwickelt haben, um den Honeypot zu ignorieren, nach nahegelegenen Labelnamen anstelle von Formular-IDs zu suchen und ein Javascript-fähiges Browser-Steuerelement zu verwenden.
lc nochmal : "Es sei denn natürlich, der Hype ist Teil Ihres Marketingplans." Ja, das ist es definitiv. Die Überraschung, wann der Gegenstand erscheint, sowie die Aufregung, wenn Sie es schaffen, einen zu bekommen, sind wahrscheinlich genauso wichtig oder wichtiger als der Mist, den Sie tatsächlich bekommen. Alles, was First-Come / First-Serve eliminiert, wirkt sich nachteilig auf den Nervenkitzel aus, den Mist zu „gewinnen“.
novatrust : Und ich begrüße unsere neuen Bot-Overlords. Wir bieten tatsächlich RSS-Feeds an, damit Apps von Drittanbietern unsere Website nach Produktinformationen durchsuchen können, jedoch nicht vor dem HTML-Code der Hauptwebsite. Wenn ich es richtig interpretiere, hilft Ihre Lösung Ziel 2 (Leistungsprobleme), indem sie Ziel 1 vollständig opfert und einfach die Tatsache aufgibt, dass Bots den größten Teil des Mistes kaufen. Ich habe Ihre Antwort positiv bewertet, weil sich Ihr Pessimismus im letzten Absatz für mich zutreffend anfühlt. Hier scheint es keine Silberkugel zu geben.
Der Rest der Antworten basiert im Allgemeinen auf IP-Tracking, das wiederum sowohl nutzlos (mit Botnetzen / Zombies / Cloud-Netzwerken) als auch schädlich (das Fangen vieler Unschuldiger, die von denselben IP-Zielen kommen) zu sein scheint.
Irgendwelche anderen Ansätze / Ideen? Meine Entwickler sagen immer wieder "Lass uns einfach CAPTCHA machen", aber ich hoffe, dass es weniger aufdringliche Methoden für alle tatsächlichen Menschen gibt, die etwas von unserem Mist wollen.
Ursprüngliche Frage
Angenommen, Sie verkaufen etwas Billiges, das einen sehr hohen wahrgenommenen Wert hat, und Sie haben eine sehr begrenzte Menge. Niemand weiß genau, wann Sie diesen Artikel verkaufen werden. Und über eine Million Menschen kommen regelmäßig vorbei, um zu sehen, was Sie verkaufen.
Am Ende haben Sie Skripter und Bots, die versuchen, programmatisch [a] herauszufinden, wann Sie diesen Artikel verkaufen, und [b] sicherstellen, dass sie zu den Ersten gehören, die ihn kaufen. Das ist aus zwei Gründen scheiße:
- Ihre Website wird von Nicht-Menschen zugeschlagen, was alles für alle verlangsamt.
- Die Scripter "gewinnen" das Produkt, was dazu führt, dass sich die Stammgäste betrogen fühlen.
Eine scheinbar offensichtliche Lösung besteht darin, einige Rahmen zu erstellen, durch die Ihre Benutzer springen können, bevor sie ihre Bestellung aufgeben. Dabei gibt es jedoch mindestens drei Probleme:
- Die Benutzererfahrung ist für Menschen zum Kotzen, da sie CAPTCHA entschlüsseln, die Katze auswählen oder ein mathematisches Problem lösen müssen.
- Wenn der wahrgenommene Nutzen hoch genug und die Menge groß genug ist, findet eine Gruppe ihren Weg um jede Optimierung herum, was zu einem Wettrüsten führt. (Dies gilt insbesondere, je einfacher die Optimierung ist. Versteckte 'Kommentare'-Formulare, Neuanordnen der Formularelemente, falsche Beschriftung, versteckte' Gotcha'-Texte funktionieren alle einmal und müssen dann geändert werden, um die Ausrichtung auf dieses spezielle Formular zu bekämpfen .)
- Selbst wenn die Scripter Ihre Optimierung nicht "lösen" können, verhindert dies nicht, dass sie Ihre Startseite zuschlagen und dann einen Alarm auslösen, damit der Scripter die Bestellung manuell ausfüllt. Da sie den Vorteil haben, [a] zu lösen, werden sie wahrscheinlich immer noch gewinnen [b], da sie die ersten Menschen sein werden, die die Bestellseite erreichen. Darüber hinaus tritt 1. immer noch auf, was zu Serverfehlern und einer verminderten Leistung für alle führt.
Eine andere Lösung besteht darin, auf zu häufig auftretende IPs zu achten, sie von der Firewall zu blockieren oder auf andere Weise zu verhindern, dass sie bestellt werden. Dies könnte 2. lösen und [b] verhindern, aber der Leistungsverlust beim Scannen nach IPs ist massiv und würde wahrscheinlich mehr Probleme wie 1. verursachen, als die Scripter alleine verursacht haben. Darüber hinaus macht die Möglichkeit von Cloud-Netzwerken und Spambot-Zombies die IP-Überprüfung ziemlich nutzlos.
Eine dritte Idee, die das Laden des Bestellformulars für einige Zeit (z. B. eine halbe Sekunde) erzwingt, würde möglicherweise den Fortschritt der schnellen Bestellungen verlangsamen, aber auch hier wären die Skripter immer noch die ersten Personen, bei jeder Geschwindigkeit, die nicht nachteilig ist tatsächliche Benutzer.
Tore
- Verkaufe den Gegenstand an Menschen, die keine Skripte schreiben.
- Halten Sie die Site mit einer Geschwindigkeit laufen, die nicht von Bots verlangsamt wird.
- Belästigen Sie die "normalen" Benutzer nicht mit Aufgaben, um zu beweisen, dass sie Menschen sind.