Om det är något med Internet som vi verkligen hatar så är det spam. Vi gör allt i vår makt för att stoppa e-postspam, med ett av marknadens bästa spamskydd i våra e-posttjänster, men spam tar sig form på många olika sätt. Ett av de sätt som ökat mest på sistone, det är formulärspam.
Formulärspam innebär att automatiserade program/botar fyller i hemsideformulär. Det kan vara allt från kontaktformulär till formulär för kommentarer. Denna spam skickas sedan via e-post eller publiceras på hemsidorna ifråga.
Det vanligaste sättet att stoppa formulärspam har varit att använda en sk. captcha. En captcha är en bild som enbart människor kan tolka. Men spambotarna har utvecklats och blivit bättre på att ta sig förbi captcha-skydd. Med det har även captcha-bilderna blivit allt mer avancerade och komplicerade (samt irriterande).
Det har gått så långt att captcha har visat sig leda till färre ifyllda formulär. Besökarna orkar inte tyda captcha-bilderna längre. Rent konkret så förlorar man kunder med captcha. Så många hemsideägare inaktiverar captcha-funktionerna och får istället dras med formulärspam.
Men det finns ett enklare alternativ till captcha: Honeypot!
Honeypot är en antispamteknik som går ut på att man lägger in ett, för vanliga användare, osynligt formulärsfält. Fältet döljs med CSS och för att formuläret ska fungera så måste detta fält vara tomt (vilket alltid är fallet med vanliga användare).
Spambotarna kan i regel inte hantera CSS och de är ofta instruerade att fylla i alla fält i ett formulär. Det innebär att de inte kan ta sig förbi ett formulär som är skyddat av ett honeypot-fält. Spambotarna fastnar i honungsburken.
Det finns lite olika sätt att lägga in honeypot-skydd i ett formulär. Det enklaste är att lägga till ett textfält med CSS-värdet ”display:none;” (via en separat klass). När formuläret skickas är det bara att plocka bort de inlägg där detta fält har ett värde. Ange gärna ett vanligt formulärsnamn för detta fält (”zip”, ”phone” eller liknande).
Om en människa besöker sidan, med en webbläsare som inte hanterar CSS, så kan det även vara bra att lägga in en label med en text motsvarande ”Om du är en människa, fyll inte i detta fält”. Även detta bör då vara dolt. Förhoppningsvis anger då människan ifråga inte något i detta textfält.
Ett exempel för detta i PHP finns här: Quick and Simple PHP Honey Pot Spam Prevention. Ett bra inlägg om detta, för de som vill lära sig mer, finns här: Stopping spambots with hashes and honeypots. Till WordPress finns ett antal olika honeypot-tillägg. Med Contact Form 7 kan tillägget Contact Form 7 Honeypot rekommenderas varmt.
Om du har några frågor om detta, eller har tips på andra sätt att stoppa formulärspam, lämna då gärna en kommentar här nedan.