Captcha GeeTest spiegato: come funziona e come risolverlo
GeeTest è un fornitore di captcha i cui widget chiedono al visitatore un compito visivo: trascinare un pezzo di puzzle in uno spazio vuoto, cliccare una serie di icone in un ordine preciso o seguire un breve movimento di cursore. È comune sui siti di e-commerce, nelle pagine di login e nei backend delle app in molte regioni. È anche una delle famiglie di captcha che Scarnox non risolve ancora. Questa guida spiega come funziona GeeTest, perché automatizzarlo è più difficile di un widget basato su token, quali approcci usa la gente in generale e a che punto è il supporto Scarnox oggi.
Cosa fa GeeTest su una pagina
Un captcha GeeTest di solito si carica in tre passaggi:
- La pagina include lo script di GeeTest e crea un widget con un ID captcha. In molte integrazioni quell'ID viene passato come parametro chiamato
gt. - Il widget chiede al server GeeTest una sfida nuova. La sfida include un valore
challengee le immagini o le posizioni delle tessere necessarie per il puzzle. - Quando il visitatore completa il compito, il widget rimanda il risultato al sito. Il backend del sito verifica poi quel risultato presso il provider del captcha prima di accettare il form.
Il terzo passaggio conta. Un valore dall'aspetto plausibile non basta, perché il server verifica un risultato legato a una sola sfida e che scade. Per questo un valore copiato da una sessione diversa fallisce, e riprodurre un vecchio risultato non funziona.
Perché GeeTest è più difficile di un widget a token
Con PopularCaptcha, la pagina ha bisogno di una sola stringa token, e una sola richiesta restituisce quella stringa. GeeTest differisce in tre modi:
- L'output è il risultato di un compito, non una stringa sola. Il sito si aspetta più valori che appartengono insieme, e devono provenire tutti dalla stessa sfida.
- La sfida è visiva e posizionale. Un solver deve trovare dove si incastra un pezzo di puzzle o quali icone corrispondono, poi produrre un movimento che sembri quello di una persona.
- I controlli guardano anche il comportamento, non solo la risposta. Velocità, percorso e tempistica possono essere ispezionati. Una posizione corretta eseguita in modo robotico può essere comunque rifiutata.
Per questo, la risoluzione di GeeTest è un lavoro a più passaggi: ottenere la sfida, individuare i bersagli nell'immagine, generare un movimento, inviarlo e leggere il verdetto. Ogni passaggio può fallire, e la sfida scade se aspetti troppo tra un passaggio e l'altro.
Approcci generali
Chi automatizza le pagine GeeTest di solito usa uno di tre approcci. Nessuno è una scorciatoia, e ciascuno ha dei costi:
- Pilotare un browser reale. Playwright o Selenium carica la pagina e il tuo script muove il cursore. Funziona meglio su un sito che controlli o su un ambiente di test che sei autorizzato a usare. Il browser è reale, ma il movimento deve comunque sembrare naturale.
- Corrispondenza di immagini. Il tuo codice scarica lo sfondo del puzzle, trova lo spazio con il template matching (per esempio con OpenCV) e calcola la distanza di trascinamento. Spesso è la parte più affidabile di una configurazione fai-da-te, e si rompe quando il fornitore cambia la struttura dell'immagine.
- Human-in-the-loop o un servizio di risoluzione. Una persona o un servizio gestito risolve la sfida e restituisce il risultato. Scarnox prevede di offrire questa opzione per GeeTest, ma non è ancora attiva.
Qualunque scelta fai, mantieni il perimetro onesto: automatizza flussi di tua proprietà, ambienti di test che sei autorizzato a usare o dati pubblici che sei autorizzato a raccogliere.
Trovare l'ID del captcha
Non ti serve codice per iniziare. Apri DevTools, ricarica la pagina e cerca geetest o gt nella scheda Network. La prima richiesta che carica il widget di solito mostra l'ID del captcha. Uno script piccolo può registrarlo, il che è utile quando vuoi accorgerti che una pagina cambia il suo widget:
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")
Il pattern qui sopra cerca un valore esadecimale di 32 caratteri accanto a gt. I fornitori cambiano il loro markup, quindi trattalo come punto di partenza e verifica l'output sulla pagina che stai testando.
A che punto è il supporto Scarnox
Sii chiaro su questo quando pianifichi un progetto:
- Attivo oggi: PopularCaptcha, proxyless, e con il tuo proxy.
- In arrivo: GeeTest, reCAPTCHA v2 e v3, Cloudflare Turnstile, AWS WAF e Arkose. Non costruire un flusso di produzione che dipenda da una risoluzione GeeTest finché non è elencata come attiva.
Se il tuo progetto ha bisogno di GeeTest adesso, la strada pratica è costruire tu i passaggi del browser e dell'immagine per le pagine che sei autorizzato a testare, e tenere il codice pronto a passare a un'API quando il supporto sarà disponibile. Nel frattempo puoi creare un account e iniziare con crediti di prova gratuiti, senza carta di credito. Così hai un flusso PopularCaptcha funzionante con cui testare e un punto dove inserire GeeTest in seguito. Per le tariffe attuali, consulta i prezzi attuali.
Usi legittimi
- Testare il tuo flusso di login o di checkout, quando un captcha blocca i test di regressione automatici.
- Verifiche di accessibilità che confermano che un visitatore che non riesce a risolvere un puzzle visivo ha comunque un'altra strada per completare un form.
- Monitorare un sito che sei autorizzato a osservare, per esempio verificando che un widget si carichi ancora dopo un deploy.
Non usare l'automazione dei captcha per creare account falsi, per attaccare un form di login o per acquistare scorte limitate. Questi usi violano le regole della maggior parte dei siti e non sono qualcosa che Scarnox supporta.