Die Google Form-Anpassung wurde aufgrund des Kundenwunsches implementiert, das Kontaktformular der Website auf Google Form zu migrieren.
Wir haben dies in unserem Artikel veröffentlicht, und wir sind dankbar, dass viele Menschen ihn als Referenz nutzen! Vielen Dank.
Häufige Fallstricke beim Erstellen von Kundenformularen mit Google Form
Implementierung eines Bestätigungsbildschirms für Google Form-Anpassung
Daraufhin erhielten wir eine Anfrage zu Spamschutzmaßnahmen, da eine große Menge von Spam-E-Mails eingehen würde.
Diesmal haben wir die dritte Folge der Google Form-Serie zusammengestellt und einen Überblick über den Spamschutz für Google Form-Anpassungen gegeben.
Zunächst dachten wir, ob wir reCAPTCHA, einen kostenlosen Sicherheitsdienst von Google, implementieren könnten.
Aber
Google Formulare hat keine Standardeinstellung oder keinen Schalter wie "reCAPTCHA aktivieren". Es gibt solche Optionen nicht im Bearbeitungsbildschirm des Formulars, und es ist richtig zu verstehen, dass es sich um eine Funktion handelt, die Google nicht offiziell bereitstellt.
So heißt es. Nach weiteren Recherchen scheint es, dass reCAPTCHA in Google Formularen nach Googles Urteil funktioniert, und es ist unklar, ob die reCAPTCHA-Markierung angezeigt wird oder nicht!
Grundsätzlich sind alle Anpassungen von Google Formularen sichtbar, da Feld-IDs wie entry.386122698 im HTML eingegeben werden. Sobald diese URL und Entry-ID bekannt sind, ist es technisch möglich, POST-Anfragen direkt von einfachen Skripten wie curl oder Pythons requests an formResponse zu senden, ohne diese Seite im Browser zu öffnen.
Tatsächlich scheint sich der Großteil des Spams bei Google Formularen auf dieses Muster "direkt auf den Endpunkt zugreifen, anstatt die Seite zu durchlaufen" zu konzentrieren, und selbst mit reCAPTCHA funktioniert dies auf die gleiche Weise, und ohne Token-Validierung auf der Serverseite wie GAS ändert sich nichts am direkten POST-Pfad und bietet keine grundlegende Lösung.
Aber es gibt Lösungen!
Es gibt viele echte Spam-Bots, die dem generischen Typ „Kontaktformulare finden, automatisch ausfüllen und absenden" entsprechen (Bots, die die Seite tatsächlich rendern und das Formular über das DOM absenden).
Für diesen Typ ist eine Kontrolle des Absende-Buttons über JS durchaus wirksam. Um die Genauigkeit zu erhöhen, empfehlen wir, mehrere Mechanismen zu kombinieren. Alle Lösungen erfordern nur Änderungen in der HTML-Datei und erfordern keine Anpassungen auf Google Forms-Seite oder GAS-Seite.
Referenz: [reddit] Wie kann ich verhindern, dass Bots mein Google-Formular mit Spam überfluten und mein E-Mail-Postfach überlasten?
1. Mit JavaScript zufällige Zahlen generieren und deren Summe bei jedem Laden anzeigen.
Math.floor(Math.random()*9)+1 ist eine einfache Rechenaufgabe, die zufällig generiert wird. Mit JavaScript werden bei jedem Seitenladevorgang zufällig Zahlen wie beispielsweise „3 + 5 = ?" generiert und auf dem Bildschirm angezeigt. Der Absenden-Button bleibt deaktiviert, bis der Benutzer die richtige Antwort eingibt.
Dies mag für Benutzer etwas umständlich sein, aber es besteht die Neigung, dass generische Bots die visuelle UI ignorieren und direkt die Schaltfläche "Senden" ansteuern.
2. Automatische Erkennung durch Honeypot-Felder (unsichtbare Eingabefelder)
Mit CSS wird ein Eingabefeld außerhalb des sichtbaren Bereichs platziert, das für das menschliche Auge unsichtbar ist. Menschen berühren dieses Feld bei der Nutzung nicht, aber Bots, die Formulare maschinell ausfüllen und absenden, füllen auch dieses Feld aus. Wenn bei der Übermittlung ein Wert in diesem Feld erkannt wird, wird der Versand abgebrochen. So funktioniert dieser Schutzmechanismus.
Wirksam sind Bots, die systematisch alle Eingabefelder im Formular ausfüllen (unabhängig von deren Sichtbarkeit) und es anschließend absenden. Diese Art von Bots ist sehr verbreitet, daher ist diese Gegenmaßnahme vielversprechend.
Da jeder Bot unterschiedliche Typen erkennen kann, werden Ausfälle durch die Kombination beider minimiert.
Der Punkt, dass weiterhin keine Wirkung gegen „Direct-POST-Spam ohne Seitenvermittlung" erzielt wird, ändert sich nicht.
Wenn Google Form direkt angegriffen wird, ohne über die Website-Seite zu gehen, muss am Ende das Google Form selbst neu erstellt werden.
Unter Berücksichtigung dieser Punkte wäre es doch ziemlich wirksam, es als „Abwehrmaßnahme gegen einige gängige Bots" einzuführen!
Ich konzentriere mich auf Markup und entwickle Frontends mit JavaScript, React und Next.js. Es freut mich immer, wenn die Websites, an denen ich mitgearbeitet habe, erfolgreich veröffentlicht werden! Mein Hobby ist Gitarrespielen. Ich mag Katzen und gebackene Süßkartoffeln 🐱🍠
Hiraicchi
Frontend-Engineer / Eintritt 2022