Topics

Leichte Spam-Prävention durch Google Form-Anpassung

  • column

Google Form-Anpassung, die wir zuvor auf der Grundlage von Anfragen zur Migration von Website-Kontaktformularen zu Google Form implementiert haben.

Wir veröffentlichen diese Inhalte in unserer Kolumne, und es freut uns sehr, dass so viele Menschen davon profitieren! Vielen Dank dafür.

Häufige Fallstricke beim Erstellen von Kundenformularen mit Google Forms
Implementierung des Bestätigungsbildschirms zur Google Forms-Anpassung

Unter diesen Umständen erhielten wir eine Anfrage, ob es Maßnahmen gegen die Flut von Spam-Mails gibt.
Diesmal präsentieren wir als dritten Teil unserer Google Form-Kolumne eine Zusammenfassung von Spam-Schutzmaßnahmen für Google Form-Anpassungen.

Als erste Lösung haben wir überlegt, ob wir reCAPTCHA, den kostenlosen Sicherheitsdienst von Google, einführen können.

Aber,

Google Forms verfügt nicht über eine Standardeinstellung oder einen Schalter wie "reCAPTCHA aktivieren". Im Bearbeitungsbildschirm des Formulars gibt es solche Optionen nicht, und die korrekte Erkenntnis ist, dass dies keine offiziell von Google bereitgestellte Funktion ist.

Nach weiterer Untersuchung funktioniert reCAPTCHA in Google Forms anscheinend nach Googles Ermessen, und wir können nicht vorher sehen, ob das reCAPTCHA-Symbol erscheint oder nicht!

Grundsätzlich werden bei der Anpassung von Google Forms feldIDs wie entry.386122698 in HTML eingegeben, daher sind alle Daten im Klartext sichtbar. Wenn nur diese URL und die entry-ID bekannt sind, ist es technisch möglich, direkt von einfachen Skripten wie curl oder Python requests ein POST an formResponse zu senden, ohne die Seite im Browser zu öffnen.

Tatsächlich scheint ein großer Teil des Google Form-Spams diesem Muster "den Endpunkt direkt ansteuern, ohne über die Seite zu gehen" zu folgen. Dies ist auch beim Einsatz von reCAPTCHA der Fall: Solange die Token-Validierung nicht serverseitig durchgeführt wird, wie in Google Apps Script, wirkt sich dies nicht auf den direkten POST-Pfad aus und stellt daher keine echte Lösung dar.

Aber es gibt Lösungen!

In der Praxis gibt es viele Spam-Bots, die den generischen Typ verwenden: "Kontaktformular finden, automatisch ausfüllen und absenden" (Bots, die die Seite tatsächlich rendern und das Formular über das DOM absenden).

Für diesen Typ ist die JavaScript-Kontrolle des Submit-Buttons tatsächlich wirksam. Um die Genauigkeit zu erhöhen, empfiehlt es sich, mehrere Mechanismen zu kombinieren. Alle erfordern nur Änderungen an der HTML-Datei und erfordern keine Änderungen an Google Forms oder Google Apps Script.

Referenz: [reddit] How can I prevent bots from spamming my Google Form and flooding my email?

1. JavaScript generiert bei jedem Laden eine zufällige einfache Additionsaufgabe.

Math.floor(Math.random()*9)+1 ist eine einfache Rechenaufgabe mit zufällig generierten Zahlen. Mit JavaScript wird bei jedem Seitenladevorgang eine zufällig generierte Rechenaufgabe wie zum Beispiel "3 + 5 = ?" angezeigt, und der Submit-Button bleibt deaktiviert, bis der Benutzer die richtige Antwort eingibt.

Dies ist etwas aufwändig für Benutzer, aber Bots, die auf die visuelle Benutzeroberfläche nicht reagieren und trotzdem den Submit-Button drücken wollen, neigen dazu, darauf hereinzufallen.

2. Automatische Erkennung durch ein Honeypot-Feld (unsichtbares Eingabefeld)

Mit CSS wird ein Eingabefeld außerhalb des Ansichtsbereichs platziert, das für menschliche Augen unsichtbar ist. Menschen werden dieses Feld nicht verwenden, aber Bots, die mechanisch alle Formularfelder ausfüllen und absenden, werden auch dieses Feld mit Werten füllen. Der Mechanismus besteht darin, den Versand zu stornieren, wenn dieses Feld bei der Übermittlung Werte enthält.

Dies ist wirksam gegen Bots, die alle Eingabefelder im Formular (ob sichtbar oder nicht) mechanisch ausfüllen und dann absenden. Diese Art von Bot ist sehr häufig, daher ist eine Gegenmassnahme vielversprechend.

Da jeder Bot-Typ unterschiedlich erkannt werden kann, ist eine Kombination beider Methoden wirksamer gegen Spam.

Gegen "direkte POST-basierte Spam-Angriffe ohne Webseitenzugriff" bleibt die Schutzwirkung jedoch weiterhin begrenzt.

Wenn ein Google Form direkt ohne Besuch der Website mit Spam angegriffen wird, muss das Google Form letztendlich neu erstellt werden.

Daher ist es als "leichte Schutzmaßnahme gegen einige gängige Bot-Typen" recht wirksam, nicht wahr!

Dieser Artikel wurde geschrieben von

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

Artikel dieses Mitarbeiters ansehen

Zuverlässige Teamstruktur und schnelle Reaktionsfähigkeit sind unsere Stärken

Bei Liberogic werden erfahrene Mitarbeiter aktiv bei der Projektförderung eingesetzt, daher erhalten wir hohe Bewertungen von unseren Kunden.
Wir weisen Projektmanager und Direktoren ordnungsgemäß zu und bemühen uns, Projekte reibungslos zu leiten. Wir vermeiden unnötige Kostensteigerungen durch vollständige Bindung und verteilen Ressourcen optimal. Wir sind auch bekannt für die Schnelligkeit bei der Erfassung von Geschäftsinhalten bis zur Erstellung und Einreichung von Angeboten.

※ Bitte beachten Sie, dass wir keine SES-ähnliche Vor-Ort-Arbeit aktiv durchführen.

Sie können nahezu alle wichtigen Projektmanagement-Tools und Chat-Tools verwenden, wie Slack, Teams, Redmine, Backlog, Asana, Jira, Notion, Google Workspace, Zoom, Webex und mehr.

Konsultieren Sie uns gerne bei Ihren Web-Fragen.

Fallstudien