Explainers

Comment fonctionne le CAPTCHA d'AWS WAF Bot Control

Périmètre sûr : ce guide s'applique exclusivement à vos propres applications, à vos environnements de QA, de préproduction ou de production, ou à des systèmes pour lesquels vous disposez d'une autorisation écrite. Il ne décrit ni l'automatisation de sites tiers, ni le contournement de protections.

AWS WAF Bot Control est une règle managée d'AWS qui analyse votre trafic entrant et attribue à chaque requête un verdict : légitime, suspecte ou automatisée. Quand une requête paraît douteuse, la règle peut renvoyer une action CAPTCHA : le visiteur résout un défi et son navigateur reçoit un jeton (aws-waf-token) que votre application vérifie avant de laisser passer la suite. Comprendre cet enchaînement — déclencheur, défi, jeton, vérification — est la clé pour intégrer proprement un parcours protégé par AWS WAF Bot Control.

Comment AWS WAF Bot Control décide d'afficher un défi CAPTCHA

Bot Control observe des signaux — réputation de l'adresse IP, en-têtes, signature du client, débit des requêtes — puis pose des labels sur le trafic. Selon vos règles, une requête labellisée reçoit l'action Challenge (un contrôle silencieux résolu par le navigateur) ou l'action CAPTCHA (un défi interactif). Une fois le défi réussi, le jeton reste valide pendant une durée d'immunité configurable, quelques minutes par défaut, durant laquelle la même session passe sans redéfi.

Les trois acteurs du défi

  • Le front-end affiche le défi et transmet le jeton obtenu.
  • Le fournisseur (AWS WAF) émet ce jeton une fois le défi réussi.
  • Votre backend revalide le jeton avant d'exécuter l'action protégée.

Un jeton accepté côté navigateur mais jamais revalidé côté serveur ne protège rien.

Résoudre le défi CAPTCHA, étape par étape

Pour les types de CAPTCHA pris en charge que vous rencontrez dans vos propres parcours, gardez cet ordre : chaque étape supprime une classe d'erreurs de la suivante.

  1. Capturez les paramètres exacts attendus (sitekey, URL de page, action, proxy éventuel).
  2. Envoyez la tâche à https://ocr.captchaai.com/in.php avec json=1 ; tout statut autre que 1 est une erreur à journaliser.
  3. Interrogez le résultat sur https://ocr.captchaai.com/res.php : 15 secondes d'attente, puis toutes les 5 secondes, avec un plafond de 120 secondes.
  4. Appliquez le token dans la même session que celle du défi ; une session dépareillée est la cause de rejet la plus courante.
  5. Mesurez la latence, les retries et l'acceptation en aval : solveur et workflow sont deux réussites distinctes.

Exemple : vérifier le solde avant un lot

import os
import requests

API_KEY = os.environ['CAPTCHAAI_KEY']

def get_balance() -> float:
    resp = requests.post(
        'https://api.captchaai.com/getBalance',
        json={'clientKey': API_KEY},
        timeout=15,
    )
    resp.raise_for_status()
    return float(resp.json().get('balance', 0))

Points à contrôler avant de fusionner

  • Vérifiez que les paramètres envoyés correspondent au HTML réel de la page.
  • Plafonnez les retries à trois tentatives avec backoff exponentiel borné.
  • Suivez le statut HTTP en aval séparément de la réussite du solveur.

Dépannage

Symptôme Cause probable Correctif
ERROR_WRONG_USER_KEY Clé copiée avec un espace parasite. Recopiez la clé et stockez-la comme secret CI.
ERROR_PAGEURL / ERROR_BAD_PARAMETERS Entrée requise manquante ou malformée. Revalidez l'URL de page et le sitekey face au HTML réel.
Token rejeté après résolution Token appliqué dans une autre session que celle du défi. Gardez résolution et soumission dans le même contexte navigateur.

Observabilité et périmètre

Instrumentez les appels CAPTCHA pour obtenir des métriques exploitables : durée d'obtention du token, code retour HTTP et identifiant de tâche. Séparez les journaux par environnement et corrélez les identifiants à votre traçage distribué. Gardez le périmètre strict : rien ici ne vise le contournement d'une protection tierce. Pour toute source externe, validez d'abord la base juridique et vos obligations RGPD.

FAQ

AWS WAF Bot Control et le CAPTCHA d'AWS WAF, est-ce la même chose ?

Non. Bot Control est la règle managée qui détecte et labellise le trafic automatisé ; le CAPTCHA est l'action qu'une règle peut déclencher quand une requête est jugée suspecte.

CaptchaAI résout-il le CAPTCHA natif d'AWS WAF ?

Le CAPTCHA propre à AWS WAF ne figure pas parmi les types pris en charge. CaptchaAI prend en charge reCAPTCHA v2 et v3, Cloudflare Turnstile et Cloudflare Challenge, GeeTest v3, les CAPTCHA image/OCR, les grilles d'images et BLS, ainsi que CaptchaFox (bêta), Friendly Captcha (bêta) et Lemin (bêta).

Pourquoi mon token est-il rejeté après résolution ?

Le plus souvent, il a été appliqué dans une session différente de celle du défi. Gardez la même jarre de cookies et le même contexte navigateur, et vérifiez que la durée d'immunité n'a pas expiré.

Guides connexes

Passez d'un flux fragile à une intégration reproductible et mesurée. – Obtenez votre clé CaptchaAI.

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