In diesem Blogartikel wird beschrieben, wie Ihr CakePHP Formulare
mit dem Dienst hCaptcha absichern könnt.
Sicherlich kennt ihr CAPTCHAS,
und auch wenn diese mittlerweile durch Machine Learning relativ simple gelöst
[1][2][3]
werden können, kann es Sinn machen eure Html Formulare (wie z.B. Registrierungs- und Login Formulare) damit abzusichern.
Zunächst solltet ihr einen Account bei hCaptcha erstellen. Dort erhaltet ihr einen Sitekey und einen Secretkey. Es macht Sinn, beide Keys in eure lokale CakePHP App Config einzutragen:
Als nächstes solltet ihr die Javascript Bibliothek von hCaptcha in eurem Layout Template einbinden:
In dem abzusichernden Formular fügt ihr nun das CAPTCHA an sich ein und lest den Sitekey aus der Config aus:
Durch das Lösen des CAPTCHAs und senden des Formulars wird dem entsprechenden Controller der POST Parameter h-captcha-response in Form eines Tokens übergeben. Dieser Token muss wiederrum mit dem Secretkey an den hCaptcha API Endpoint (https://hcaptcha.com/siteverify) mit einem POST Request übergeben werden, um das Ergebnis zu verifizieren. Dazu nutzen wir den HTTP Client von CakePHP:
Um hCaptcha in mehreren Controllern zu verwenden kann der Code in eine Component ausgelagert werden.
Wir freuen uns über Interessierte