Topics

Google Form-aanpassingen met lichte spambeveiliging

  • column

Vanwege aanvragen om contactformulieren van websites over te zetten naar Google Form hebben we eerder Google Form-aanpassingen geïmplementeerd.

We hebben dit in onze kolom gepubliceerd, en veel mensen gebruiken het gelukkig als referentie! Dank u wel.

Valkuilen bij het maken van uw formulier met Google Form
Bevestigingsscherm implementeren voor Google Form-aanpassingen

Vervolgens ontvingen we een verzoek: we krijgen massaal spam-e-mails. Zijn er maatregelen mogelijk?
Deze keer hebben we dit als derde deel van onze Google Form-kolom samengevat: spambeveiliging voor Google Form-aanpassingen.

Het eerste idee dat bij ons opkwam als maatregel was: kunnen we de gratis beveiligingsservice van Google, reCAPTCHA, implementeren?

Maar,

Google Form heeft geen standaardinstellingen of schakelaars zoals "reCAPTCHA inschakelen". Er zijn geen dergelijke opties in het formulierbewerk scherm, en het is correct om dit geen officieel door Google aangeboden functie te noemen.

Zei het onderzoek. Verder onderzoek toonde aan dat reCAPTCHA in Google Form werkt op basis van Google's oordeel, en we weten niet of het reCAPTCHA-embleem verschijnt of niet!

Om te beginnen, omdat Google Form-aanpassingen entry.386122698 en dergelijke veld-ID's in HTML invoeren, zijn ze allemaal in platte tekst zichtbaar. Als u dit URL en deze entry ID kent, is het technisch mogelijk om direct van een eenvoudig script zoals curl of Python requests naar formResponse te posten zonder de pagina in een browser te openen.

In werkelijkheid volgen veel Google Form-spam dit patroon van "het eindpunt rechtstreeks bereiken zonder de pagina te gebruiken", en dit is hetzelfde met reCAPTCHA, en tenzij tokenvalidatie aan de serverzijde wordt uitgevoerd, zoals in GAS, heeft het geen effect op de directe POST-route en is het geen fundamentele oplossing.

Maar er zijn wel degelijk oplossingen!

In de praktijk bestaan er veel spambots van het type dat generieke formulieren zoekt, deze automatisch invult en verzendt (bots die de pagina werkelijk renderen en via de DOM verzenden).

Voor dit type bot is het controleren van de verzendknop via JavaScript effectief. Om de nauwkeurigheid te verhogen, raden we aan meerdere maatregelen te combineren. Al deze maatregelen zijn voltooid met alleen wijzigingen aan het HTML-bestand; je hoeft niets aan Google Forms of GAS aan te passen.

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

1. Genereer elke keer willekeurige getallen optellen met JavaScript en toon deze.

Math.floor(Math.random()*9)+1 is een eenvoudige rekenkundige formule waarbij twee getallen worden opgeteld. JavaScript genereert willekeurig bij elk laden van de pagina (bijvoorbeeld "3 + 5 = ?") en toont dit op het scherm. De verzendknop blijft disabled totdat de gebruiker het juiste antwoord invult.

Dit veroorzaakt wat extra moeite voor gebruikers, maar het werkt goed tegen generieke bots die niet reageren op de visuele UI en toch op de verzendknop drukken.

2. Automatische detectie via honeypot-veld (onzichtbaar invoerveld)

Plaats met CSS een invoerveld buiten het zichtbare scherm zodat het onzichtbaar is voor mensen. Normale gebruikers zullen dit veld niet aanraken, maar bots die formulieren mechanisch invullen zullen hier ook een waarde invoeren. Daarom wordt de verzending geannuleerd als dit veld bij verzending een waarde bevat.

Dit werkt tegen bots van het type dat alle invoervelden in het formulier (ongeacht zichtbaarheid) mechanisch invult en verzendt. Dit type bot is erg veel voorkomend, dus deze maatregel is erg effectief.

Omdat elk type bot anders wordt gedetecteerd, is het combineren van beide methoden effectiever en minder gevoelig voor missers.

Voor 'directe POST-type spam zonder pagina-omleiding' blijft het effectief onveranderd.

Als Google Form rechtstreeks wordt aangevallen met spam zonder via de website te gaan, moet uiteindelijk het Google Form zelf opnieuw worden gemaakt.

Gezien dit inzicht is implementatie als 'beperkte maatregel tegen enkele veel voorkomende bots' behoorlijk effectief, nietwaar!

Auteur van dit artikel

Ik concentreer me op markup en ontwikkel frontends met JavaScript, React en Next.js. Het geeft me veel voldoening als een website waaraan ik heb gewerkt succesvol wordt gepubliceerd! Mijn hobby's zijn gitaar spelen. Ik ben dol op katten en zoete aardappelen🐱🍠

Hiracchi

Frontend-engineer / aangenomen in 2022

Artikelen van deze medewerker bekijken

Ons sterke punt is ons betrouwbare teamstructuur en snelle responsiviteit

Bij Liberogic worden ervaren teamleden actief ingezet voor projectvoering, wat door klanten zeer wordt gewaardeerd.
We wijzen vakbekwaam projectmanagers en directors aan en streven ernaar projecten soepel te laten verlopen. We voorkomen onnodig kostenverhogingen door volledig inzet te vermijden en wijzen middelen toe waar ze het meest geschikt zijn. Onze snelheid bij taakanalyse en bij het opmaken en indienen van offertes is goed bekend.

* Wij voeren niet actief SES-achtige permanente werkzaamheden uit, dus graag van tevoren dank voor uw begrip.

U kunt vrijwel alle grote projectmanagementtools en chattoolsgebruiken, zoals Slack, Teams, Redmine, Backlog, Asana, Jira, Notion, Google Workspace, Zoom en Webex.

Neem contact met ons op voor advies over uw webvragen.

Casestudies