Ich habe gerade darüber nachgedacht, wie schwierig Recaptcha wird, als ich über eine andere mögliche Lösung nachdachte. Bilder werden nicht ewig dauern, also werden wir eines Tages etwas anderes brauchen - wie menschliche Logik oder Emotionen. Google und andere versuchen, Bilder nach Kategorien zu gruppieren (finden Sie das Bild, das nicht dazu gehört), dies erfordert jedoch eine große Anzahl von Bildern und funktioniert nicht für Blinde.
Was wäre, wenn eine riesige Sammlung von Texten gesammelt würde (gemeinfreie Bücher aus jeder Sprache) und dem Benutzer ein Satz mit 1 (oder 2) Wörtern angezeigt würde, die eine Auswahlbox darstellen? Nur Computer, die die richtige englische / spanische / deutsche Grammatik kannten, konnten erkennen, welches der Wörter in den Satz gehörte.
Gibt es Probleme mit diesem Ansatz? Ich würde davon ausgehen, dass es für jeden, der die Sprache kennt, in der das Urteil angezeigt wurde, einfach genug ist, die Antwort leichter herauszufinden, als zu versuchen, den reCAPTCHA-Text zu lesen. Außerdem würde das Speichern einer wahnsinnigen Anzahl von Sätzen nur ein paar Gigabyte Speicherplatz beanspruchen und nicht annähernd die CPU-Zeit in Anspruch nehmen, um Bilder / Audioaufnahmen zu erstellen. Mit anderen Worten, jeder kann sein eigenes Captcha-System mit minimalen Auswirkungen auf die Systemleistung hosten.
Gibt es ein Problem mit diesem Ansatz? Insbesondere suche ich nach dem Hauptproblem bei diesem Ansatz.
Antworten:
Zuerst gebe ich Ihnen IBMs Watson . Ich denke, das Rechnen hat das einfache Ausfüllen der leeren Sprachprobleme weit übertroffen .
Als nächstes gebe ich Ihnen alle in der Software implementierten Rechtschreib- / Grammatikprüfungen. In> 90% der Fälle wird festgestellt, ob ein Wort in einem Satz grammatikalisch korrekt ist. Ich werde sogar meinen Hals rausstrecken und sagen, dass sie besser lesen und schreiben können als die meisten Menschen, die ich kenne.
Ich glaube nicht, dass Ihre CAPTCHA-Idee so gut funktioniert, wie Sie es erwarten ...
quelle
Mal sehen, wie lange würde es dauern, immer die erste Wahl zu treffen und sie schließlich richtig zu machen?
quelle
Wenn Sie Sätze aus gemeinfreien Büchern ziehen, muss ein Bot nichts über Grammatik wissen. Es müsste lediglich dieselben Sätze indizieren und eine Suche durchführen, um herauszufinden, welches Wort der tatsächlich verwendete Satz ist. Und das setzt voraus, dass Sie das von Jeff O vorgeschlagene Problem vernünftig lösen, wo Sie das Problem umgehen können, indem Sie jedes Mal die erste Option erraten.
Außerdem wären viele der Sätze im Universum gemeinfreier Bücher für diese Art von Bestrebungen ungeeignet. Viele wären ohne Kontext mehrdeutig. Viele würden anstößige Inhalte enthalten (stellen Sie sich vor, Sie präsentieren einen zufälligen Satz von Huckleberry Finn). Sie müssten also einen angemessenen Aufwand betreiben, um zu einer Reihe von Sätzen zu gelangen, die nicht anstößig und nicht mehrdeutig sind. Wenn Sie akzeptieren, dass einige Sätze mehrdeutig sind, verlieren Sie einen Großteil der Fähigkeit, Bots für falsches Raten zu bestrafen.
quelle
Ein schwierigeres Problem für Bots wäre, ein Wort aus einem Satz zu entfernen und dann eine Auswahl zwischen vier verschiedenen Wörtern desselben Wortteils zu treffen. (ZB entfernen Sie ein Substantiv; welches dieser vier Substantive passt hier am besten?)
Tagging- und Parsing-Algorithmen sind nicht perfekt, aber korpusbasierte Ansätze haben einen Punkt erreicht, an dem Sie einen Parser gut genug trainieren können, um die Chancen eines CAPTCHA mit Standard- oder Open-Source-Software zu übertreffen. (Wenn Sie in der Lautstärke spammen, ist es in Ordnung, wenn einige Nachrichten nicht durchkommen, solange genug davon ausreichen, um Ihre Gesamterfolgsrate zu erhöhen.)
Computer sind jedoch noch nicht so gut mit Semantik.
quelle
Der größte Teil des Spam, den ich heutzutage bekomme, wird nicht von Bots generiert. Ich bekomme viel Spam aus Ländern der Dritten Welt, in denen Leute für ein paar Cent pro Stunde eingestellt werden, um Nachrichten in Foren und Blogs und so weiter zu posten.
Kein System, das zwischen Mensch und Computer unterscheidet, wird dies aufhalten.
Aus diesem Grund habe ich CAPTCHA auf meinen Websites vollständig abgeschafft. Stattdessen habe ich eine ziemlich einfache Javascript-basierte Lösung (im Grunde ordnet Javascript, das auf dem Client ausgeführt wird, Felder neu an, sodass es fehlschlägt, wenn Sie mit deaktiviertem Javascript posten). Dies stoppt 95% des Bot-Spam, hat aber offensichtlich keine Auswirkungen auf den menschlichen Spam - aber ein CAPTCHA auch nicht.
quelle
Die Antwort könnte subjektiv werden (sie ist in Wirklichkeit nicht subjektiv, aber das Fehlen von Sprachkonzepten erstreckt sich über alle Gesellschaften) und für diejenigen schwierig sein, die die Sprache nicht muttersprachlich sprechen.
Wenn eine endliche Liste von grammatikalischen Regeln (die jede Sprache hat) präsentiert wird, wird es einfach ein Algorithmus; Jetzt für jede Maschine zugänglich, die bereit ist, den Algorithmus zu implementieren.
quelle
Aber wenn man diese ernsten Fallstricke ignoriert, gibt es das Problem der Sprachen.
Agglutinierende Sprachen wie Ungarisch oder Finnisch eignen sich leicht für diese Art von Captchas, da Wörter viele Suffixe haben können und jedes einen anderen Zweck im Satz erfüllt (z. B. hat dasselbe Substantiv ein anderes Suffix, wenn es als Objekt oder Subjekt verwendet wird) Die Regeln sind nur für Menschen kompliziert, eine Maschine findet in wenigen Versuchen die richtige.
Isolierende Sprachen (Englisch ist ein ungefähres Beispiel, Mandarin-Chinesisch ein viel saubereres Beispiel) sind noch schlimmer, da die Grammatik hauptsächlich durch die Position im Satz und nicht durch die Wortform bestimmt wird.
Fusionssprachen wie Russisch oder Griechisch werfen wahrscheinlich noch weitere Probleme auf und so weiter.
Zusammenfassend lässt sich sagen, dass sprachliche Rätsel, die sich gut übersetzen lassen und nur schwer zufällig zu erraten sind, notorisch schwer zu finden sind. Es ist wahrscheinlich viel einfacher, sich auf die Semantik als auf die Syntax zu konzentrieren. Beispiel: "Setzen Sie die folgende Sequenz fort: Donnerstag, Mittwoch, Dienstag ..." oder "Backen, Braten, Braten ..." und so weiter.
quelle
Die übliche Idee hinter einem Captcha ist, dass es Bots fast immer stoppen sollte. Eine Mehrfachauswahl zwischen N Antworten stoppt nur den Bot (N - 1) / N der Zeit, sodass der Bot in durchschnittlich N Versuchen durchkommt.
Sie können Zeitüberschreitungen für falsche Captcha-Antworten implementieren, aber Sie können diesbezüglich nicht zu streng sein, ohne Menschen ernsthaft zu belästigen, die nicht gut Englisch sprechen (oder was auch immer) oder Probleme mit ausgewählten Feldern haben (zitternde Hände, schlechte Mäuse usw.) Behinderungen). Darüber hinaus werden Timeouts ein Botnetz nicht aufhalten, da die Vermutungen von verschiedenen IPs stammen können.
Wie stellen Sie außerdem sicher, dass es nur eine legitime Antwort gibt? Ein zufällig ausgewählter Satz aus Project Gutenberg kann bei mehreren zufällig ausgewählten Substantiven sinnvoll sein, aber nur eines ist die richtige Antwort.
quelle
Alles, was Sie tun, ist, es den Menschen schwerer zu machen, Ihre Website zu nutzen, während Sie für die Bots überhaupt keine Hindernisse hinzufügen.
Sie sollten sich lieber darauf konzentrieren, einen Mechanismus zu erstellen, der automatisch erkennt, ob etwas, das veröffentlicht wird, Spam ist, und den Beitrag blockiert, wenn dies der Fall ist (z. B. auf menschliche Mäßigung verschieben und dem Poster eine Nachricht in diesem Umfang geben).
CAPTCHAs sind an einem Punkt angelangt, an dem sie so nervig sind, dass ich Websites, die sie verwenden, immer mehr vermeide, und viele mit mir. Dies gilt insbesondere, da allgemein bekannt ist, dass sie keinerlei Auswirkungen auf Spambots haben.
quelle