Bundle CAPTCHA para Symfony

captchacore/captchacore-bundle para Symfony 6.4 LTS, 7.x y 8.x: FormType, constraint del validador, atributo de controlador y función Twig. Usted elige lo que encaja en su proyecto.

Symfony 6.4 LTS – 8.x PHP 8.2+ Composer
A la guía → Empezar gratis

En tres pasos

Proteja Symfony en pocos minutos

1

Instalar el bundle

Añadir el repositorio, ejecutar composer require, registrar el bundle en config/bundles.php y crear config/packages/captchacore.yaml.

2

Claves en el .env

CAPTCHACORE_URL, clave del sitio y secreto como variables de entorno.

3

Elegir la vía de integración

FormType para formularios Symfony, constraint para DTOs, atributo para controladores, función Twig para lo demás.

Ejemplo
# composer.json: "repositories": [{"type": "composer", "url": "https://captchacore.eu/packages"}]
composer require captchacore/captchacore-bundle

// config/bundles.php
CaptchaCore\SymfonyBundle\CaptchaCoreBundle::class => ['all' => true],

# .env
CAPTCHACORE_URL=https://captchacore.eu
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

Qué incluye

Hecho para Symfony, no solo compatible

FormType

Un campo en el form builder renderiza widget y token; la verificación ocurre en handleRequest().

Constraint del validador

Para DTOs y payloads de API: #[CaptchaCoreToken] en la propiedad, comprobado como cualquier otra constraint.

Atributo de controlador

#[RequiresCaptcha] verifica el token antes de ejecutar la acción, sin código en el método.

Función Twig

captchacore_widget() para formularios hechos a mano fuera del componente Form.

Distintivo de seguridad

Para el inicio de sesión de Symfony: el badge en el Passport hace comprobar el token antes que la contraseña.

Tests sin red

El cliente es un servicio: sustitúyalo por un fake en los tests y listo.

Sin acertijos de imágenes

Prueba de trabajo y análisis de comportamiento en lugar de semáforos y pasos de cebra: las personas hacen clic una vez, los bots se quedan calculando.

Servidores en Alemania

Procesamiento en servidores propios, sin transferencias a terceros países, sin rastreo entre sitios.

16 KB, sin framework

El widget carga rápido, nunca bloquea la interfaz y se maneja con teclado y lector de pantalla.

Preguntas frecuentes sobre Symfony

¿Necesito Symfony Flex?

No. El bundle se registra una vez en config/bundles.php y la configuración está en config/packages/captchacore.yaml, con o sin Flex.

¿Funciona con API Platform?

Sí, mediante la constraint del validador en sus DTOs de entrada.

¿Qué versión de PHP?

PHP 8.2 o superior; Symfony 8 requiere PHP 8.4.

Todos los detalles, opciones y ejemplos de código: Documentación →

Más integraciones

WordPress WooCommerce WoltLab Suite Laravel Crear una integración propia