Scarnox · Blog

GeeTest-captcha uitgelegd: hoe het werkt en hoe je het oplost

GeeTest is een captchaleverancier wiens widgets een bezoeker vragen een visuele taak op te lossen: een puzzelstuk in een gat slepen, een reeks iconen in een bepaalde volgorde aanklikken, of een korte schuifbeweging maken. Het komt veel voor op e-commercesites, inlogpagina's en app-backends in veel regio's. Het is ook een van de captchafamilies die Scarnox nog niet oplost. Deze gids legt uit hoe GeeTest werkt, waarom het automatiseren ervan moeilijker is dan een token-widget, welke aanpakken mensen in het algemeen gebruiken, en waar Scarnox-ondersteuning vandaag staat.

Wat GeeTest op een pagina doet

Een GeeTest-captcha laadt meestal in drie stappen:

  1. De pagina bevat het GeeTest-script en maakt een widget met een captcha-ID. In veel integraties wordt die ID doorgegeven als een parameter die gt heet.
  2. De widget vraagt de GeeTest-server om een nieuwe uitdaging. De uitdaging bevat een waarde challenge en de afbeeldingen of tegelposities die nodig zijn voor de puzzel.
  3. Wanneer de bezoeker de taak afrondt, stuurt de widget het resultaat terug naar de site. De backend van de site verifieert dat resultaat dan bij de captchaleverancier voordat het formulier wordt geaccepteerd.

De derde stap is belangrijk. Een waarde die er plausibel uitziet is niet genoeg, want de server controleert een resultaat dat aan één uitdaging is gekoppeld en verloopt. Daarom faalt een waarde die uit een andere sessie is gekopieerd, en werkt het opnieuw afspelen van een oud resultaat niet.

Waarom GeeTest moeilijker is dan een token-widget

Bij PopularCaptcha heeft de pagina één tokenstring nodig, en één verzoek levert die string op. GeeTest verschilt op drie punten:

Daarom is GeeTest oplossen een taak in meerdere stappen: de uitdaging ophalen, de doelen in de afbeelding vinden, een beweging genereren, die indienen en het oordeel lezen. Elke stap kan falen, en de uitdaging verloopt als je tussen de stappen te lang wacht.

Algemene aanpakken

Mensen die GeeTest-pagina's automatiseren gebruiken over het algemeen één van drie aanpakken. Geen van die aanpakken is een kortere weg, en elk heeft kosten:

Hoe je ook kiest, houd de reikwijdte eerlijk: automatiseer flows die van jou zijn, testomgevingen die je mag gebruiken, of publieke data die je mag verzamelen.

De captcha-ID vinden

Je hebt geen code nodig om te beginnen. Open DevTools, laad de pagina opnieuw en zoek in het tabblad Network naar geetest of gt. Het eerste verzoek dat de widget laadt, toont meestal de captcha-ID. Een klein script kan die vastleggen, wat handig is wanneer je wilt merken dat een pagina zijn widget verandert:

import re
import requests

html = requests.get("https://example.com/login", timeout=30).text
match = re.search(r"gt['\"]?\s*[:=]\s*['\"]([a-f0-9]{32})['\"]", html)
print("captcha id:", match.group(1) if match else "not found")

Het patroon hierboven zoekt naar een hexadecimale waarde van 32 tekens naast gt. Leveranciers veranderen hun opmaak, dus zie dit als startpunt en controleer de uitvoer tegen de pagina die je test.

Waar Scarnox-ondersteuning staat

Wees hier duidelijk over wanneer je een project plant:

Als je project nu GeeTest nodig heeft, is de praktische route om de browser- en afbeeldingsstappen zelf te bouwen voor pagina's die je mag testen, en je code klaar te houden om over te schakelen naar een API wanneer de ondersteuning live gaat. Tussentijds kun je een account aanmaken en beginnen met gratis proefcredit, zonder creditcard. Dat geeft je een werkende PopularCaptcha-flow om mee te testen en een plek om GeeTest later in te pluggen. Voor actuele tarieven, zie actuele prijzen.

Legitiem gebruik

Gebruik captcha-automatisering niet om nepaccounts aan te maken, om een loginformulier aan te vallen of om beperkte voorraad te grijpen. Die gebruiken breken de regels van de meeste sites en worden door Scarnox niet ondersteund.

Volgende stappen