Arkose Labs FunCaptcha uitgelegd: enforcement-uitdagingen en oplossen
Arkose Labs, dat veel ontwikkelaars nog kennen als FunCaptcha, is een captcha-aanbieder die grote sites gebruiken voor aanmeldingen, inloggen en betalingen. Het bekendste kenmerk is de enforcement-uitdaging: een korte, spelachtige puzzel, zoals een voorwerp draaien of een patroon matchen, die verschijnt wanneer een risicomotor besluit dat een bezoeker extra controle nodig heeft. Scarnox-ondersteuning voor Arkose komt binnenkort. Deze gids legt uit hoe de uitdagingen werken, waarom ze moeilijker zijn dan eenvoudige widgets, en welke algemene aanpakken er zijn voor legitiem werk.
Hoe een Arkose-uitdaging wordt aangeleverd
De beschermde pagina laadt een Arkose-script en geeft het een publieke sleutel mee die de site identificeert. De uitdaging zelf wordt door de aanbieder geleverd, en de widget meldt het antwoord van de bezoeker terug in de vorm van een token. Zoals bij andere token-widgets controleert de backend van de site dat token bij de aanbieder voordat het resultaat wordt vertrouwd.
De publieke sleutel is de identifier die je zoekt wanneer je met een pagina wilt werken, net zoals een sitekey een PopularCaptcha- of reCAPTCHA-widget identificeert. In de gids over het vinden van de captcha-sitekey lees je hoe je identifiers op een pagina vindt.
Hoe de uitdagingen eruitzien
Arkose-uitdagingen zijn meestal kort en visueel. Voorbeelden zijn een afbeelding draaien tot ze rechtop staat, het passende item in een reeks selecteren, of een reeks volgen in een 3D-scène. Het ontwerp verandert vaak, en elke site kan een andere set uitdagingen gebruiken. De puzzel is ook een signaal op zich: de manier waarop de bezoeker beweegt en de tijd die hij nodig heeft, kunnen net zo belangrijk zijn als het uiteindelijke antwoord.
De risicomotor
Voordat er een uitdaging wordt getoond, geeft de aanbieder de sessie een score. Die score is gebaseerd op browsersignalen, apparaatkenmerken, de verzoekgeschiedenis en het gedrag op de pagina. Een bezoeker met laag risico kan slagen zonder uitdaging. Een bezoeker met hoger risico krijgt een of meer puzzels te zien, en een bezoeker met zeer hoog risico kan worden geblokkeerd.
Omdat de risicomotor per site wordt afgesteld en na verloop van tijd verandert, kan een generieke aanpak die op de ene site werkt op een andere site falen. Dat is een van de redenen waarom enforcement-uitdagingen moeilijker zijn om mee om te gaan dan eenvoudige widgets.
Waarom automatisering wordt gedetecteerd
Automatisering wordt om dezelfde redenen gemarkeerd als andere op score gebaseerde controles: een standaard headless browser, een nieuwe sessie zonder geschiedenis, een snel en regelmatig verzoekpatroon, en netwerkadressen met een slechte reputatie. Elk signaal verhoogt de risicoscore. De uitdaging vraagt dan iets dat automatisering niet goed kan, zoals een nauwkeurige, menselijke sleepbeweging.
Legitieme aanpakken
Voor je eigen tests en legitieme workflows verminderen deze aanpakken onnodige uitdagingen:
- Gebruik een echt browserprofiel met consistente instellingen, in plaats van een uitgeklede automatiseringsbuild.
- Houd sessies doorlopend zodat de bezoeker niet bij elke pagina nieuw lijkt.
- Beperk het aantal verzoeken tot een tempo dat een mens redelijkerwijs kan halen.
- Gebruik de testomgeving van de aanbieder als de site van jou is. Arkose en de meeste grote aanbieders bieden een manier om een integratie te testen zonder echte risicoscoring.
- Vraag de siteeigenaar om een allowlist, een API of een toegankelijk alternatief als je werk legitiem is en je toch wordt geblokkeerd.
Deze aanpakken verlagen hoe vaak een uitdaging verschijnt. Ze nemen het recht van de aanbieder om een sessie uit te dagen niet weg, en ze mogen niet worden gebruikt om loginbescherming te omzeilen op accounts die je niet bezit.
Wat een Arkose-solver zou doen
Een op tokens gebaseerde Arkose-solver zou de publieke sleutel en de URL van de pagina nemen, een geldig token maken en dat aan je code teruggeven. Je code zou het token dan met het formulier indienen voordat het verloopt. De vorm van de integratie zou lijken op de live PopularCaptcha-flow, maar de details verschillen, en Scarnox documenteert het tasktype en de velden in de API-referentie zodra de ondersteuning live gaat.
Scarnox lost Arkose vandaag niet live op. Het enige live tasktype is PopularCaptcha, zonder proxy. Arkose-ondersteuning komt binnenkort.
Waar de ethische grens ligt
Enforcement-uitdagingen bestaan om loginpagina's, betaalstromen en aanmeldformulieren te beschermen tegen misbruik. Elke solver gebruiken tegen die stromen om in te loggen op accounts die je niet bezit, om spamaccounts aan te maken of om beperkte voorraad vóór andere klanten te kopen, valt buiten de grenzen. Scarnox ondersteunt die gebruiken niet. Legitiem werk op een beschermde site begint bij de siteeigenaar, en het antwoord van de eigenaar bepaalt wat is toegestaan.
Waar je op moet letten voor een klus
Voordat je werk plant tegen een Arkose-beschermde flow, beantwoord je een paar vragen. Is de flow van jou? Als dat zo is, zijn de testomgeving van de aanbieder en je eigen stagingkopie de plek om te bouwen en te testen. Is de klus legitiem? Publieke informatie verzamelen op een manier die de site toestaat is legitiem; inloggen op accounts die niet van jou zijn, of op grote schaal accounts aanmaken, is dat niet. Biedt de site een API of datafeed waarmee de browserflow overbodig wordt? Veel sites doen dat, en dat is sneller en stabieler dan een uitdaging automatiseren.
Kijk daarna naar het volume. Enforcement-uitdagingen reageren op gedrag over tijd, dus een klus die op een lage, stabiele snelheid draait krijgt meestal minder uitdagingen dan een uitbarsting die in één keer draait. Plan het schema daarmee, en zorg dat de klus stopt en rapporteert wanneer hij een uitdaging tegenkomt waarvoor hij niet is ontworpen, in plaats van in een lus opnieuw te proberen.
Leg tot slot vooraf vast wat de klus doet wanneer de uitdaging niet kan worden voltooid. Een schone fout met een logregel is veel beter dan een herhaalstorm die de site beschadigt en je verkeer laat blokkeren.
Scrape verantwoord
Als de beschermde site een site is die je wilt scrapen, controleer dan eerst robots.txt en de servicevoorwaarden. Houd het tempo laag, vermijd persoonsgegevens die je niet nodig hebt, en zoek naar een API voordat je een browserworkflow bouwt. De gids over of webscraping legaal is behandelt de belangrijkste vragen.