Bundle CAPTCHA pour Symfony
captchacore/captchacore-bundle pour Symfony 6.4 LTS, 7.x et 8.x — FormType, contrainte de validation, attribut de contrôleur et fonction Twig. Vous choisissez ce qui convient à votre projet.
En trois étapes
Protéger Symfony en quelques minutes
Installer le bundle
Ajouter le dépôt, lancer composer require, inscrire le bundle dans config/bundles.php et créer config/packages/captchacore.yaml.
Clés dans le .env
CAPTCHACORE_URL, clé du site et secret en variables d’environnement.
Choisir la voie d’intégration
FormType pour les formulaires Symfony, contrainte pour les DTO, attribut pour les contrôleurs, fonction Twig pour le reste.
Ce que vous obtenez
Conçu pour Symfony, pas seulement compatible
FormType
Un champ dans le form builder affiche widget et jeton ; la vérification se fait dans handleRequest().
Contrainte de validation
Pour les DTO et charges utiles d’API : #[CaptchaCoreToken] sur la propriété, vérifié comme toute autre contrainte.
Attribut de contrôleur
#[RequiresCaptcha] vérifie le jeton avant l’exécution de l’action — sans code dans la méthode.
Fonction Twig
captchacore_widget() pour les formulaires faits main hors du composant Form.
Badge de sécurité
Pour la connexion Symfony : le badge sur le Passport fait vérifier le jeton avant le mot de passe.
Tests sans réseau
Le client est un service — remplacez-le par un faux dans les tests, c’est tout.
Pas de puzzles d’images
Preuve de travail et analyse comportementale au lieu de feux rouges et de passages piétons — les humains cliquent une fois, les bots s’épuisent à calculer.
Serveurs en Allemagne
Traitement sur nos propres serveurs, aucun transfert vers des pays tiers, aucun suivi entre les sites.
16 Ko, sans framework
Le widget se charge vite, ne bloque jamais l’interface et se pilote au clavier et au lecteur d’écran.
Questions fréquentes sur Symfony
Faut-il Symfony Flex ?
Non. Le bundle s'inscrit une fois dans config/bundles.php et la configuration se trouve dans config/packages/captchacore.yaml — avec ou sans Flex.
Fonctionne-t-il avec API Platform ?
Oui, via la contrainte de validation sur vos DTO d’entrée.
Quelle version de PHP ?
PHP 8.2 ou plus récent ; Symfony 8 requiert lui-même PHP 8.4.
Tous les détails, options et exemples de code : Documentation →
Autres intégrations