mailcheck

Ratgeber

Fake-Anmeldungen verhindern: Maßnahmen, die wirken

Fake-Anmeldungen verhindern: Ursachen, eine Maßnahmenkette aus Honeypot, Rate-Limit, Wegwerf-Prüfung und Double-Opt-in, mit Code und ehrlichen Grenzen.

Autor: Marvin Mörsberger, MoersbergerITStand: Lesezeit: ca. 9 Minuten

Eine Newsletter-Liste mit vielen Anmeldungen wirkt erfolgreich, bis man die Kennzahlen ansieht: kaum Öffnungen, harte Bounces, Beschwerden von Menschen, die nie etwas bestellt haben. Fake-Anmeldungen verhindern gelingt selten mit einer einzelnen Maßnahme. Dieser Ratgeber beschreibt typische Ursachen, eine Kette aus mehreren Schichten, Code für die Umsetzung und die Grenzen jeder Schicht.

Fake-Anmeldungen verhindern: Die typischen Ursachen

Bevor Sie Gegenmaßnahmen wählen, sollten Sie wissen, wer sich da anmeldet. Mailchimp beschreibt in seiner Hilfe zu Fake-Anmeldungen zwei Fälle: Trolls oder Spambots machen bewusst falsche Angaben, und Besucher vertippen sich beim Ausfüllen. Spambots suchen demnach automatisiert nach Anmeldeformular-Code, füllen ihn mit Fantasiedaten und können sogar E-Mail-Links anklicken. Aus der Praxis kommen weitere Muster hinzu:

MusterWas dahinterstecktWirksame Schicht
Viele Anmeldungen in Sekunden von einer IPAutomatisiertes SkriptRate-Limit, Honeypot
Fremde Adresse wird angemeldetJemand missbraucht Ihr Formular, um einem Dritten Mails zu schickenDouble-Opt-in, Rate-Limit je Adresse
Wegwerf-DomainsAnmeldung nur für einen Rabattcode oder DownloadWegwerf-Prüfung
Tippfehler (gmial.com)Echter Interessent, falsche AdresseHinweis im Formular, Bestätigungsmail
Zufällig wirkende Namen, neue DomainsAutomatisch erzeugte AdressenWegwerf-Prüfung (Verdacht), Double-Opt-in

Die Zuordnung ist eine Faustregel. In der Praxis überlagern sich mehrere Muster, daher die Kette.

Die Maßnahmenkette im Überblick

Die Reihenfolge folgt dem Aufwand: Zuerst kommen billige Prüfungen, die ohne Netzzugriff auskommen, zuletzt die Bestätigungsmail.

  1. Honeypot: Ein für Menschen unsichtbares Feld. Wird es ausgefüllt, verwerfen Sie die Anmeldung. Mailchimp nennt dieses Prinzip in der oben verlinkten Hilfe als eine seiner Schutzmaßnahmen.
  2. Rate-Limit: Begrenzen Sie Anmeldungen je IP und je Adresse in einem Zeitfenster.
  3. Syntax und Wegwerf-Prüfung: Die mailcheck-API liefert ein Urteil mit Empfehlung.
  4. Double-Opt-in: Das Abo wird erst nach Klick auf einen Link in der Bestätigungsmail aktiv.
  5. Nachkontrolle: Unbestätigte Anmeldungen verfallen nach einer festen Frist; Auffälligkeiten werden vor dem Löschen geprüft.

Was Double-Opt-in leistet und was nicht

