Intégrations / Symfony

Bundle CAPTCHA pour Symfony

captchacore/captchacore-bundle pour Symfony 6.4 LTS et 7.x — FormType, contrainte de validation, attribut de contrôleur et fonction Twig. Vous choisissez ce qui convient à votre projet.

Symfony 6.4 LTS & 7.x PHP 8.2+ Symfony Flex

En trois étapes

Protéger Symfony en quelques minutes

01

Installer le bundle

composer require — Symfony Flex enregistre le bundle et crée le fichier de configuration.

02

Clés dans le .env

CAPTCHACORE_URL, clé du site et secret en variables d’environnement.

03

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.

composer require captchacore/captchacore-bundle

# .env
CAPTCHACORE_SITE_KEY=cc_pub_…
CAPTCHACORE_SECRET_KEY=cc_sec_…

// FormType
$builder->add('captcha', CaptchaCoreType::class, [
    'form_type' => 'contact',
]);

// oder als Attribut am Controller
#[RequiresCaptcha(formType: 'register')]
public function register(Request $request): Response

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é

Mention facultative « protégé par CaptchaCore » avec lien vers la politique de confidentialité.

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, mais cela évite d’enregistrer le bundle à la main et d’écrire le fichier de configuration.

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, en accord avec Symfony 6.4 LTS et 7.x.

Tous les détails, options et exemples de code : Documentation →

Autres intégrations