ASCII Captcha
ik ben al een tijdje op zoek naar een alternatieve Captcha, niet omdat GD-based Captcha's bij mij niet werken, maar omdat ik wil dat mijn systeem op zo veel mogelijk servers, dus ook die zonder GD-library, werkt.
Nu kwam ik in de mailing van phpclasses.org het volgende tegen, ik heb er maar een screenie van gemaakt omdat copy+past het hele ding uit z'n verband rukte.
Hoe denken jullie over deze manier van Captcha's maken, ik ben benieuwd naar jullie mening hierover.
Meer info over deze class: http://phpclasses.org/browse/package/4544.html (login verplicht).
Grz. Johan.
Paar keer op F5 rammen, een array maken met patronen voor alle tekens en die matchen? Zo simpel? Of ben ik nou veel en veel te groot aan het denken?
De methode die ik nu zelf gebruik is een captcha waarbij de gebruiker moet herkennen wat er op een simpele afbeelding staat.
Captcha met plaatje
In dit voorbeeld gebruik ik bijvoorbeeld eenvoudige plaatjes van dieren waarbij de naam van het dier ingevuld moet worden. Uiteraard kun je hier natuurlijk elke soort afbeeldingen gebruiken die je wilt. Denk bijvoorbeeld aan het herkennen van automerken op een auto-site of het herkennen van voetbalclubs aan de hand van voetbalshirts op een voetbal site.
Bedankt voor jullie reacties in ieder geval, ik ga deze niet inbouwen en zoek even verder naar iets anders.
Grz. Johan.
Wat er alleen niet klopt in het bezwaar van Tommy, is dat er een gebruiker aan te pas komt. Een captcha is dan ook niet bedoeld om gebruikers buiten de deur te houden, maar juist om bots te weren. En aangezien bots niet specifiek voor 1 site gemaakt worden, gaat het bezwaar dus niet op voor het voorbeeld dat ik gaf.
In het geval van de ascii captcha is uit de afbeelding af te leiden wat er als antwoord ingevuld moet worden, het zijn immers gewoon afbeeldingen van de karakters die het antwoord vormen. In het geval van de plaatjes captcha is niet direct uit de afbeelding af te leiden wat er ingevuld moet worden, daar zit nog een interpretatie stap tussen ('ik zie een koe, het antwoord is "koe"'). En juist dat is een stap die bots op dit moment nog niet kunnen maken...
ps. En ja, natuurlijk kan een bot zien welke afbeelding (1.png, 2.png, etc) geladen wordt, maar hij heeft dus helemaal niets aan deze informatie. Simpelweg omdat dit helemaal niets met het antwoord te maken heeft en de koppeling tussen afbeelding en antwoord alleen gelegd wordt in een PHP script waar de bot niet bij kan.
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
Een bezwaar is echter wel, dat wanneer ik de captcha inbouw die jij noemt, met een aantal plaatjes er achter, en ik zet mijn script op internet met deze captcha er in, dat iedereen die het download en installeerd, dezelfde captcha met dezelfde plaatjes zal hebben. Uiteraard tot het moment dat ze hun eigen plaatjes er in stoppen, maar ik wil graag dat mijn source af en compleet is zodra ik hem beschikbaar stel ter download.
Wat er dus gebeurd zodra meerdere mensen mijn source met deze captcha erin downloaden is dat ze allemaal dezelfde 1 = kat en 3 = koe hebben. Als een bot dan de captcha herkent hoeft ie het alleen maar te proberen, heeft iemand hem dan zelf aangepast, dan is er niets aan de hand, heeft die persoon er niets aan gedaan, dan is de bot er zo in...
Maar goed, je kunt het natuurlijk zo uitgebreid maken als je zelf wilt. Denk bijvoorbeeld ook aan de volgende mogelijkheden:
- Verschillende sets met plaatjes aanbieden binnen je script
- Installatiescript dat zelf de captcha plaatjes (1.png, etc) aanmaakt op basis van een set plaatjes (bv. kat.png, koe.png, etc).
Kortom, als je je script voor het publiek ter beschikking wilt stellen, zul je er toch zoiets in moeten bouwen. Dat is de enige manier waarop diversiteit gegarandeerd wordt en bots zo'n captcha dus niet snel kraken.
Bedankt voor je reacties.
Grz. Johan.
You're welcome. Succes met het ontwikkelen van je applicatie ;-)