Explainers

Le CAPTCHA de Distil Networks : comment il fonctionne

Périmètre sûr : ce guide s'applique uniquement à vos propres applications et environnements (développement, préproduction, production) ou à des systèmes pour lesquels vous détenez une autorisation écrite. Il ne traite pas de l'automatisation de sites tiers sans accord.

Distil Networks (aujourd'hui intégré à Imperva) n'est pas un CAPTCHA : c'est une couche de mitigation de bots qui analyse le trafic et déclenche un défi CAPTCHA dès qu'une requête paraît suspecte. Le comprendre, c'est savoir qui déclenche le défi, qui produit le token et qui le vérifie. Ce guide pose ce modèle mental, puis montre comment résoudre le défi de façon stable dans vos intégrations, avec l'API CaptchaAI.

Ce que fait réellement Distil Networks

La couche anti-bot note le risque de chaque visiteur à partir de plusieurs signaux :

  • l'empreinte du navigateur ;
  • la cadence des requêtes ;
  • la réputation de l'IP.

En dessous d'un seuil, la page se charge normalement ; au-dessus, elle insère un défi (souvent un reCAPTCHA ou un CAPTCHA image). Un flux de tests QA devient alors instable : il passe en local, mais se bloque une fois lancé sans surveillance.

Le modèle mental à trois acteurs

Presque toutes les intégrations se raisonnent avec trois rôles distincts :

  • le front affiche le widget CAPTCHA ;
  • le fournisseur du CAPTCHA émet le token une fois le défi passé ;
  • votre backend vérifie ce token côté serveur avant d'accorder l'accès.

Le défi n'est jamais « résolu » sur la page : il produit un token à valider. Gardez ces rôles séparés et les bugs sautent aux yeux.

Ce que vous maîtrisez côté application

Trois leviers vous appartiennent — c'est là que se joue la qualité de l'intégration, pas dans la couche anti-bot :

  • la configuration du widget ;
  • la vérification serveur du token ;
  • la réponse appliquée selon le résultat.

Le workflow de résolution, étape par étape

Pour un environnement que vous êtes autorisé à tester, la boucle reste identique quel que soit le langage :

  1. Capturez les bons paramètres. Relevez uniquement ce que la famille CAPTCHA attend (sitekey, URL, action, proxy éventuel) ; en stocker plus crée de fausses pistes de débogage.
  2. Envoyez la tâche à in.php avec json=1, et traitez tout statut différent de 1 comme une erreur.
  3. Interrogez le résultat sur res.php : attendez 15 s, puis interrogez toutes les 5 s, avec un plafond de 120 s par tâche.
  4. Appliquez le token dans la même session que celle qui a déclenché le défi : même contexte de navigateur, même client HTTP, mêmes cookies. Les sessions dépareillées sont la première cause de rejet.

Vérifier le solde avant de lancer un lot

Avant d'enchaîner les tâches, contrôlez le solde depuis votre suite de tests :

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))

Observabilité et journalisation

Instrumentez chaque appel CAPTCHA pour obtenir des métriques exploitables :

  • la durée d'obtention du token ;
  • le code retour HTTP ;
  • l'identifiant de tâche et la taille de la file d'attente.

Séparez les journaux par environnement et corrélez les identifiants à votre traçage distribué (par exemple OpenTelemetry). En cas d'incident, vous rejouez un scénario à partir d'un seul identifiant.

Liste de contrôle avant la mise en production

  • Le périmètre reste limité à vos applications ou à des sources autorisées.
  • La clé CaptchaAI vit dans un secret ou un coffre, jamais dans le code.
  • Les durées d'appel et les codes retour sont tracés à chaque exécution.
  • Un retry avec backoff exponentiel borné couvre les erreurs transitoires.
  • Les tests sont rejouables depuis votre pipeline.

FAQ

Distil Networks et hCaptcha, est-ce la même chose ?

Non. Distil Networks (Imperva) est une couche de détection de bots ; hCaptcha est un fournisseur de CAPTCHA distinct. CaptchaAI ne prend d'ailleurs en charge ni hCaptcha ni FunCaptcha (Arkose Labs).

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

Presque toujours parce qu'il est appliqué dans une session différente de celle qui a déclenché le défi. Conservez la résolution et la soumission du formulaire dans le même contexte de navigateur ou la même session HTTP.

Combien coûte l'intégration à mesure que le volume monte ?

La facturation repose sur les threads simultanés, pas sur les résolutions : un thread traite un défi puis passe au suivant. L'offre BASIC ($15/mois, 5 threads) suffit pour démarrer ; ajoutez des threads quand le débit l'exige.

Guides connexes

Passez de la théorie à une intégration CaptchaAI qui tourne : commencez petit, mesurez, puis étendez. – Obtenez votre clé CaptchaAI.

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