Scarnox · Blog

Arkose Labs FunCaptcha erklärt: Enforcement-Challenges und Lösung

Arkose Labs, das viele Entwickler noch als FunCaptcha kennen, ist ein Captcha-Anbieter, den große Websites für Registrierungen, Logins und Zahlungen einsetzen. Sein bekanntestes Merkmal ist die Enforcement-Challenge: ein kurzes, spielähnliches Rätsel, etwa das Drehen eines Objekts oder das Zuordnen eines Musters, das erscheint, wenn eine Risikoengine entscheidet, dass ein Besucher genauer geprüft werden muss. Die Unterstützung für Arkose in Scarnox kommt bald. Dieser Leitfaden erklärt, wie die Challenges funktionieren, warum sie schwieriger sind als einfache Widgets, und welche allgemeinen Ansätze es für legitime Arbeit gibt.

So wird eine Arkose-Challenge ausgeliefert

Die geschützte Seite lädt ein Arkose-Skript und übergibt ihm einen öffentlichen Schlüssel, der die Website identifiziert. Die Challenge selbst wird vom Anbieter ausgeliefert, und das Widget meldet die Antwort des Besuchers in Form eines Tokens zurück. Wie bei anderen Token-Widgets prüft das Backend der Website das Token beim Anbieter, bevor es dem Ergebnis vertraut.

Der öffentliche Schlüssel ist der Bezeichner, nach dem Sie suchen, wenn Sie mit einer Seite arbeiten wollen, ähnlich wie ein Sitekey ein PopularCaptcha- oder reCAPTCHA-Widget identifiziert. Der Leitfaden Captcha-Sitekey finden erklärt, wie Sie diese Bezeichner auf einer Seite finden.

Wie die Challenges aussehen

Arkose-Challenges sind meist kurz und visuell. Beispiele sind das Drehen eines Bildes, bis es aufrecht steht, das Auswählen des passenden Elements aus einer Gruppe oder das Verfolgen einer Abfolge in einer 3D-Szene. Das Design ändert sich oft, und jede Website kann einen anderen Satz von Challenges verwenden. Das Rätsel ist außerdem selbst ein Signal: Wie sich der Besucher bewegt und wie lange er braucht, kann genauso wichtig sein wie die finale Antwort.

Die Risikoengine

Bevor eine Challenge gezeigt wird, bewertet der Anbieter die Sitzung. Die Bewertung stützt sich auf Browser-Signale, Geräteeigenschaften, die Anfragehistorie und das Verhalten auf der Seite. Ein Besucher mit niedrigem Risiko besteht womöglich ohne Challenge. Ein Besucher mit höherem Risiko sieht ein oder mehrere Rätsel, und ein Besucher mit sehr hohem Risiko wird eventuell blockiert.

Da die Risikoengine pro Website abgestimmt ist und sich mit der Zeit ändert, kann ein allgemeiner Ansatz, der auf einer Website funktioniert, auf einer anderen scheitern. Das ist einer der Gründe, warum Enforcement-Challenges schwieriger zu handhaben sind als einfache Widgets.

Warum Automatisierung auffällt

Automatisierung wird aus denselben Gründen markiert wie bei anderen scorebasierten Prüfungen: ein Standard-Headless-Browser, eine neue Sitzung ohne Verlauf, ein schnelles und gleichmäßiges Anfragemuster und Netzwerkadressen mit schlechtem Ruf. Jedes Signal erhöht den Risiko-Score. Die Challenge verlangt dann etwas, das Automatisierung nicht gut kann, zum Beispiel ein genaues, menschlich wirkendes Ziehen.

Legitime Ansätze

Für Ihre eigenen Tests und legitime Workflows verringern diese Ansätze unnötige Challenges:

  1. Ein echtes Browser-Profil verwenden mit konsistenten Einstellungen, statt eines abgespeckten Automatisierungs-Builds.
  2. Sitzungen durchgehend halten, damit der Besucher auf jeder Seite nicht wie neu aussieht.
  3. Anfragen takten in einem Tempo, das ein Mensch plausibel erzeugen könnte.
  4. Die Testumgebung des Anbieters nutzen, wenn die Website Ihnen gehört. Arkose und die meisten großen Anbieter bieten eine Möglichkeit, eine Integration ohne echte Risikobewertung zu testen.
  5. Den Website-Betreiber fragen nach einer Allowlist, einer API oder einer barrierefreien Alternative, wenn Ihre Arbeit legitim ist und trotzdem blockiert wird.

