Overslaan en naar de inhoud gaan

Spam tegen gaan op je Drupal website

Spam is een groot probleem. Als je een website hebt waar het mogelijk is voor bezoekers om actie te ondernemen krijg je geheid te maken met spammers. In dit artikel bespreek ik verschillende methodes om de strijd met spammers aan te gaan.

Tuut tuut. Hier komt de SPAM bus!

De beste manier om spam tegen te gaan op een Drupal website is door gebruik te maken van modules. Deze modules zijn gratis en uit eigen ervaring zijn de volgende twee modules het meest succesvol gebleken:

  • http:BL - Deze module helpt het tegengaan van spam in je reacties.
  • Spambot - Met deze module zorg je ervoor dat er minder nep (spam) accounts aangemaakt worden binnen je Drupal website.

Maar er zijn nog meer modules tot je beschikking.

Captcha

In dit artikel bespreek ik geen captcha's. Ik ben van mening dat de captcha een hele slechte techniek is om spam af te vangen. Als ik bijvoorbeeld een reactie ergens op wil geven en ik moet een captcha invoeren begin ik al direct luid te zuchten. Ik weet niet of het aan mij ligt maar de captcha's zijn meestal zo onleesbaar dat ik het drie of vier keer moet proberen voordat ik de letters goed gok. Ik doe al moeite om een reactie te schrijven en nu moet ik ook nog extra veel tijd stoppen in het oplossen van een captcha. Een captcha is een extra horde die een gebruiker moet nemen om een actie te ondernemen. Daarom valt in mijn ogen deze optie direct af. Er zijn alternatieven die Thomas in dit artikel bespreekt maar ik kies toch liever voor een optie die de gebruiker geen moeite kost.

Spamicide

Deze module hebben we een hele lange tijd op onze eigen website succesvol gebruikt. Spam is meestal het resultaat van bots die massaal websites bezoeken en formulieren invullen. Spamicide maakt hier handig gebruik van door een extra veld toe te voegen aan de formulieren die jij wil beschermen tegen spam. Dit veld is voor de normale bezoeker niet zichtbaar. De bot ziet dit veld wel en zal het ook invullen, omdat een bot altijd alle velden van een formulier wil invullen. Wanneer het veld ingevuld is bij het opslaan van het formulier weet de spamicide module dat het om spam gaat. De resultaten van dit formulier verdwijnen dan automatisch in de prullenbak.

Hoewel we een jaar lang zeer weinig spam hebben gehad werden de bots steeds slimmer. Bij spamicide moet je in de instellingen aangeven hoe dit nep veld moet heten. De bots kregen echter door dat dit een nep veld was en begonnen deze te omzeilen. Het werd een gevecht waarbij wij elke keer de naam van dit nep veld moesten veranderen en de bots moesten achterhalen hoe we dit veld nu weer genoemd hadden. Uiteindelijk was de module niet meer effectief en zijn we op zoek gegaan naar een andere oplossing.

Meer artikelen over Drupal in je inbox? Schrijf je dan in voor onze nieuwsbrief.

Mollom

Deze dienst is opgericht door Dries Buytaert, bedenker van Drupal. Om mollom te kunnen gebruiken moet je een account aanmaken en de module downloaden. Je kan dan gebruik maken van een gratis account waarbij een beperkt aantal spam pogingen wordt tegen gehouden. Wanneer je betaalt voor mollom krijg je de opties om meer spam te blokkeren.

Wanneer je genoeg betaalt voor mollom werkt het fantastisch. Het doet wat het moet doen: spam tegen houden. Echter liepen wij tegen een paar problemen op:

  • Je moet voor de dienst betalen. Als je een beetje populaire website hebt dan kunnen de kosten al snel oplopen.
  • Wanneer mollom een reactie niet vertrouwt wordt er alsnog een captcha getoond. Wij merkten dat het heel lastig te bepalen was wanneer mollom een captcha liet zien of niet, iets waar wij wel controle over willen hebben.
  • De mollom module zorgde ervoor dat onze website traag werd. De snelheid van onze website is voor ons erg belangrijk en de snelheid die wij moesten inleveren voor mollom was het niet waard.

Voor hele grote websites die een flink budget hebben zou mollom een optie kunnen zijn. Onze zoektocht ging echter verder.

Bekijk de Drupal projecten die wij beschermen tegen spammers

Honeypot

