reCAPTCHA på norsk


recaptcha-logoJeg har siden begynnelsen av desember jobbet med utvikling av en katalog som letter arbeidet med å kartlegge aktører og knytte nettverk innen en yrkesgruppe. Med unntak av noen få funksjoner (rik tekstformatering i enkelte felttyper via tinyMCE og geokoding av besøksadresser via Google Maps (Snoopy), har jeg utviklet alt fra bunnen av selv. Som et ledd i denne utviklingen har jeg også oversatt reCAPTCHA til norsk.

Nettstedet har en funksjon for innsending av profiler med personalia for aktører innen yrkesgruppen. Slike skjema trygler etter spam fra roboter og annen styggedom. Selv om den innsendte informasjonen går igjennom en kvalitetskontroll før den eventuelt publiseres, skaper spam ekstra arbeid for redaktørene av katalogen, og det er derfor et mål å unngå dette i størst mulig grad.

Et slikt problem kan løses på to måter:

  1. Filtrering av innsendt informasjon
  2. Turing-validering av skjemainput.

Innledningsvis vurderte jeg å lage et filter. Et spamfilter krever imidlertid et omfattende arbeid med kompliserte algoritmer. Filtret må også oppdateres konstant. Valget falt derfor på CAPTCHA, en omvendt Turing-test. Etter å ha testet en løsning som genererer bilder lokalt, bestemte jeg meg for å implementere reCAPTCHA.

Det fine med reCAPTCHA er at det kombinerer behovet for sikker validering av brukere med behovet for digitalisering av bøker. I tilfeller hvor to OCR-programmer (optisk tekstgjenkjenning) er uenige om et ord i digitaliseringsprosessen, blir dette sendt til reCAPTCHA, der det ukjente ordet vises sammen med et “kjent” kontrollord. Om det er store avvik mellom brukerens inndata og kontrollordet, blir brukeren presentert for et nytt bilde. Muligheten for avvik gjør det imidlertid mindre kronglete å bruke reCAPTCHA og en tradisjonell CAPTCHA-kode (eksempelvis “X4D6AS”).

En norsk versjon fantes ikke, men det er mulig å implementere egne tekster via javascript. Jeg har derfor skrevet noen tekster som også kan brukes på andre nettsteder.

<script type= "text/javascript">
var RecaptchaOptions = {
	custom_translations : {
		visual_challenge : "Verifisering ved hjelp av bilder",
		audio_challenge : "Verifisering ved hjelp av lyd",
		refresh_btn : "Pr\u00F8v med en annen kode ",
		instructions_visual : "Skriv inn de to ordene:",
		instructions_audio : "Skriv inn det du h\u00F8rer:",
		help_btn : "Hjelp",
		play_again : "Spill av lyden p\u00E5 nytt",
		cant_hear_this : "Last ned som en MP3-fil",
		incorrect_try_again : "Feil. Pr\u00F8v p\u00E5 nytt:"
	}
};
</script>

Et annet valg jeg har tatt, etter å ha gått grundig lei av Facebooks evinnelige captcha-mas for ferske brukere, er å gjøre dette til en engangsregistrering. Om brukeren skriver inn en korrekt CAPTCHA-kode, blir dette lagret som en sesjonsvariabel ($_SESSION i PHP). Brukeren kan dermed registrere flere aktører uten å skrive inn koden igjen, så lenge sesjonen er aktiv.

Et tydelig tegn på at forfatteren trenger å gå på et flytskjema-kurs.

Et tydelig tegn på at forfatteren trenger å gå på et flytskjema-kurs.

Nederst på siden ser du en reCAPTCHA med min oversettelse implementert.

Oppdatert: Skjuling av epostadresser

reCAPTCHA har en egen funksjon for skjuling av epostadresser. Denne er desverre ganske kronglete. Jeg har derfor brukt samme teknikken som beskrevet over for å kreve validering via reCAPTCHA for å se epostadresser:

if($_SESSION['captcha'] != “OK”) {
// ikke validert
(vis lenke til valideringsskjema)

} else {
// allerede validert
(vis epostadresse)

}

Ved validering vil alle epostadresser være tilgjengelig så lenge brukeren ikke er inaktiv i 30 minutter eller lukker nettleservinduet.

  1. Ingen kommentarer enda.

Du må være logget inn for å kommentere.

  1. Ingen tilbakelenker enda.