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 reCAPTCHA v3, 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 reCAPTCHA v3 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.
Lors des tests de formulaires contenant reCAPTCHA v3, 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.
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 :
Dans la requête pour résoudre reCAPTCHA v3, vous devez indiquer les paramètres suivants :
type - RecaptchaV3TaskProxyless;
websiteURL - l’adresse de la page sur laquelle le captcha est résolu;
websiteKey - l’identifiant de clé (sitekey) indiqué sur la page de votre site avec le captcha;
minScore - peut avoir une valeur de 0.1 à 0.9;
pageAction - la valeur du paramètre action transmise par le widget ReCaptcha de Google. Valeur par défaut : verify.
https://api.capmonster.cloud/createTask{
"clientKey": "API_KEY",
"task": {
"type": "RecaptchaV3TaskProxyless",
"websiteURL": "https://lessons.zennolab.com/captchas/recaptcha/v3.php?level=beta",
"websiteKey": "6Le0xVgUAAAAAIt20XEB4rVhYOODgTl00d8juDob",
"minScore": 0.7,
"pageAction": "myverify"
}
}
{
"errorId":0,
"taskId":407533072
}
https://api.capmonster.cloud/getTaskResult{
"clientKey":"API_KEY",
"taskId": 407533072
}
{
"errorId": 0,
"status": "ready",
"solution": {
"gRecaptchaResponse": "3AHJ_VuvYIBNBW5yyv0zRYJ75VkOKv…hKj9_xGBJKnQimF72rfoq3Iy-DyGHMwLAo6a3"
}
}
const { chromium } = require('playwright');
const {
CapMonsterCloudClientFactory,
ClientOptions,
RecaptchaV3ProxylessRequest
} = require('@zennolab_com/capmonstercloud-client');
(async () => {
const TARGET_URL = 'https://lessons.zennolab.com/captchas/recaptcha/v3.php?level=beta'; // URL de votre page avec le captcha
const SITE_KEY = '6Le0xVgUAAAAAIt20XEB4rVhYOODgTl00d8juDob';
const API_KEY = 'your_capmonster_cloud_api_key'; // Indiquez votre clé API CapMonster Cloud
// Création du client CapMonster
const cmcClient = CapMonsterCloudClientFactory.Create(new ClientOptions({ clientKey: API_KEY }));
// Ouverture du navigateur
const browser = await chromium.launch({ headless: false });
const page = await browser.newPage();
await page.goto(TARGET_URL, { waitUntil: 'domcontentloaded' });
// Configuration de la tâche reCAPTCHA v3
const recaptchaRequest = new RecaptchaV3ProxylessRequest({
websiteURL: TARGET_URL,
websiteKey: SITE_KEY,
minScore: 0.6,
pageAction: 'myverify', // correspondance avec l’action sur la page
});
// Résolution du captcha
const solution = await cmcClient.Solve(recaptchaRequest);
const token = solution.solution?.gRecaptchaResponse;
if (!token) {
console.error('Токен пустой, проверьте sitekey и URL');
await browser.close();
return;
}
console.log('Jeton obtenu :', token);
// Insertion du jeton dans un champ caché et simulation du clic sur le bouton
// Remplacez par les sélecteurs nécessaires
await page.evaluate((t) => {
const input = document.querySelector('#v3_token');
if (input) input.value = t;
const form = document.querySelector('#v3_form');
if (form) form.submit();
}, token);
console.log('Le jeton a été inséré et le formulaire a été envoyé');
await page.waitForTimeout(5000);
await browser.close();
})();1. Accédez à la page du panneau d’administration reCAPTCHA.
2. Enregistrez un nouveau site et choisissez le type de captcha — reCAPTCHA v3

3. Récupérez deux clés :

Vous pouvez ouvrir les paramètres où, par exemple, vous pouvez indiquer des domaines supplémentaires autorisés à utiliser reCAPTCHA ou configurer des notifications concernant des problèmes sur le site ou une augmentation du trafic suspect.
4. Exemples de code pour la partie cliente
La façon la plus simple d’utiliser reCAPTCHA v3 consiste à connecter l’API JavaScript et à ajouter des attributs au bouton.
Connexion de l’API :
<script src="https://www.google.com/recaptcha/api.js"></script>Fonction de rappel (callback) pour le formulaire :
<script>
function onSubmit(token) {
document.getElementById("form").submit();
}
</script>
Bouton avec les attributs reCAPTCHA :
<button class="g-recaptcha"
data-sitekey="reCAPTCHA_sitekey"
data-callback='onSubmit'
data-action='submit'>Submit</button>
Pour un contrôle complet, utilisez grecaptcha.execute avec le paramètre render:
Connexion de l’API avec la clé :
<script src="https://www.google.com/recaptcha/api.js?render=reCAPTCHA_site_key"></script>Appel programmatique :
<script>
function onClick(e) {
e.preventDefault();
grecaptcha.ready(function() {
grecaptcha.execute('reCAPTCHA_sitekey', {action: 'submit'}).then(function(token) {
// Envoyez le jeton au serveur pour vérification
});
});
}
</script>
Le jeton doit être envoyé immédiatement au serveur pour vérification.
Remarques importantes :
5. Effectuez maintenant la vérification de la réponse côté serveur
<?php
// Votre clé secrète reCAPTCHA v3
$secret = 'YOUR_SECRET_KEY';
// Récupérer le jeton depuis le formulaire
$token = $_POST['recaptcha-token'] ?? '';
// Envoyer une requête à Google pour vérifier le jeton
$response = file_get_contents(
"https://www.google.com/recaptcha/api/siteverify?secret={$secret}&response={$token}"
);
$result = json_decode($response, true);
// Vérifier la réussite et le score de confiance
if ($result['success'] && $result['score'] >= 0.5 && $result['action'] === 'submit') {
echo "Vérification réussie";
} else {
http_response_code(403);
echo "Vérification échouée";
}
?>
Remarques :
<input type="hidden" name="recaptcha-token" id="recaptcha-token">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 reCAPTCHA v3, 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 reCAPTCHA v3 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.