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.
In drei Schritten
Symfony in wenigen Minuten schützen
Bundle installieren
Repository eintragen, composer require, Bundle in config/bundles.php eintragen und config/packages/captchacore.yaml anlegen.
Schlüssel in die .env
CAPTCHACORE_URL, Site-Key und Secret als Umgebungsvariablen.
Integrationsweg wählen
FormType für Symfony-Formulare, Constraint für DTOs, Attribut für Controller, Twig-Funktion für alles andere.
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