CAPTCHA-Bundle für Symfony

captchacore/captchacore-bundle für Symfony 6.4 LTS, 7.x und 8.x — FormType, Validator-Constraint, Controller-Attribute und Twig-Funktion. Sie wählen, was zu Ihrem Projekt passt.

Symfony 6.4 LTS – 8.x PHP 8.2+ Composer
Zur Anleitung → Kostenlos starten

In drei Schritten

Symfony in wenigen Minuten schützen

1

Bundle installieren

Repository eintragen, composer require, Bundle in config/bundles.php eintragen und config/packages/captchacore.yaml anlegen.

2

Schlüssel in die .env

CAPTCHACORE_URL, Site-Key und Secret als Umgebungsvariablen.

3

Integrationsweg wählen

FormType für Symfony-Formulare, Constraint für DTOs, Attribut für Controller, Twig-Funktion für alles andere.

Beispiel
# 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

Was drin ist

Gebaut für Symfony, nicht nur kompatibel

FormType

Ein Feld im Form-Builder rendert Widget und Token; die Prüfung passiert in handleRequest().

Validator-Constraint

Für DTOs und API-Payloads: #[CaptchaCoreToken] am Property, geprüft wie jede andere Constraint.

Controller-Attribut

#[RequiresCaptcha] prüft den Token, bevor die Action läuft — ohne Code in der Methode.

Twig-Funktion

captchacore_widget() für handgebaute Formulare außerhalb der Form-Komponente.

Security-Badge

Für den Symfony-Login: Der Badge am Passport lässt den Token prüfen, bevor das Passwort geprüft wird.

Tests ohne Netz

Der Client ist ein Service — in Tests durch einen Fake ersetzen, fertig.

Keine Bilderrätsel

Proof-of-Work und Verhaltensanalyse statt Ampeln und Zebrastreifen — Menschen klicken einmal, Bots rechnen sich tot.

Server in Deutschland

Verarbeitung auf eigenen Servern, keine Übertragung in Drittländer, kein Tracking über Seiten hinweg.

16 KB, kein Framework

Das Widget lädt schnell, blockiert nie die Oberfläche und ist per Tastatur und Screenreader bedienbar.

Häufige Fragen zu Symfony

Brauche ich Symfony Flex?

Nein. Das Bundle wird einmalig in config/bundles.php eingetragen, die Konfiguration liegt in config/packages/captchacore.yaml — mit oder ohne Flex.

Funktioniert es mit API Platform?

Ja, über die Validator-Constraint an Ihren Input-DTOs.

Welche PHP-Version?

PHP 8.2 oder neuer; Symfony 8 selbst setzt PHP 8.4 voraus.

Alle Details, Optionen und Codebeispiele: Dokumentation →

Weitere Integrationen

WordPress WooCommerce WoltLab Suite Laravel Eigene Integration bauen