De honeypot module maakt gebruik van dezelfde techniek als Spamicide door een nep veld te plaatsen. Hier komt ook de naam van de module vandaan want het nep veld wordt gezien als een honingpot waar spam bots door aangetrokken worden. Naast deze methode kijkt honeypot ook naar het aantal seconden dat de gebruikt nodig heeft om een formulier in te vullen. Een spam bot verraadt zichzelf namelijk door formulieren binnen een aantal milliseconden in te voeren. Dit is voor normale mensen niet te doen. Alle formulieren die dus vliegensvlug ingevoerd worden niet gepubliceerd.

Ook deze module heeft ons een tijdje geholpen in het gevecht tegen de spam maar was uiteindelijk ook niet goed genoeg om alles te blokkeren. Wat ons brengt bij onze huidige oplossing.

http:BL

Deze module pakt het op een andere manier aan. Wanneer iemand een formulier invult wordt het IP van deze gebruiker gecheckt. Er wordt dan gecontroleerd of dit IP op de zwarte lijst met IP adressen van spammers staat. Als dit het geval is wordt het formulier geweigerd en het IP adres geblokkeerd. http:BL maakt gebruik van de lijsten van 'Project Honey Pot' (niet te verwarren met de Honeypot module). Hier kun je een gratis account aanmaken welke je nodig hebt bij de configuratie van de module. Je krijgt dan ook de mogelijkheid om mee te werken aan het project, zodat IP adressen die jij markeert als spam ook worden opgenomen in de lijst. Er zijn nu al meer dan 500 miljard van deze 'spam traps' actief die proberen zoveel mogelijk spammers op de zwarte lijst te krijgen.

We draaien deze module nu bijna twee maanden en het aantal spam berichten is minimaal. Eén per week is veel. Voor ons is dit momenteel de beste oplossing om spam tegen te gaan op onze Drupal website, maar dat wil niet zeggen dat dit in de toekomst kan veranderen. Wanneer wij een nog betere methode vinden zal ik dit artikel een update geven.

Bonus: Spambot

Spam komt in meerdere vormen. Het gebeurt namelijk ook dat bots nep accounts aanmaken binnen je Drupal website waarmee ze uiteindelijk willen spammen. Een handige module die eigenlijk hetzelfde werkt als de hierboven beschreven http:BL is Spambot. Wanneer iemand zich registreert wordt het IP adres (maar ook e-mailadres en/of gebruikersnaam) tegenover de zwarte lijst van Spambot gezet. Als er een match is wordt het account niet goedgekeurd en krijgt de spammer geen account op jouw website. Spambot maakt gebruik van de lijsten op Stop Forum Spam.

Heb jij veel last van spam op je Drupal website en heb je misschien een betere oplossing? Laat het mij weten in het commentaar, ik ben benieuwd!

Heb je iets aan deze content gehad? Laat weten hoe je ons waardeert.

Meld je aan voor onze nieuwsbrief

En je ontvangt net als 2321 andere leden een overzicht van onze nieuwste artikelen. Met onderwerpen als; de laatste webdesign trends, SEO tips, conversie optimalisatie, Joomla, Drupal en Wordpress ontwikkelingen.

Reacties

Beste Robert,

Wat vinden jullie van een eenvoudig rekensommetje (bv 5 + 7) aan het einde van een formulier als anti-SPAM maatregel ?

met vriendelijk groet,
Sepp

Standaard avatar Sepp van de Manakker 16.10.2017 - 14:25

Als antwoord op door Sepp van de Manakker

Hi Sepp, zoals Robert aangeeft zijn we geen voorstanders van captcha's. De reden is dat je de bezoeker lastig valt en verstoort in hun proces. Dat kan zijn iets bestellen, je aanmelden of content opnemen. De bezoeker een som uit laten rekenen is vriendelijker dan een wirwar van tekens proberen te lezen maar het blijft een stoorfactor. De methodes die Robert in dit artikel noemt storen de bezoeker niet en houden een hoop spam tegen. Natuurlijk is er altijd een grens waarbij een pagina zo populair wordt bij spammers dat deze gebruiksvriendelijke anti-spam maatregelen niet meer helpen. Persoonlijk ben ik voor dat soort gevallen voorstander van de I'm not a robot functie van Google. Dit vereist een minimale handeling van de bezoeker (namelijk een muisbeweging) en zorgt er toch voor dat je spambots tegenhoudt. Gr, Thomas.

Standaard avatar thomas 19.10.2017 - 12:35

Beperkte HTML

  • Regels en alinea's worden automatisch gesplitst.