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
- Démarrage rapide CaptchaAI
- QA CAPTCHA en environnements autorisés
- Tester l'endpoint API sur vos formulaires
- Intégration CAPTCHA en CI
- Résoudre reCAPTCHA v2 via API
Lancez la bascule sur un seul profil avant de l'étendre à toute l'équipe. – Obtenez votre clé CaptchaAI.