WebBlocks CMS stellt eine einheitliche lokale Schutzpipeline für öffentlich zugängliche Formulare bereit. Die nativen Blocks Kontaktformular und Kommentare verwenden sie direkt; Plugins wie WebBlocks Forms lösen denselben Dienst aus dem CMS-Container auf. Dadurch folgen Signale einer Site über verschiedene Formulartypen hinweg, anstatt dass sich jedes Formular isoliert schützt.

Die Pipeline stellt keine Netzwerkanfragen und benötigt weder CAPTCHA noch API-Schlüssel, Daemon, Browser-Fingerprinting-Dienst, optionale PHP-Erweiterung oder Moderationsprodukt eines Drittanbieters. Sie verwendet die Datenbank der Anwendung, den konfigurierten Laravel-Cache und APP_KEY.

Verarbeitungsmodell

Der Schutz ist bewusst mehrstufig aufgebaut:

  1. Laravel-Validierung und CSRF weisen fehlerhafte oder ursprungsübergreifende Anfragen wie gewohnt zurück.
  2. Der Renderer stellt eine signierte Formularidentität, einen Zeitstempel und ein generiertes Honeypot bereit.
  3. Ein ungültiger Nachweis, ein ausgefülltes Honeypot oder eine Übermittlung vor Ablauf der Mindestzeit des Formulars durchläuft den allgemeinen Erfolgsweg, ohne gespeichert oder zugestellt zu werden.
  4. Gültige Übermittlungen werden anhand von Inhalts-, Zeit-, Wiederholungs-, Absender-, Quellen-, Netzwerkpräfix-, Formular- und erlernten Reputationssignalen bewertet.
  5. Aus der Punktzahl wird allow, quarantine oder spam.
  6. Das zuständige Formular speichert den Prüfdatensatz; nur allow darf Zustellaktionen ausführen.

Besucher erhalten niemals die Punktzahl, Gründe, das Benachrichtigungsergebnis oder eine Bestätigung darüber, dass eine Falle sie erkannt hat. Die allgemeine Antwort verhindert, dass Bots den Endpunkt zur Optimierung ihrer Nutzlasten verwenden.

Entscheidungen und Zustellung

inspect() gibt score, eindeutige reasons, decision und das Kompatibilitätsflag is_spam zurück. Die Standardschwellenwerte lauten:

Bei Kontaktnachrichten unterdrücken Quarantäne und Spam die E-Mail-Benachrichtigung. Bei WebBlocks Forms unterdrücken sie jede Aktion, einschließlich geschäftlicher Benachrichtigung, automatischer Antwort, Webhook und optionaler Campaigns-Integration. Kommentare werden niemals automatisch veröffentlicht: Saubere und unter Quarantäne gestellte Kommentare bleiben ausstehend, während eine Spam-Entscheidung als Spam gespeichert wird.

Signale und Standardgewichtungen

Signale werden addiert, und die endgültige Punktzahl ist auf 100 begrenzt. Mehrere schwache Signale können eine Anfrage daher unter Quarantäne stellen, ohne sich auf eine einzelne anfällige Schlüsselwortregel zu stützen.

E-Mail-Adressen werden vor der Erstellung des Inhaltsfingerabdrucks entfernt. Dadurch verbirgt ein Wechsel des Absenders keine wiederholte Nachricht, und das Ändern einer Adresse erzeugt keine neue Kampagnenkopie.

Geltungsbereich, Zeitfenster und Datenschutz

Jeder Zähler und jede Reputationsabfrage ist auf die Site beschränkt. Aktivitäten auf einer gehosteten Site können die Punktzahl einer anderen Site nicht erhöhen.

  • Cache-Schlüssel für exakte IP-Adresse, Absender, Inhalt, Formular und Netzwerk verwenden schlüsselgebundenes HMAC; übermittelte Werte erscheinen nicht in Cache-Schlüsseln.
  • IPv4-Adressen werden vor dem HMAC des Netzwerkpräfixes auf /24 und IPv6-Adressen auf /64 reduziert. So werden wechselnde Hosts erkannt, ohne die Adresse zu speichern oder Geolokalisierung zu verwenden.
  • Netzwerkschwellenwerte sind höher als Schwellenwerte für exakte IP-Adressen, damit Büros, Schulen, Mobilfunk-Gateways und andere gemeinsam genutzte Netzwerke nicht zu früh benachteiligt werden.
  • Ähnlichkeitszeilen enthalten ein exaktes HMAC, einen 64-Bit-SimHash, Zähler und Zeitstempel – nicht die übermittelte Nachricht.
  • Tägliche Metriken enthalten nur Site, Datum, Oberfläche und aggregierte Entscheidungszahlen.

Die zuständige Übermittlungstabelle kann weiterhin Informationen speichern, die das jeweilige Produkt benötigt. Eine Kontaktnachricht speichert beispielsweise die vom Besucher angegebene Adresse und Quelldetails. Dieser Produktdatensatz ist von Schutzreputation und Metriken getrennt.

Erlernte Reputation und Korrekturen

wbcms_submission_fingerprints verwaltet lokale, Site-bezogene Reputation. Exakte Übereinstimmungen haben die stärkste Wirkung; ähnliche Duplikate verwenden einen begrenzten SimHash-Vergleich über höchstens die 200 zuletzt erfassten Fingerabdrücke aus den vorangegangenen 90 Tagen.