Double-Opt-in ist in vielen Newsletter-Projekten Standard. Es löst ein echtes Problem: Niemand kann eine fremde Adresse dauerhaft in Ihre Liste eintragen, ohne dass der Besitzer zustimmt. Es hat aber zwei Lücken:

  • Bots mit eigenem Postfach: Wer ein Wegwerf-Postfach betreibt, öffnet die Bestätigungsmail und klickt den Link. Mailchimp weist darauf hin, dass Spambots sogar E-Mail-Links anklicken können. Wegwerf-Prüfung und IP-Vergleich bleiben deshalb nötig.
  • Belastung Dritter: Auch bei Double-Opt-in verschicken Sie die Bestätigungsmail an die angegebene Adresse. Missbrauchen Angreifer Ihr Formular, erhalten Unbeteiligte eine einzelne Mail von Ihnen. Rate-Limit und Honeypot reduzieren das, weil sie schon vor dem Versand greifen.

Zur Rechtslage gilt nur ein allgemeiner Hinweis: Welche Anforderungen an Einwilligung und Nachweis für Ihr Angebot gelten, klären Sie mit einer fachkundigen Stelle. Dieser Artikel ist keine Rechtsberatung.

Honeypot und Rate-Limit: Beispiel in PHP

Das folgende Beispiel zeigt die beiden einfachsten Schichten. Das Honeypot-Feld heißt hier website und wird per CSS aus dem sichtbaren Bereich genommen. Wichtig ist, dass es ein plausibler Name ist, den Bots gern ausfüllen.

<!-- Im Formular -->
<div class="hp-feld" aria-hidden="true">
  <label for="website">Website</label>
  <input type="text" name="website" id="website" tabindex="-1" autocomplete="off">
</div>
<?php
// Serverseitig beim Absenden
if (!empty($_POST['website'])) {
    http_response_code(204); // Bot: stillschweigend verwerfen
    exit;
}

// Einfaches Rate-Limit je IP (Beispiel mit APCu, 5 Versuche in 10 Minuten)
$schluessel = 'anmeldung_' . hash('sha256', $_SERVER['REMOTE_ADDR'] ?? '');
$zaehler = apcu_fetch($schluessel) ?: 0;
if ($zaehler >= 5) {
    http_response_code(429);
    exit('Zu viele Versuche. Bitte später erneut versuchen.');
}
apcu_store($schluessel, $zaehler + 1, 600);

Das Rate-Limit ist bewusst simpel gehalten. Für Produktivsysteme mit mehreren Servern gehört der Zähler in einen gemeinsamen Speicher. Prüfen Sie außerdem, wie lange Sie IP-Adressen vorhalten, und kürzen Sie die Frist so weit wie möglich; auch hier gilt: Fragen zur Rechtslage klären Sie mit einer fachkundigen Stelle.

Wegwerf-Prüfung im Anmeldeablauf

Die dritte Schicht prüft die Adresse. Der Aufruf geht per POST an /api/v1/pruefen und liefert die Felder ergebnis, punkte, gruende, domain und empfehlung. Eine Staffelung in Python, wie sie in einem Anmelde-Handler aussehen kann:

import requests

def anmeldung_pruefen(email: str) -> str:
    """Gibt 'ablehnen', 'bestaetigen' oder 'ok' zurück."""
    try:
        r = requests.post(
            "https://mailcheck.moersbergerit.de/api/v1/pruefen",
            json={"email": email},
            timeout=3,
        )
        if r.status_code != 200:
            return "bestaetigen"      # Fail open: Bestätigungsmail entscheidet
        empfehlung = r.json().get("empfehlung")
    except requests.RequestException:
        return "bestaetigen"

    if empfehlung == "ablehnen":
        return "ablehnen"
    if empfehlung == "bestaetigen_lassen":
        return "bestaetigen"
    return "ok"

Bei Tippfehlern wie gmial.com liefert die Antwort im Feld vorschlag eine korrigierte Adresse (sonst null); zeigen Sie diese dem Besucher als Rückfrage. Die Rollenadresse (info@, admin@) kennzeichnet der Grund-Code rolle, das Ergebnis ändert sich dadurch nicht. Eine Domain, die nur auf einer schwächeren Liste steht, ergibt verdächtig mit dem Code liste_schwach. Die Bedeutung der Empfehlungen: ablehnen (ungültig oder Wegwerf), bestaetigen_lassen (verdächtig) und annehmen (alle übrigen, auch Alias). Die Herleitung der Punkte erklärt die Methodik-Seite. Wie Sie die Prüfung konkret in WordPress und Shopware einbauen, zeigt der Ratgeber Wegwerf-Adressen sperren.

