ReCAPTCHA API – skilj på människor och bots

För att vara säker på att det är en person och inte en bot som registrerar sig eller loggar in på en sajt så används ofta CAPTCHAS (= Completely Automated Turing Test To Tell Computers and Humans Apart), dvs bilder som är svåra för maskiner men relativt lätta för människor att tyda. Detta är standardsättet att bekämpa att bots att lämna spamlänkar eller skicka spammail från automatiskt skapade konton.

ReCAPTCHA erbjuder en gratis CAPTCHA tjänst som dessutom hjälper till att digitalisera böcker på ett effektivt sätt. När man digialisterar böcker så finns det alltid några ord som inte datorn kan tyda korrekt, det är dessa ord som används i ReCAPTCHAs tjänst. Så samtidigt som man löser en CAPTCHA så deltar man också i ett massivt distribuerat projekt för att tyda dessa otydbara ord i digitaliserade texter.

ReCAPTCHA plugins

För att använda ReCAPTCHA i WordPress bloggar, Drupal eller Joomla sajter etc så finns det redan klara plugins redo att användas. Det finns också plugins/bibliotek till de flesta vanliga programmeringsspråk – tex PHP, Ruby, Java och Python. För att använda dessa plugins så behövs en reCaptcha API nyckel som man kan skapa gratis.

ReCAPTCHA API

Det finns även ett klient API för att använda reCAPTCHAs direkt via Javascript och AJAX eller på sajter som inte stödjer javascript. Detta klient API ger stor kontroll över hur reCAPTCHA widgeten ser ut. Bla så kan man ändra utseende på widgeten, det finns 4 standardteman eller så kan man designa sitt eget. Viktigare för oss svenskar är att man kan översätta alla texter i widgeten till vilket språk man vill, förpaketerat så finns engelska, tyska, spanska och några till, men för svenska så krävs lite mer jobb (men bara lite).

För att skapa en reCAPTCHA widget så kallar man api.recaptcha.net med en reCAPTCHA API nyckel, och för att översätta till svenska så anger man custom_translation attribut till RecaptchaOptions javascript variablen:

<script type="text/javascript">
  var RecaptchaOptions = {
    custom_translations : {
       visual_challenge : "Få en ny visuell utmaning",
       audio_challenge : "Få en ny ljudutmaning",
       refresh_btn : "Få en ny utmaning",
       instructions_visual : "Skriv in de två orden:",
       instructions_audio : "Skriv in det du hör:",
       help_btn : "Hjälp",
       play_again : "Spela ljudet igen",
       cant_hear_this : "Ladda ner ljudet som MP3",
       incorrect_try_again : "Fel. Försök igen."
    }
};
</script>
<script type="text/javascript" src= "http://api.recaptcha.net/challenge?k=DIN_API_NYCKEL"></script>

Detta API är till för att visa själva reCAPTCHA widgeten, för att validera indata från widgeten så använder man ett av pluginen som nämns ovan eller så skriver man sin egen valideringslösning via reCAPTCHA validation API. Att validera reCAPTCHA input i javascript är ju inte så säkert.

Så har du problem med spam på dina sajter så finns nu inte längre någon ursäkt, med reCAPTCHA så kan du få bort de flesta fuskanvändarna på ett enkelt sätt. Räcker inte det så kan du ju dessutom använda Akismets API för att kontrollera om de kommentarer som användarna lämnar är spam eller inte.