Volgen

IAF / Voorkom Spam Bij Formulieren

Bij het gebruik van formulieren kan het voorkomen dat je als klant spam krijgt. Denk hierbij aan bots die jouw website bezoeken, een formulier vinden, dit invullen en versturen. Dit kan ervoor zorgen dat je onnodige mails krijgt of dat er onnodig waardes in het backend systeem (zoals SalesForce) komen te staan. Hieronder een beschrijving hoe dit te voorkomen is met de Interactive Forms module.

Concept

Om te voorkomen dat bots zomaar een formulier kunnen versturen, is er het zogenaamde concept "honeypot" verzonnen. Een honeypot lokt een bot uit om specifieke formuliervelden in te vullen, waardoor je CMS herkent dat er een bot aan het werk is in plaats van een mens. Hieronder is beschreven hoe je deze val zet, met behulp van verborgen velden. 

Nu zijn er twee mogelijkheden voor een honeypot: een "single" of een "double" honeypot. Een "single" honeypot maakt gebruik van een leeg, verborgen input veld, waar een controle op zit of dit veld inderdaad leeg is. Een "double" honeypot maakt gebruik van twee verborgen input velden, waarvan één gevuld en één leeg. Het eerste veld krijgt een check of het daadwerkelijk leeg is, het tweede veld krijgt een check op dat het gevuld is met een bepaalde term. 

Een double honeypot is een goede methode om ervoor te zorgen dat bots snel herkend worden. Hoe sneller het CMS een bot herkent, des te minder vervuiling er in de systemen terecht komt.

Realisatie 

De enige voorwaarde om de honeypot te kunnen maken in XperienCentral, is dat er een "hidden" presentatie is voor een "text" veld:

Mocht deze presentatie niet aanwezig zijn, neem dan contact op met GX Customer Services: mogelijk dat deze aangezet of aangemaakt dient te worden.

 

Als deze hidden presentatie aanwezig is, dan kunnen we aan de slag met het maken een honeypot. Hier volgen de stappen voor een "double" honeypot. In het geval van een "single" honeypot dient het tweede input veld niet aangemaakt te worden.

  1. Open een formulier in IAF die je een honeypot wil geven. Voeg twee tekstvelden toe (tip: voeg deze onderaan het document toe, de reden hiervoor is dat redacteuren niet per ongeluk deze velden verwijderen. De lege velden leveren namelijk een stuk witruimte op. Het is voor te stellen dat redacteuren de witruimte verwijderen, in de veronderstelling dat het om een lege enter gaat.)
  2. Verberg de titel van de velden
  3. Stel de presentatie van beide velden in op "hidden"/"verborgen"
  4. Bij het eerste tekstelement kies je bij "validaties" voor "reguliere expressie" (klik vervolgens op "toepassen")
  5. Als reguliere expressie vul je in: ^$. Dit betekent niks anders dan "Kijk van het begin van de zin (^) tot het einde ($) of er niks is"
  6. Bij het tweede tekstelement vul je een waarde in bij de prefilling (bijvoorbeeld "nietleeg")
  7. Ook bij het tweede tekst element kies je bij "validaties" voor "reguliere expressie" (klik vervolgens op "toepassen")
  8. Als reguliere expressie vul je in: ^nietleeg$ (dus gelijk aan de waarde van het prefillen uit stap 6)
  9. Sla het formulier op en voeg het toe aan een pagina

Testen

Wil je testen of de aangemaakte honeypost werkt zoals bedoeld, dan kun je dit doen met behulp van de Developer tools die zich in de meeste moderne browsers (Chrome, FF, IE11) bevinden. In dit voorbeeld is Chrome gebruikt.

  1. Open de pagina waar het formulier zich op bevindt
  2. Zoek in de broncode naar de twee verborgen velden 
  3. Vul met behulp van de Chrome Developer tools bij de eerste honeypot een waarde in bij "value" (bijvoorbeeld value="gevuld door bot")
  4. Verwijder of pas de waarde van "value" aan bij de tweede honeypot
  5. Probeer te navigeren naar de volgende pagina in het formulier of probeer de waardes van het formulier te versturen via mail

Als de honeypot juist is ingesteld krijg je een melding dat de waardes incorrect zijn ingevuld. Een normale gebruiker krijgt deze melding niet te zien, omdat deze gebruiker de waardes niet aanpast. Een bot zal echter nooit verder komen dan dit formulier, omdat het systeem herkent dat specifieke formuliervelden aangepast zijn. Deze aanpassing leidt ertoe dat het formulier niet te verzenden is en achterliggende systemen dus ook niet onnodig vervuilt.

Alternatief

Bovenstaande oplossing is in de meeste situaties geschikt. Het kan echter voorkomen dat een browser een formulier pre-filled. Denk aan Google Chrome die standaard je naam, adres en woonplaats invult. Het is mogelijk dat dit gedrag ertoe leidt dat een gebruikt zijn formulier niet kan verzenden.

Daarom is er een alternatief mogelijk voor bovenstaande opzet. In deze opstelling wordt het veld niet gecontroleerd, maar wordt er bij het verzenden van het formulier gecontroleerd of de waardes correct zijn en zo ja, dan wordt er een passende actie uitgevoerd. 

Alternatief realisatie

  1. Voeg twee tekstvelden toe
  2. Verberg de titel van de velden
  3. Stel de presentatie in op "hidden"/"verborgen"
  4. Prefill het tweede veld met bijvoorbeeld "nietleeg"
  5. Bij "Afhandelingen en routeringen" voeg je twee condities toe
  6. Bij de eerste conditie controleer je of het eerste veld niet gelijk is aan niks (zie afbeelding onder de lijst)
  7. Bij de tweede conditie controleer je of het veld niet gelijk is aan "nietleeg" (zie afbeelding onder de lijst)
  8. In beide condities verstuur je de gebruiker door naar een afvang-pagina, waarbij er bijvoorbeeld verzocht wordt aan de gebruiker om contact op te nemen met een service-balie
  9. Na de condities ga je verder met een normale afhandeling van het formulier (zie afbeelding onder de lijst)

De test-procedure is gelijk aan de eerder beschreven procedure. 

Conclusie

Het gebruik van een honeypot voorkomt spam. Met de standaard mogelijkheden in de Interactive Forms module is het dus mogelijk om de hoeveelheid spam te verminderen. Dit betekent minder tijdsbesteding aan het verwerken van ongewenste mail, of aan het opruimen van de backend. 

Let wel: Met deze methode voorkom je niet alle spam. Sommige bots zijn zo gemaakt, dat deze simpele trucjes hen niet om de tuin leidt. Mocht de hoeveelheid spam nu zo groot worden, neem dan contact met ons op, dan kunnen we onderzoeken of er nog andere mogelijkheden zijn om het aan te pakken. 

Veel succes met het inrichten van jouw eigen honeypot. Mochten er nog vragen zijn, schroom dan niet om contact met ons op te nemen.

Was dit artikel nuttig?
Aantal gebruikers dat dit nuttig vond: 0 van 0
Hebt u meer vragen? Een aanvraag indienen