Zum Inhalt
Myra EU CAPTCHA Online-Hilfe Stand · 25.08.2026

Caddy

Das Modul für Caddy stellt jeder Anfrage eine Challenge voran. Wer sie besteht, erhält ein signiertes Sitzungs-Cookie und erreicht Ihre Anwendung ohne weitere Unterbrechung, bis die Frist abläuft. Alle übrigen Anfragen leitet das Modul auf die Challenge-Seite um.

Der Schutz gilt damit für die gesamte Domain, nicht für einzelne Formulare.

Ablauf

  1. Das Modul prüft jede Anfrage auf ein gültiges, an die IP-Adresse gebundenes Sitzungs-Cookie mit HMAC-Signatur.
  2. Ohne gültiges Cookie leitet es die Anfrage auf den Pfad der Challenge um.
  3. Nach der bestandenen Challenge prüft das Modul das Token serverseitig über die API.
  4. Bei Erfolg setzt es das signierte Cookie und leitet auf die ursprüngliche Adresse zurück.

Voraussetzungen

Die folgenden Voraussetzungen müssen erfüllt sein:

Voraussetzung Wert
Caddy ab Version 2.9
Werkzeug xcaddy für den Bau mit dem Modul
Go ab Version 1.22 für den Bau aus den Quellen
Zugangsdaten Öffentlicher Sitekey und Secret aus der Ansicht Details

Caddy mit dem Modul bauen

Bauen Sie Caddy mit xcaddy:

xcaddy build --with github.com/Myra-Security-GmbH/eu-captcha-caddy

Aus den Quellen bauen Sie wie folgt:

git clone https://github.com/Myra-Security-GmbH/eu-captcha-caddy.git
cd eu-captcha-caddy
xcaddy build --with github.com/Myra-Security-GmbH/eu-captcha-caddy=.

Modul einrichten

Ergänzen Sie die Datei Caddyfile:

example.com {
    eu_captcha {
        sitekey        EUCAPTCHA_SITE_KEY
        secret         EUCAPTCHA_SECRET_KEY
        cookie_secret  <random-32-byte-hex>   # openssl rand -hex 32
        grace_period   1h
    }

    reverse_proxy localhost:3000
}

In der Konfiguration als JSON lautet der Eintrag:

{
  "handler": "eu_captcha",
  "sitekey": "EUCAPTCHA_SITE_KEY",
  "secret": "EUCAPTCHA_SECRET_KEY",
  "cookie_secret": "<random-32-byte-hex>",
  "grace_period": "1h"
}

Einstellungen

Die folgenden Einstellungen stehen zur Verfügung:

Einstellung Pflicht Vorgabe Wirkung
sitekey ja Öffentlicher Sitekey.
secret ja Geheimer Schlüssel.
cookie_secret ja Schlüssel für die HMAC-Signatur der Sitzungs-Cookies. Erzeugen Sie ihn mit openssl rand -hex 32.
grace_period nein 1h Gültigkeitsdauer einer bestandenen Challenge als Zeitangabe im Format von Go.
cookie_name nein __eucaptcha Name des Sitzungs-Cookies.
challenge_path nein /__captcha__ Pfadanfang für die Challenge und für die Prüfung.
verify_url nein https://api.eu-captcha.eu/v1/verify Adresse des Endpunkts für die Prüfung des Tokens.
credentials_check_url nein https://api.eu-captcha.eu/v1/verify-credentials Adresse des Endpunkts für die Prüfung der Zugangsdaten. Das Modul ruft ihn beim Start auf.

Belegte Pfade

Das Modul belegt zwei Pfade Ihrer Domain. Verwenden Sie diese Pfade nicht in Ihrer Anwendung:

Pfad Verwendung
{challenge_path} Zeigt die Challenge-Seite an.
{challenge_path}/verify Nimmt das gelöste Token per POST entgegen.

Mit der Vorgabe für challenge_path sind das die Pfade /__captcha__ und /__captcha__/verify.