---
title: "Academy Article"
canonical_url: "https://academy.laioutr.com/artikel/formulare-gegen-bots-und-spam-schuetzen"
locale: de
meta:
  "og:title": "Academy Article"
---

[Zur Startseite](https://academy.laioutr.com/)

- [Hosting und Betrieb](https://academy.laioutr.com/bereiche/hosting-und-betrieb)

- [Laioutr Cloud](https://academy.laioutr.com/leitfaeden/laioutr-cloud)

- [Formulare gegen Bots und Spam schützen](https://academy.laioutr.com/artikel/formulare-gegen-bots-und-spam-schuetzen)

# Formulare gegen Bots und Spam schützen

Der Bot-Schutz prüft ausgewählte Aktionen der Storefront wie Newsletter-Anmeldung oder Login, bevor sie ausgeführt werden. Dafür wird eine Bot-Schutz-App installiert und die zu schützenden Aktionen in der Projektkonfiguration aufgelistet.

## Bevor du startest

<dl>

<dt>Tarif</dt>
<dd>Jeder Plan</dd>

<dt>Rolle</dt>
<dd>Entwickler mit Zugriff auf die Projektkonfiguration</dd>

<dt>Dauer</dt>
<dd>7 Min.</dd></dl>

### Voraussetzungen

- Zugriff auf laioutrrc.json des Projekts
- Für Cloudflare Turnstile: Cloudflare-Konto mit Turnstile-Widget

Zuletzt geprüft am 15. Oktober 2026

Offene Formulare ziehen schnell Spam an: Newsletter-Anmeldungen mit fremden Adressen oder Skripte, die Passwörter am Login durchprobieren. Der **Bot-Schutz** lässt den Server solche Anfragen ablehnen, während echte Besucher nichts davon merken.

Laioutr stellt den Mechanismus bereit, eine installierte **Provider-App** beantwortet die Frage, ob ein Mensch die Anfrage gesendet hat. Zur Auswahl stehen die App **Cloudflare Turnstile** für jedes Hosting, **Vercel BotID** für Storefronts bei Vercel oder ein eigener Provider. Ein Projekt nutzt genau eine.

Geprüft werden nur Aktionen, die in der Projektkonfiguration stehen. Die Prüfung läuft, bevor der Inhalt der Anfrage gelesen wird, ein abgelehnter Bot verursacht also keinen Aufruf beim Commerce-Backend. Mit `whenUnavailable` legt das Projekt fest, was bei einem Ausfall des Anbieters passiert: `open` lässt die Aktion zu und protokolliert eine Warnung, `closed` lehnt sie ab.

Geschützt werden Aktionen, die Besucher auslösen, etwa Formularversand oder Klicks. Aktionen, die eine Seite zum Rendern braucht, eignen sich nicht.

## Schritt für Schritt

1. 1 ### Schritt 1: Provider-App wählen Cloudflare Turnstile für jedes Hosting oder Vercel BotID für Storefronts bei Vercel wählen.
2. 2 ### Schritt 2: Turnstile-Widget anlegen Bei Turnstile im Cloudflare-Dashboard ein Widget im Modus **Managed** anlegen und alle Hostnamen der Storefront samt Vorschauen eintragen.
3. 3 ### Schritt 3: App eintragen Die App mit Site Key und Secret Key in `laioutrrc.json` unter den Apps des Projekts eintragen.
4. 4 ### Schritt 4: Aktionen auflisten Unter `config.botProtection.actions` die Aktionen eintragen, zum Beispiel `newsletter/subscribe` und `ecommerce/auth/login`. Bezeichner aus der API-Referenz kopieren, denn ein Tippfehler schützt nichts.
5. 5 ### Schritt 5: Verhalten bei Ausfall festlegen `whenUnavailable` auf `open` lassen oder für besonders kritische Aktionen auf `closed` setzen.
6. 6 ### Schritt 6: Meldung anzeigen und deployen Abgelehnte Anfragen im Formular mit einer verständlichen Meldung behandeln und die Storefront deployen.

## Ergebnis prüfen

Ein normales Absenden des Formulars funktioniert ohne sichtbare Prüfung. In einer Testumgebung mit dem Turnstile-Testschlüssel, der immer fehlschlägt, wird die Anfrage abgelehnt und die Fehlermeldung erscheint.

## Häufige Fragen

Merken echte Besucher etwas?

Meist nicht. Turnstile lädt erst bei der ersten geschützten Aktion und zeigt nur dann eine Abfrage, wenn Cloudflare eine Bestätigung verlangt.

Was passiert, wenn der Anbieter ausfällt?

Bei `open` läuft die Aktion weiter und der Server protokolliert eine Warnung, bei `closed` antwortet er mit 503. Eine fehlende oder ungültige Prüfung wird in beiden Fällen abgelehnt.

Braucht Turnstile eine Einwilligung?

Die App fügt keine Consent-Integration hinzu. Ob eine Einwilligung nötig ist, entscheidet der Betreiber der Storefront anhand der Angaben von Cloudflare.

Warum schlägt eine geschützte Aktion beim Seitenaufbau fehl?

Nur ein Browser kann einen Nachweis erzeugen. Eine geschützte Aktion beim serverseitigen Rendern wird daher immer abgelehnt.

## Passend dazu

- [Apps finden, installieren und konfigurieren](https://academy.laioutr.com/artikel/apps-finden-installieren-und-konfigurieren)6 Min.

  Apps stehen im Cockpit unter Apps als Katalog bereit, werden je Umgebung installiert und unter Configuration eingerichtet. Die Storefront nutzt sie ab dem nächsten Deployment.
- [Tracking und Consent in den Komponenten](https://academy.laioutr.com/artikel/tracking-und-consent-in-den-komponenten)6 Min.

  Die Komponenten von Laioutr senden Ereignisse wie Seitenaufruf, Produktansicht, In-den-Warenkorb und Kauf über eine einheitliche Analytics-Schicht. Jedes Ereignis erreicht nur die Ziele, für die der Besucher seine Einwilligung gegeben hat.
- [Deployment starten und prüfen](https://academy.laioutr.com/artikel/deployment-starten-und-pruefen)5 Min.

  Ein Deployment baut die Storefront einer Umgebung neu und bringt Änderungen an Apps, Versionen und Konfiguration live. Gestartet wird es in Cockpit unter Deployments mit Deploy; Status und Build-Log zeigen, ob es erfolgreich war.
- [E-Mails versenden mit der Essentials-App Mailer](https://academy.laioutr.com/apps/e-mails-versenden-essentials-mailer)10 Min.

  Die Essentials-App Mailer versendet transaktionale E-Mails eines Laioutr-Projekts, etwa Kontaktanfragen, Bestellbestätigungen oder die Eingangsbestätigung der App Legal. Versendet wird über ein SMTP-Konto oder über Dienste wie SendGrid, Amazon SES oder Mailgun.

## [Laioutr Cloud](https://academy.laioutr.com/leitfaeden/laioutr-cloud)

In diesem Leitfaden suchen

1. [Hosting und Auslieferung über die Edge](https://academy.laioutr.com/artikel/hosting-und-auslieferung-ueber-die-edge)4 Min.
2. [Eigene Domain verbinden](https://academy.laioutr.com/artikel/eigene-domain-verbinden)6 Min.
3. [Storefront bis zum Launch mit Passwort schützen](https://academy.laioutr.com/artikel/storefront-bis-zum-launch-mit-passwort-schuetzen)5 Min.
4. [Bilder über das Laioutr CDN ausliefern](https://academy.laioutr.com/artikel/bilder-ueber-das-laioutr-cdn-ausliefern)4 Min.
5. [Videos über das Video CDN ausliefern](https://academy.laioutr.com/artikel/videos-ueber-das-video-cdn-ausliefern)6 Min.
6. [Formulare gegen Bots und Spam schützen](https://academy.laioutr.com/artikel/formulare-gegen-bots-und-spam-schuetzen)7 Min.
7. [Storefront als Progressive Web App bereitstellen](https://academy.laioutr.com/artikel/storefront-als-progressive-web-app-bereitstellen)5 Min.

## Structured Data

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@id": "https://academy.laioutr.com/#website",
      "@type": "WebSite",
      "inLanguage": "de",
      "name": "Default",
      "url": "https://academy.laioutr.com/",
      "workTranslation": {
        "@id": "https://academy.laioutr.com/#website"
      }
    },
    {
      "@id": "https://academy.laioutr.com/artikel/formulare-gegen-bots-und-spam-schuetzen#webpage",
      "name": "Academy Article",
      "url": "https://academy.laioutr.com/artikel/formulare-gegen-bots-und-spam-schuetzen",
      "@type": [
        "WebPage",
        "FAQPage"
      ],
      "breadcrumb": {
        "@id": "https://academy.laioutr.com/artikel/formulare-gegen-bots-und-spam-schuetzen#breadcrumb"
      },
      "isPartOf": {
        "@id": "https://academy.laioutr.com/#website"
      },
      "mainEntity": [
        {
          "@id": "https://academy.laioutr.com/artikel/formulare-gegen-bots-und-spam-schuetzen#/schema/question/1"
        },
        {
          "@id": "https://academy.laioutr.com/artikel/formulare-gegen-bots-und-spam-schuetzen#/schema/question/2"
        },
        {
          "@id": "https://academy.laioutr.com/artikel/formulare-gegen-bots-und-spam-schuetzen#/schema/question/3"
        },
        {
          "@id": "https://academy.laioutr.com/artikel/formulare-gegen-bots-und-spam-schuetzen#/schema/question/4"
        }
      ],
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://academy.laioutr.com/artikel/formulare-gegen-bots-und-spam-schuetzen"
          ]
        }
      ]
    },
    {
      "@id": "https://academy.laioutr.com/artikel/formulare-gegen-bots-und-spam-schuetzen#breadcrumb",
      "@type": "BreadcrumbList",
      "itemListElement": [
        {
          "@type": "ListItem",
          "name": "Home",
          "item": "https://academy.laioutr.com/",
          "position": 1
        },
        {
          "@type": "ListItem",
          "name": "Hosting und Betrieb",
          "item": "https://academy.laioutr.com/bereiche/hosting-und-betrieb",
          "position": 2
        },
        {
          "@type": "ListItem",
          "name": "Laioutr Cloud",
          "item": "https://academy.laioutr.com/leitfaeden/laioutr-cloud",
          "position": 3
        },
        {
          "@type": "ListItem",
          "name": "Formulare gegen Bots und Spam schützen",
          "item": "https://academy.laioutr.com/artikel/formulare-gegen-bots-und-spam-schuetzen",
          "position": 4
        }
      ]
    },
    {
      "@id": "https://academy.laioutr.com/artikel/formulare-gegen-bots-und-spam-schuetzen#/schema/question/1",
      "@type": "Question",
      "inLanguage": "de",
      "name": "Merken echte Besucher etwas?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "<p>Meist nicht. Turnstile lädt erst bei der ersten geschützten Aktion und zeigt nur dann eine Abfrage, wenn Cloudflare eine Bestätigung verlangt.</p>"
      }
    },
    {
      "@id": "https://academy.laioutr.com/artikel/formulare-gegen-bots-und-spam-schuetzen#/schema/question/2",
      "@type": "Question",
      "inLanguage": "de",
      "name": "Was passiert, wenn der Anbieter ausfällt?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "<p>Bei <code>open</code> läuft die Aktion weiter und der Server protokolliert eine Warnung, bei <code>closed</code> antwortet er mit 503. Eine fehlende oder ungültige Prüfung wird in beiden Fällen abgelehnt.</p>"
      }
    },
    {
      "@id": "https://academy.laioutr.com/artikel/formulare-gegen-bots-und-spam-schuetzen#/schema/question/3",
      "@type": "Question",
      "inLanguage": "de",
      "name": "Braucht Turnstile eine Einwilligung?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "<p>Die App fügt keine Consent-Integration hinzu. Ob eine Einwilligung nötig ist, entscheidet der Betreiber der Storefront anhand der Angaben von Cloudflare.</p>"
      }
    },
    {
      "@id": "https://academy.laioutr.com/artikel/formulare-gegen-bots-und-spam-schuetzen#/schema/question/4",
      "@type": "Question",
      "inLanguage": "de",
      "name": "Warum schlägt eine geschützte Aktion beim Seitenaufbau fehl?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "<p>Nur ein Browser kann einen Nachweis erzeugen. Eine geschützte Aktion beim serverseitigen Rendern wird daher immer abgelehnt.</p>"
      }
    }
  ]
}
```
