logo
bars

MTCaptcha
et CapMonster Cloud

Solution de captcha, installation sur le site et tests.
Vous avez hérité d’un site doté d’une captcha ou d’une autre couche de protection mais sans accès au code source ? Il est alors naturel de se demander quelle solution est installée, si elle est correctement configurée et comment la tester.

Dans cet article, nous avons essayé de répondre à toutes les questions essentielles. Pour commencer à résoudre le problème, il faut d’abord déterminer quel système de protection est utilisé. Pour cela, vous pouvez consulter la liste des captchas et systèmes de protection antibot les plus populaires, qui présente des exemples visuels et des caractéristiques clés permettant d’identifier rapidement avec quoi vous avez affaire.

Si vous constatez que votre site utilise MTCaptcha, l’étape suivante consiste à étudier plus en détail ses propriétés et son fonctionnement. Dans cet article, vous pouvez également consulter le guide d’intégration de MTCaptcha afin de comprendre pleinement la façon dont il fonctionne sur votre site. Cela vous permettra non seulement de mieux connaître la protection en place, mais aussi de planifier correctement sa maintenance.

Qu'est-ce que MTCaptcha
Qu'est-ce que MTCaptcha
MTCaptcha est un système de protection des sites web contre les actions automatisées, utilisant une vérification intelligente et des captchas. Tout d'abord, le service analyse le trafic en arrière-plan. Si le comportement du visiteur semble suspect, le système affiche automatiquement un captcha texte pour une vérification supplémentaire.

Comment résoudre MTCaptcha via CapMonster Cloud

Lors des tests de formulaires contenant MTCaptcha, il est souvent nécessaire de vérifier que la captcha fonctionne et qu’elle est correctement intégrée.

Vous pouvez contrôler manuellement la captcha intégrée à votre site.

  • Ouvrez la page du formulaire et vérifiez que la captcha s’affiche.
  • Essayez d’envoyer le formulaire sans la résoudre — le serveur doit renvoyer une erreur.
  • Après une résolution réussie, l’envoi doit se faire sans problème.

Pour une résolution automatique, utilisez des outils comme CapMonster Cloud qui reçoivent les paramètres de la captcha, les traitent sur leurs serveurs et renvoient un jeton prêt à l’emploi. Insérez ce jeton dans le formulaire pour passer la vérification sans interaction utilisateur.

Travailler avec CapMonster Cloud via l’API comprend généralement les étapes suivantes :

Création de la tâcheCréation de la tâche
arrow
Envoyer une requête APIEnvoyer une requête API
arrow
Réception du résultatRéception du résultat
arrow
Insertion du jeton sur la pageInsertion du jeton sur la page
arrow
Reconnaissance de MTCaptcha avec des bibliothèques prêtes à l'emploi
CapMonster Cloud fournit des bibliothèques prêtes à l'emploi pour un travail confortable en Python, JavaScript (Node.js) et C#.
Python
JavaScript
C#
Résolution, insertion du token et envoi du formulaire
Exemple en Node.js pour le cycle complet de reconnaissance du captcha sur votre page web. Approches possibles : utiliser des requêtes HTTP pour obtenir le HTML et les paramètres du captcha, envoyer la réponse et traiter le résultat ; ou utiliser des outils d'automatisation (comme Playwright) — ouvrir la page, attendre le captcha, envoyer les paramètres (pour les tests, vous pouvez envoyer des données correctes ou incorrectes), récupérer le résultat via le client CapMonster Cloud, insérer le token dans le formulaire et voir le résultat.

  // npm install playwright @zennolab_com/capmonstercloud-client
import { chromium } from 'playwright';
import { CapMonsterCloudClientFactory, ClientOptions, MTCaptchaRequest } from '@zennolab_com/capmonstercloud-client';

const API_KEY = 'YOUR_API_KEY';
const TARGET_URL = 'https://example.com';