Diese Ansätze senken, wie oft eine Challenge erscheint. Sie heben das Recht des Anbieters nicht auf, eine Sitzung zu prüfen, und sie dürfen nicht genutzt werden, um den Login-Schutz für Konten zu umgehen, die Ihnen nicht gehören.

Was ein Arkose-Solver tun würde

Ein tokenbasierter Arkose-Solver würde den öffentlichen Schlüssel und die Seiten-URL entgegennehmen, ein gültiges Token erzeugen und es an Ihren Code zurückgeben. Ihr Code würde das Token dann vor dem Ablauf zusammen mit dem Formular absenden. Der Aufbau der Integration würde dem aktuellen PopularCaptcha-Ablauf ähneln, aber die Details unterscheiden sich, und Scarnox wird Aufgabentyp und Felder in der API-Referenz dokumentieren, sobald die Unterstützung startet.

Scarnox löst Arkose heute nicht live. Der einzige live verfügbare Aufgabentyp ist PopularCaptcha, proxyless. Die Arkose-Unterstützung kommt bald.

Wo die ethische Grenze liegt

Enforcement-Challenges gibt es, um Login-Seiten, Zahlungsabläufe und Registrierungsformulare vor Missbrauch zu schützen. Einen Solver gegen diese Abläufe einzusetzen, um sich in Konten anzumelden, die Ihnen nicht gehören, Spam-Konten zu erstellen oder limitierte Ware vor anderen Kunden zu kaufen, ist tabu. Scarnox unterstützt diese Nutzungen nicht. Legitime Arbeit an einer geschützten Website sollte mit dem Betreiber beginnen, und dessen Antwort entscheidet, was erlaubt ist.

Was Sie vor einem Auftrag prüfen sollten

Bevor Sie Arbeit an einem Arkose-geschützten Ablauf planen, beantworten Sie ein paar Fragen. Gehört der Ablauf Ihnen? Wenn ja, sind die Testumgebung des Anbieters und Ihre eigene Staging-Kopie der richtige Ort, um zu bauen und zu testen. Ist der Auftrag legitim? Öffentliche Informationen auf eine Weise zu sammeln, die die Website erlaubt, ist legitim. Sich bei Konten anzumelden, die nicht Ihnen gehören, oder Konten in großem Umfang anzulegen, ist es nicht. Bietet die Website eine API oder einen Datenfeed, der den Browser-Ablauf überflüssig macht? Viele Websites tun das, und es ist schneller und stabiler, als eine Challenge zu automatisieren.

Dann schauen Sie sich das Volumen an. Enforcement-Challenges reagieren auf das Verhalten über die Zeit, daher bekommt ein Auftrag mit niedriger, gleichmäßiger Rate meist weniger Challenges als ein Schwall, der auf einmal läuft. Planen Sie den Zeitplan entsprechend, und sorgen Sie dafür, dass der Auftrag anhält und meldet, wenn er auf eine Challenge trifft, für die er nicht ausgelegt ist, statt in einer Schleife weiterzuversuchen.

Legen Sie zuletzt im Voraus fest, was der Auftrag tut, wenn die Challenge nicht gelöst werden kann. Ein sauberer Fehlschlag mit Protokolleintrag ist weit besser als ein Wiederholungs-Sturm, der die Website belastet und Ihren Traffic blockieren lässt.

Scrape verantwortungsvoll

Wenn Sie eine geschützte Website scrapen wollen, prüfen Sie zuerst die robots.txt und die Nutzungsbedingungen. Halten Sie die Rate niedrig, vermeiden Sie personenbezogene Daten, die Sie nicht brauchen, und suchen Sie nach einer API, bevor Sie einen Browser-Ablauf bauen. Der Leitfaden Ist Web Scraping legal? behandelt die wichtigsten Fragen.

Nächste Schritte