Sitter med en mindre website som har ett kontaktformulär som skickar mail till mig direkt. Vill förstås inte ha en massa spam och skit, så jag tänkte implementera en CAPTCHA-funktion. Men hur komplicerad måste man göra det egentligen?
Jag är lite svag för simpla och tydliga CAPTCHA-funktioner, där man ombeds att genomföra simpel aritmetik ("vad är 1 + 6?" - "7") eller använder sig av naturligt språk s.a.s ("Vilken är den första bokstaven i sista ordet i denna mening?" - "m") för att få posten förbi filtret.
Så jag skrev en snabb funktion, där jag genererar en enkel "ekvation" varje gång sidan visas. För att passera CAPTCHA-funktionen måste man då fylla i svaret i ett visst input-fält.
Grejen är bara att jag matar svaret i ett osynlig fält (input type=hidden). Är inte svaret lika med det osynliga fältet så stoppas man - men räcker detta till eller kommer formuläret att läcka?
..
Mitt ord om CAPTCHA är att om man använder CAPTCHA skrämmer man bort spambotarna, vilket är syftet, men samtidigt skrämmer bort användarna!; speciellt om du inte använder sticky-forms/AJAX-lösning.
Exempelvis kontaktformulär där användare har skrivit ett långt personligt meddelande och skriver in fel CAPTCHA för att det syns dåligt, så måste man skriva in informationen igen. Det är riktigt irriterande för att användarna och många av dom ger upp och stänger ner sidan för att dom inte orkar skriva in informationen i formulären för ett nytt försök.
Exempelvis kontaktformulär där användare har skrivit ett långt personligt meddelande och skriver in fel CAPTCHA för att det syns dåligt, så måste man skriva in informationen igen. Det är riktigt irriterande för att användarna och många av dom ger upp och stänger ner sidan för att dom inte orkar skriva in informationen i formulären för ett nytt försök.
Visst, men då kan man använda Javascript för att fixa nån enkel kontroll så att det inte går att posta formuläret utan att fylla i CAPTCHA-formuläret?
Jag kör ibland med javascript istället för CAPTCHA. Jag har ett dold fält som har ett värde säg "ffsdfsdf", sedan har jag en onClick på min submitknapp som uppdaterar det värdet. Sedan när du tar imot formuläret kollar du bara att ditt gömda fält verkligen är ändrat. På de ställen jag använt detta på har det inte kommit förbi något spam, men det är nog bara en tidsfråga innan det börjar göra det.
Så min erfarenhet av detta är att botar kör inte javascript på sidorna utan läser bara av vilka fält som finns och fyller de med data.