async function main() {
  const browser = await chromium.launch({ headless: false });
  const context = await browser.newContext();
  const page = await context.newPage();

 
  let websiteKey = null;
  page.on('request', request => {
    const url = request.url();
    if (url.startsWith('https://service.mtcaptcha.com/mtcv1/api/getchallenge.json')) {
      const params = new URL(url).searchParams;
      const sk = params.get('sk');
      if (sk) {
        websiteKey = sk;
        console.log('Extracted websiteKey (sk):', websiteKey);
      }
    }
  });

  
  await page.goto(TARGET_URL, { waitUntil: 'networkidle' });

  if (!websiteKey) {
    console.error('Failed to extract websiteKey (sk) from the page');
    await browser.close();
    return;
  }

  
  const client = CapMonsterCloudClientFactory.Create(
    new ClientOptions({ clientKey: API_KEY })
  );

  
  const mtcaptchaRequest = new MTCaptchaRequest({
    websiteURL: TARGET_URL,
    websiteKey: websiteKey,
    isInvisible: false,
    pageAction: 'login'
  });

  // Résolution du captcha
  const result = await client.Solve(mtcaptchaRequest);

  
  const verifiedToken = typeof result?.solution?.value === 'string'
    ? result.solution.value
    : JSON.stringify(result.solution.token);

  console.log('VerifiedToken:', verifiedToken);

  
  // Insérer le token et envoyer le formulaire (remplacer par le sélecteur requis)
  await page.evaluate((token) => {
    const input = document.querySelector('#mtcaptcha-verifiedtoken-1');
    if (input) input.value = token;
  }, verifiedToken);

  console.log('Token inserted into input');

  
  // await page.click('button[type="submit"]');

  await page.waitForTimeout(5000);

  await browser.close();
}

main().catch(err => {
  console.error('An error occurred:', err);
});
Comment connecter MTCaptcha à votre site
Pour vous orienter avec confiance dans le fonctionnement du captcha sur votre site, comprendre sa logique, le reconnecter ou le reconfigurer, nous vous recommandons d'étudier cette section. Elle décrit le processus d'intégration — vous aidant à comprendre rapidement tous les détails.

1. Inscrivez-vous ou connectez-vous à votre compte MTCaptcha.

2. Après l'inscription, ajoutez votre site. Vous recevrez deux clés.

  • Site Key — clé publique pour le frontend, afin d'afficher le widget.
  • Private Key — clé privée pour le serveur, pour vérifier les solutions de captcha. Conservez-la uniquement sur le serveur, ne la transmettez pas au client.

Exemple :

HowTo Connect image 1

3. Configurez le client MTCaptcha :

Insérez le code dans le <head> de la page.

Remplacez <YOUR SITE KEY> par votre Site Key obtenue dans le tableau de bord MTCaptcha.


  <head>
  <script>
    var mtcaptchaConfig = {
      sitekey: "<YOUR SITE KEY>"
    };
  
    (function() {
      var mt_service = document.createElement('script');
      mt_service.async = true;
      mt_service.src = 'https://service.mtcaptcha.com/mtcv1/client/mtcaptcha.min.js';
      (document.head || document.body).appendChild(mt_service);
  
      var mt_service2 = document.createElement('script');
      mt_service2.async = true;
      mt_service2.src = 'https://service2.mtcaptcha.com/mtcv1/client/mtcaptcha2.min.js';
      (document.head || document.body).appendChild(mt_service2);
    })();
  </script>
</head>


Ajoutez le conteneur captcha dans le <body>

Là où vous souhaitez afficher le captcha (par exemple, dans un formulaire) :

<div class="mtcaptcha"></div>

Le widget se chargera automatiquement.

HelpIcon

Vous pouvez utiliser les SDK et plugins prêts pour une intégration rapide :

  • SDK côté serveur : Java, Node.js, PHP
  • SDK côté client : React, React Native, Vue
  • Plugins CMS : WordPress, Drupal

MTCaptcha propose également une page démo pratique où vous pouvez tester et configurer la protection avant de la déployer sur votre site.

4. Travail avec le serveur. Obtenez Verified-Token sur le client.

Via un champ de formulaire caché :

<input type="hidden" name="mtcaptcha-verifiedtoken" />

