Tutorials

Migrer de l'extension DeathByCaptcha vers l'extension CaptchaAI

Périmètre sûr : Ce guide s'applique à vos propres applications, à vos environnements de QA et de préproduction, ou à des systèmes que vous êtes autorisé par écrit à tester. Il ne décrit aucune technique visant à échapper aux protections.

Une migration d'extension rate rarement à cause du code : elle rate à cause du profil de navigateur. Tant que l'ancienne extension reste chargée dans le même profil Chrome, deux gestionnaires écoutent le même défi CAPTCHA et personne ne sait lequel a répondu. Traitez la bascule vers l'extension CaptchaAI comme un changement d'environnement en quatre temps : profil propre, clé API hors du code, appel de résolution encapsulé, token vérifié côté backend.

Ce qui change concrètement entre les deux extensions

Point à arbitrer À vérifier avant la bascule Côté CaptchaAI
Compte et solde Deux abonnements actifs brouillent l'attribution des coûts. Authentification par votre clé ; solde suivi depuis le tableau de bord.
Types de défis Listez les types présents sur vos pages. reCAPTCHA v2 et v3, Cloudflare Turnstile, Cloudflare Challenge, GeeTest v3, CAPTCHA image/OCR et grilles ; CaptchaFox (bêta), Friendly Captcha (bêta), Lemin (bêta). hCaptcha et FunCaptcha (Arkose Labs) : non pris en charge ; GeeTest v4 : à venir.
Facturation Convertissez votre volume mensuel en défis simultanés. Au thread concurrent, résolutions illimitées par thread : BASIC ($15/mois, 5 threads), STANDARD ($30/mois, 15 threads), ADVANCE ($90/mois, 50 threads).

Étape 1 : partez d'un profil de navigateur dédié

Créez un profil Chrome neuf, chargez-y uniquement l'extension CaptchaAI et laissez l'ancien intact le temps de la comparaison : deux environnements mesurables séparément, sans désinstallation précipitée. Sur un runner CI, un --user-data-dir par fournisseur suffit.

Étape 2 : sortez la clé API du code

Stockez la clé CaptchaAI dans un coffre ou un secret d'intégration continue, jamais dans un dépôt. Une équipe QA dont les suites tournent chez OVHcloud ou Scaleway l'injecte au démarrage du conteneur.

  • Une clé dédiée au pilote, révocable sans toucher à la production.
  • Le solde vérifié avant la première exécution longue : un solde vide ressemble à un bug d'intégration.

Étape 3 : encapsulez l'appel de résolution

Écrivez une fonction unique plutôt que de disperser la logique dans vos tests : elle prend le sitekey et l'URL de votre page, renvoie un token et trace la durée et le code retour. Changement de type, timeout, retry : tout se règle à un seul endroit, et la comparaison reste honnête.

Étape 4 : vérifiez le token côté backend

Validez le token côté backend avant toute opération métier, dans la session qui a déclenché le défi : un autre contexte de navigateur ou un autre cookie jar est la première cause de rejet après résolution.

Exemple : créer une tâche Turnstile en Node.js

import fetch from 'node-fetch';

const API_KEY = process.env.CAPTCHAAI_KEY;

export async function createTurnstileTask(siteKey, pageUrl) {
  const res = await fetch('https://api.captchaai.com/createTask', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
      clientKey: API_KEY,
      task: {
        type: 'TurnstileTaskProxyless',
        websiteURL: pageUrl,
        websiteKey: siteKey,
      },
    }),
  });
  const data = await res.json();
  return data.taskId;
}

Journalisation, mesures et RGPD

Instrumentez les appels dès le premier jour, sinon la comparaison reposera sur des impressions. Séparez les journaux par environnement, corrélez-les à votre traçage (OpenTelemetry) et gardez le réflexe RGPD : pas de données personnelles dans les logs, une rétention explicite et une vérification de vos obligations avant tout export.

  • Durée d'obtention du token, appel compris.
  • Code retour HTTP et code d'erreur de l'API.
  • Identifiant de tâche, pour rejouer un scénario.
  • Taille de la file d'attente (saturation des threads).

Liste de contrôle avant de retirer l'ancienne extension

Vérification Pourquoi
Périmètre limité à vos applications ou à des sources autorisées Cadre du pilote
Un profil de navigateur par fournisseur Mesures séparables
Clé dans un secret CI ou un coffre Jamais dans le code source
Durées d'appel et codes retour tracés des deux côtés Comparaison chiffrée
Retry idempotent : trois tentatives, backoff exponentiel, plafond à 30 s Erreurs transitoires neutralisées
Taux de réussite comparé sur une semaine complète Le trafic du week-end diffère

FAQ

Peut-on garder les deux extensions actives pendant la bascule ?

Dans le même profil, non : deux gestionnaires réagissent au même défi et vos mesures deviennent inexploitables. Gardez-les dans deux profils séparés.

L'extension CaptchaAI prend-elle en charge hCaptcha ?

Non — hCaptcha n'est pas pris en charge, pas plus que FunCaptcha (Arkose Labs). Vérifiez les types présents sur vos pages avant de planifier la bascule.

Quel plan choisir pour une petite équipe QA ?

Raisonnez en défis simultanés. Deux ou trois suites en parallèle tiennent sur BASIC ($15/mois, 5 threads) ; au-delà, STANDARD ($30/mois, 15 threads) absorbe les pics de fin de sprint, résolutions illimitées par thread.

L'extension fonctionne-t-elle sur un runner d'intégration continue ?

Oui, avec un navigateur lancé sous Xvfb et un profil persistant. Pour un pipeline headless, préférez l'API à l'extension : le débogage y est plus simple.

Guides connexes

Lancez la bascule sur un seul profil avant de l'étendre à toute l'équipe. – Obtenez votre clé CaptchaAI.

Les commentaires sont désactivés pour cet article.