Rufen Sie die API für echtes Sperren aus dem Backend auf, denn eine Prüfung im Browser ist leicht zu umgehen. Unter /api/v1 ist CORS erlaubt (Origin *), der Aufruf aus dem Browser eignet sich deshalb für Sofort-Hinweise im Formular, etwa „Meinten Sie name@gmail.com?“, ersetzt aber nicht die Prüfung auf dem Server. Das Standardlimit liegt bei 10 Anfragen pro Minute und 500 pro Tag je Client. Bei einem serverseitigen Aufruf teilen sich alle Besucher dieses Kontingent der Server-IP, also 500 Prüfungen am Tag und 10 pro Minute für alle zusammen. Bei vielen Anmeldungen reicht das nicht aus; planen Sie den Fail-open-Fall ein. Der Header X-RateLimit-Remaining nennt den Rest im aktuellen Fenster. API-Schlüssel für höhere Limits sind geplant. Müssen Sie viele Adressen auf einmal prüfen, etwa eine bestehende Liste bereinigen, nimmt POST /api/v1/pruefen/stapel bis zu 10 Adressen je Anfrage; jede Adresse zählt einzeln gegen das Limit.

Verdächtige Anmeldungen ohne harte Ablehnung behandeln

Nicht jeder Verdacht rechtfertigt eine Ablehnung. Das Urteil verdächtig kommt bei mailcheck ab 40 Punkten zustande, etwa durch eine sehr junge Domain, fehlenden MX-Eintrag oder einen zufällig wirkenden Namen. Diese Signale sind schwach und treffen auch echte Menschen. Behandeln Sie solche Adressen so:

  • Anmeldung zulassen, Abo aber erst nach Klick auf den Bestätigungslink aktivieren.
  • Bei Nichtbestätigung nach Ihrer Frist nicht erneut anschreiben.
  • Verdächtige Kontakte in ein eigenes Segment legen und vor dem Löschen prüfen. Mailchimp empfiehlt in seiner Hilfe ebenfalls, ein Segment mit verdächtigen Kontakten anzulegen und Namen mit Adressen abzugleichen, bevor Sie löschen.

Alias-Adressen von Weiterleitungsdiensten gehören nicht in dieses Segment: Sie zeigen auf ein echtes Postfach, die Person ist erreichbar. Die Unterschiede erklärt E-Mail-Alias erkennen.

Messen, ob es wirkt

Schätzungen vorab helfen wenig. Legen Sie lieber vor der Änderung fest, was Sie vergleichen, und messen Sie über einen festen Zeitraum. Geeignete Kennzahlen:

KennzahlWas sie zeigt
Anteil bestätigter AnmeldungenWie viele Anmeldungen von erreichbaren Personen stammen.
Rate harter Bounces nach dem ersten VersandWie viele Adressen nicht zustellbar sind.
Anzahl abgelehnter Eingaben je GrundWie oft Honeypot, Rate-Limit und Wegwerf-Prüfung auslösen.
Beschwerden von EmpfängernOb fremde Personen Ihre Mails erhalten.
Öffnungen und Klicks nach 30 TagenOb sich die Liste aus echten Interessenten zusammensetzt.

Führen Sie die Maßnahmen nacheinander ein, nicht alle am selben Tag. Nur so sehen Sie, welche Schicht wie viel bewirkt. Notieren Sie dabei auch, wie oft echte Nutzer abgewiesen wurden: Ein Filter, der zu viele echte Kunden trifft, kostet mehr als er nützt.