Ou via JS :

mtcaptcha.getVerifiedToken() / mtcaptchaVerifiedCallback(status)

Envoyez le token au serveur avec le formulaire ou la requête.

Vérifiez le token via l'API (vérification côté serveur) :

GET https://service.mtcaptcha.com/mtcv1/api/checktoken?privatekey=<PRIVATE_KEY>&token=<TOKEN>
  • privatekey — votre clé privée (serveur uniquement)
  • token — token du client

URL alternative pour les serveurs avec pare-feu :

https://service2.mtcaptcha.com/mtcv1/api/checktoken

Traiter la réponse :

success: true → captcha passé, continuer le traitement.

ExempleExemple
arrow

success: false → erreur (token expiré, réutilisé, etc.)

HelpIcon
Chaque verifiedToken est valable quelques minutes et ne peut être vérifié qu'une seule fois via l'API CheckToken, ce qui empêche la réutilisation. Après réception, le serveur doit vérifier le token à temps — le widget MTCaptcha garantit au moins 50 secondes pour la validation.

Exemple simple utilisant le module MTCaptcha sur Node.jsExemple simple utilisant le module MTCaptcha sur Node.js
arrow

HelpIcon

Pour une étude détaillée des fonctionnalités de MTCaptcha — personnalisation du widget, configuration client/serveur, intégration avec frameworks et autres aspects — consultez la documentation officielle.

Background
Erreurs possibles et débogage
Bug Icon
Site ou clé invalide
Le captcha ne se charge pas ou le serveur retourne invalid-privatekey ou privatekey-mismatch-token. Assurez-vous d'utiliser la paire correcte sitekey et privatekey.
Bug Icon
Token manquant ou invalide
Erreurs missing-input-token, invalid-token, bad-request. Vérifiez que la valeur du jeton est envoyée au serveur et qu’elle n’est pas modifiée.
Bug Icon
Token expiré (token-expired)
Le token est valable pour une durée limitée (environ ~120 secondes), après quoi il doit être obtenu à nouveau.
Bug Icon
Vérification répétée du token (token-duplicate-cal)
Le token ne peut être vérifié qu'une seule fois — protection contre les attaques par rejeu.
Bug Icon
Clé expirée ou désactivée (expired-sitekey-or-account)
Assurez-vous que les clés sont valides et que le compte est actif.
Bug Icon
Pour le diagnostic, activez la journalisation des requêtes et affichez les fail_codes pour comprendre la cause de l'erreur.
Tests de robustesse de la protection
Conseils de sécurité et d’optimisation
Conservez la <b>privatekey uniquement sur le serveur</b> — ne la transmettez pas au client.
Enregistrez les <b>fail_codes</b> pour suivre les causes d’erreurs et analyser les tentatives de contournement de la protection.
Ajoutez sur le formulaire des liens vers la <b>Politique de confidentialité</b> et les <b>Conditions d’utilisation</b>, si cela est requis par la politique de votre plateforme.
Conclusion

Si vous avez récupéré un site avec un captcha ou un autre système de protection déjà installé, mais sans accès au code, pas de panique ! Il est assez simple d’identifier quelle technologie est utilisée. Pour vérifier que tout fonctionne correctement, vous pouvez utiliser le service de reconnaissance CapMonster Cloud dans un environnement de test isolé, afin de vous assurer que le mécanisme de traitement des jetons et la logique de vérification fonctionnent correctement.

Dans le cas de MTCaptcha, il suffit d’identifier le système, d’étudier son comportement et de vérifier que la protection fonctionne correctement. Dans cet article, nous avons montré comment reconnaître MTCaptcha et où trouver les instructions pour son intégration ou sa reconfiguration, afin de maintenir la protection en toute confiance et de garder son fonctionnement sous contrôle.

Conclusion
Liens utiles
DocIconDocumentation MTCaptchaDocIconDocumentation CapMonster Cloud (travail avec MTCaptcha)DocIconSDK et plugins pour une intégration rapide de MTCaptchaDocIconPage démo (Code Builder) de MTCaptcha