--- title: Schnellstart --- # Schnellstart Diese Anleitung hilft Ihnen, CaptchaLa CAPTCHA in 5 Minuten zu integrieren. ::: tip In 30 Sekunden in Aktion sehen [demo-v1.captcha.la](https://demo-v1.captcha.la) — reines HTML + PHP, MIT-lizenziert, Quelltext auf jeder Seite einsehbar. - [popup.html](https://demo-v1.captcha.la/popup.html) — Popup-Modus - [float.html](https://demo-v1.captcha.la/float.html) — schwebendes Widget - [bind.html](https://demo-v1.captcha.la/bind.html) — an Button binden - [inline.html](https://demo-v1.captcha.la/inline.html) — Inline-Einbettung - [server-token.html](https://demo-v1.captcha.la/server-token.html) — servergenerierter Token (Anti-Replay) ::: ## 1. Konto erstellen Registrieren Sie sich kostenlos im Dashboard. [Jetzt registrieren →](https://dash.captcha.la/register) ## 2. Anwendung anlegen Legen Sie im Dashboard eine Anwendung an, um Ihren App Key zu erhalten. ## 3. SDK installieren Wählen Sie Ihre bevorzugte Installationsmethode. ```html ``` ```bash # or via npm npm install captchala ``` ## 4. CAPTCHA initialisieren Initialisieren Sie die CAPTCHA-Komponente auf Ihrer Seite. ```html ``` ## 5. Serverseitige Validierung Validieren Sie den Token auf Ihrem Server. ```bash POST https://apiv1.captcha.la/v1/validate X-App-Key: YOUR_APP_KEY X-App-Secret: YOUR_APP_SECRET Content-Type: application/json { "pass_token": "" } ``` ```json { "code": 0, "data": { "valid": true, "action": "login", "challenge_id": "ch_xxx", "uid": null, "risk_score": 12 } } ``` ::: warning Prüfen Sie stets, dass `data.valid === true` **und** dass `data.action` mit der erwarteten Szene übereinstimmt. Pass-Tokens sind Einmal-Tokens; derselbe `pt_xxx` kann nicht zweimal validiert werden. ::: ## Servergenerierter-Token-Modus (für die Produktion empfohlen) {#server-token} Für sensible Aktionen (Anmeldung, Registrierung, Bezahlung) empfehlen wir den servergenerierten Token-Flow: Ihr Backend fordert zunächst einen kurzlebigen server_token an, den der Browser anschließend zur Initialisierung des CAPTCHA verwendet. Dies verhindert Missbrauch durch einen geleakten app_key. ### Wann sollte er verwendet werden? - Empfohlen: Registrierung, Anmeldung, Passwort-Zurücksetzen, Bezahlung, Punkte-Einlösung sowie jeder Endpoint, den ein Angreifer skripten kann. - Optional: einfache öffentliche Formulare, Suchfelder und geringwertige Interaktionen, bei denen Komfort wichtiger ist. ### 1. Backend stellt server_token aus Rufen Sie /v1/server/challenge/issue von Ihrem eigenen Server aus auf, unter Verwendung der Header X-App-Key und X-App-Secret. Geben Sie diese Header niemals an den Browser weiter. ```bash # Server-side only — never call this from a browser curl -X POST https://apiv1.captcha.la/v1/server/challenge/issue \ -H "X-App-Key: YOUR_APP_KEY" \ -H "X-App-Secret: YOUR_APP_SECRET" \ -d "action=login&ttl=300&max_uses=1&bind_ip=1.2.3.4" # → { "code": 0, "data": { "server_token": "sct_...", "expires_in": 300 } } ``` ### 2. Frontend rendert CaptchaLa mit dem server_token Übergeben Sie den Token an Ihre CaptchaLa-Komponente. Das SDK reicht ihn bei der Initialisierung der Challenge weiter. ```js // Browser fetches the token from YOUR backend, not from CaptchaLa directly const { serverToken } = await fetch('/api/captcha/issue').then(r => r.json()); Captchala.init({ appKey: 'YOUR_APP_KEY', serverToken, // single-use, short-lived product: 'popup', action: 'login', }) .appendTo('#captcha-container') .onSuccess(res => submitForm(res.token)); ``` ### Sicherheitshinweise - Geben Sie app_secret niemals in Frontend-Code, mobilen Apps oder öffentlichen Repositories preis. Es muss serverseitig bleiben. - Aktivieren Sie im Dashboard "Servergenerierten Challenge-Token erforderlich", um jede Challenge ohne server_token abzulehnen. - Halten Sie ttl kurz (Standard 300 s, max. 900 s) und bevorzugen Sie max_uses=1, um die Auswirkungen eines Token-Leaks zu minimieren. ## Nächste Schritte - [Web-SDK](/de/web-sdk) - [API-Referenz](/de/api-reference)