Wenn eine Kontaktnachricht oder eine WebBlocks Forms-Übermittlung als Spam markiert wird, zeichnet das System spam-Feedback auf. Wird ein Spam- oder Quarantäneelement auf Neu, Gelesen oder Beantwortet zurückgesetzt, wird ham-Feedback aufgezeichnet, das spätere falsch positive Ergebnisse ausgleicht. Archivieren dient nur der Organisation und bewirkt kein Lernen. Feedback wirkt sich nur auf spätere Übermittlungen aus; vorhandene Datensätze werden nicht rückwirkend neu klassifiziert.

Plugins rufen recordOutcome($siteId, $validatedAnswers, 'spam') auf oder verwenden für eine Korrektur ham.

30-Tage-Übersicht für Administratoren

Jede bewertete Übermittlung erhöht eine Zeile in wbcms_submission_daily_totals für ihre Site, ihr Datum und ihre Oberfläche. Die Ansicht Kontaktnachrichten zeigt die fortlaufende Übersicht über alle Sites an, auf die der angemeldete Administrator zugreifen darf. WebBlocks Forms zeigt sie für die ausgewählte Site an.

  • Geprüft: jede gültige Übermittlung, die die Bewertung erreicht hat;
  • Zugelassen: die normale Zustellung wurde erlaubt;
  • Unter Quarantäne: zur Prüfung gespeichert und Zustellung unterdrückt;
  • Spam: als Spam gespeichert und Zustellung unterdrückt.

Durch Fallen verworfene oder zu schnelle Anfragen erreichen die Bewertung nie, werden nicht gespeichert und sind in diesen Summen nicht enthalten. Die Übersicht liefert betrieblichen Kontext und ist weder eine Besucherzahl noch ein Genauigkeitsbericht. summary($siteIds, $days) gibt Nullen zurück, solange die Metriktabelle nicht installiert ist, sodass Plugin-Ansichten während eines unvollständigen Updates sicher bleiben.

Konfigurationsreferenz

Alle Einstellungen sind optionale Überschreibungen durch Umgebungswerte. Die Standardwerte sind konservativ.

Halten Sie den Quarantäneschwellenwert unter dem Spam-Schwellenwert und jeden ersten Häufungsschwellenwert unter seinem zweiten Schwellenwert; Zeitfenster müssen positiv sein. Führen Sie nach dem Ändern von Umgebungswerten in einer Installation mit zwischengespeicherter Konfiguration php artisan optimize:clear aus.

Nachweisvertrag des Renderers

SubmissionProof bindet seine Werte sowohl an die Oberfläche als auch an die Formularidentität. Renderer übermitteln _form_stamp, _form_check_name und das von fieldName($surface, $form) zurückgegebene leere Feld. Fehlende, veränderte, vordatierte oder formularfremde Werte führen zu einem sicheren Fehlschlag.

Der Nachweis ist kein Einmaltoken: Ganzseiten- und CDN-Caches können dasselbe Formular mehreren echten Besuchern bereitstellen. Sein Zweck besteht in Formularbindung, Integrität, Honeypot-Benennung und Messung der verstrichenen Zeit – nicht im Schutz vor Wiederholung.

Integrationsvertrag für Plugins

Plugins bleiben für Validierung, Autorisierung, Ratenbegrenzung, Speicherung, Statusnamen und Rendering verantwortlich. Ein kompatibles Plugin muss:

  1. einen signierten Nachweis und ein leeres generiertes Honeypot rendern;
  2. ungültige Nachweise, ausgefüllte Fallen und Übermittlungen unterhalb seiner festen Mindestzeit stillschweigend verwerfen;
  3. nur validierte Antworten an inspect() übergeben;
  4. die tatsächliche Site-ID und stabile Oberflächen-/Formularidentitäten verwenden;
  5. Punktzahl und Gründe zusammen mit seiner Übermittlung dauerhaft speichern;
  6. Aktionen nur ausführen, wenn die Entscheidung allow lautet;
  7. Spam-/Ham-Korrekturen des Betreibers an recordOutcome() senden;
  8. summary() verwenden, statt CMS-Metriktabellen direkt abzufragen.

Kopieren Sie den Bewerter nicht in ein Plugin, schwächen Sie keine installationsweiten Schwellenwerte, legen Sie Besuchern keine Ursachencodes offen und übertragen Sie Antworten nicht an einen anderen Dienst. WebBlocks Forms ist die Referenzimplementierung.

Betriebshinweise

  • Prüfen Sie Quarantäne und Spam regelmäßig; die Lernschleife hängt von bewussten Statuskorrekturen ab.
  • Markieren Sie echte Kampagnen als Spam. Verwenden Sie Archivieren nur zur Ablage, da es die Reputation nicht trainiert.
  • Setzen Sie falsch positive Ergebnisse auf einen legitimen Workflow-Status zurück.
  • Ändern Sie Schwellenwerte erst, nachdem Sie den Site-Traffic beobachtet haben. Niedrigere Absender-/Netzwerkzahlen können den Traffic gemeinsam genutzter Büros oder Veranstaltungen beeinträchtigen.
  • Ein Anstieg bei Geprüft ohne E-Mail im Posteingang ist zu erwarten, wenn Quarantäne oder Spam die Zustellung unterdrückt. Benachrichtigung und redaktioneller Status bleiben getrennt.
  • Erstellen Sie vor einer Änderung von APP_KEY eine Sicherung. Durch die Rotation sind vorhandene HMAC-Fingerabdrücke und aktive Cache-Schlüssel nicht mit neuen vergleichbar, bis der alte Einfluss abgelaufen ist.