Grenzen: Was auch eine gute Kette nicht schafft

  • Gezielte Angriffe: Wer Zeit investiert, nutzt wechselnde IPs, eigene Domains und eigene Postfächer. Das fängt keine der genannten Schichten sicher ab.
  • Kein Postfach-Beweis: mailcheck prüft die Domain, nicht das Postfach, und macht bewusst keine SMTP-Probe. Eine Probe würde Verbindungen zu fremden Mailservern aufbauen und kann Absender-Reputation und Postfächer belasten. Ob eine Adresse existiert, zeigt nur die Bestätigungsmail.
  • Listen irren: Die genutzten Sperrlisten werden von Dritten gepflegt. Neue Anbieter erscheinen oft erst nach Tagen, und Fehleinträge kommen vor; falsche Treffer melden Sie an kontakt@moersbergerit.de.
  • Schwache Signale irren: Der Zufallsname-Test kann echte Namen treffen, etwa Adressen mit vielen Ziffern. Bei einer DNS-Zeitüberschreitung ist ein Fehlurteil „verdächtig“ möglich.

Das Ergebnis ist eine Einschätzung und keine rechtsverbindliche Aussage. Wie der Dienst Wegwerf-Adressen im Einzelnen erkennt, beschreibt Wegwerf-E-Mail erkennen; ein Beispiel können Sie direkt im Prüffeld ausprobieren.

Checkliste

  1. Honeypot-Feld im Formular, serverseitig ausgewertet.
  2. Rate-Limit je IP und je Adresse, mit kurzer Aufbewahrung der Daten.
  3. Serverseitige Prüfung per API, nur bei „ablehnen“ sperren, bei Fehlern zulassen.
  4. Double-Opt-in für alle, besonders für „verdächtig“.
  5. Unbestätigte Anmeldungen verfallen lassen.
  6. Kennzahlen vor und nach jeder Änderung vergleichen.
  7. Datenschutzerklärung aktualisieren, wenn Adressen an einen Prüfdienst übergeben werden (allgemeiner Hinweis, keine Rechtsberatung).

Häufige Fragen

Wie verhindere ich Fake-Anmeldungen im Newsletter?

Mit mehreren Schichten statt einer Maßnahme: ein Honeypot-Feld gegen einfache Bots, ein Rate-Limit je IP, die Prüfung der Adresse auf Wegwerf-Anbieter und Double-Opt-in. Keine Schicht ist allein ausreichend.

Schützt Double-Opt-in vor Fake-Anmeldungen?

Nur zum Teil. Es verhindert, dass Fremde Dritte ohne deren Zutun anmelden. Es hält aber keine Bots auf, die ein Wegwerf-Postfach nutzen und den Bestätigungslink anklicken. Mailchimp weist darauf hin, dass Spambots sogar E-Mail-Links anklicken können.

Woran erkenne ich Fake-Anmeldungen in meiner Liste?

Typische Hinweise sind Wegwerf-Domains, viele Anmeldungen derselben IP in kurzer Zeit, Namen, die nicht zur Adresse passen, und gehäufte Anmeldungen ohne Klick auf die Bestätigungsmail. Legen Sie ein Segment mit verdächtigen Kontakten an, bevor Sie löschen.

Soll ich Wegwerf-Adressen beim Newsletter ablehnen?

Meist ja, denn dort ist eine dauerhaft erreichbare Adresse der Zweck. Alias-Adressen von Weiterleitungsdiensten sollten Sie zulassen, weil sie auf ein echtes Postfach zeigen.

Wie messe ich, ob die Maßnahmen etwas bringen?

Vergleichen Sie vor und nach der Änderung Kennzahlen wie den Anteil bestätigter Anmeldungen, die Rate harter Bounces und die Zahl abgelehnter Eingaben. Schätzen Sie keine Wirkung vorab, sondern messen Sie über einen festen Zeitraum.

Adresse jetzt prüfen

Probieren Sie die Prüfung an einer eigenen Adresse aus.

Zur Prüfung
Fragen?