Simpele CAPTCHA beveiliging

Door Roland van Wanrooy, 20 jaar geleden, 6.274x bekeken

Ik vond een stukje code (van ene Julien Pachet) op het web, waarmee je zonder de GD toestanden een plaatje kunt genereren met een code, die posters van een form moeten invullen. Ik heb er nogal wat aan zitten sleutelen voordat het naar m'n zin was en ik vind het prima zo. For the time beeing althans, want het schijnt absoluut geen lekvrije beveiliging te zijn. Het houdt de n00bs en de snotapen buiten de deur, maar als iemand er écht voor gaat zitten, dan komt zijn bot er wel door, denk ik.
Het is zo simpel als wat. Het zijn 2 bestanden: "class_ocr_captcha.inc.php", die je include in je form "example.php", plus een (zelf uit te kiezen) fontbestand. In de class kun je wijzigingen aanbrengen (pad+naam fontbestand, hoogte/breedte van het plaatje, de hoeveelheid noise, etc.)
In het voorbeeld wordt, als de gebruiker een foutieve code intypt, niet de hele pagina weergegeven, maar alléén het form. Zelf vind ik het namelijk lastig als ik naar beneden moet scrollen om te zien of alles goed is gepost.
Bestand captcha.zip is te downloaden via het voorbeeld.

Voorbeeld: http://misdaadauteurs.be/site/cap/example.php

Gesponsorde koppelingen

PHP script bestanden

  1. simpele-captcha-beveiliging

 

Er zijn 25 reacties op 'Simpele captcha beveiliging'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Arjan Kapteijn
Arjan Kapteijn
20 jaar geleden
 
0 +1 -0 -1
Nog een simpeler idee, voeg een extra veld toe en stel de gebruiker een vraag die iedereen weet... 'wat is de hoofdstad van nederland'. Controlleer of de input 'amsterdam' is en klaar ben je voor een groot percentage van de automatische spambots.
Kalle P
Kalle P
20 jaar geleden
 
0 +1 -0 -1
Of vragen welke kleur dit is en dan een plaatje tonen.

Hmmm alleen vervelend voor kleurenblinden, maarja dan moet je maar 2 opties geven voor het antwoord. OF zien niet alle kleurenblinden de zelfde kleur dan?
Roland van Wanrooy
Roland van Wanrooy
20 jaar geleden
 
0 +1 -0 -1
@Arjan:
dat weer wel natuurlijk.

@Kalle:
Voor blinden is zo'n plaatje helemaaaaaal moeilijk... :)
Dan moet je in de class de alt-tag veranderen in de code van het plaatje.
Speechers kunnen dat dan mooi vertellen. Geldt ook voor de kleur...
Kalle P
Kalle P
20 jaar geleden
 
0 +1 -0 -1
@roland voor een blinde is het ook moeilijk om een captcha te zien ;)
Roland van Wanrooy
Roland van Wanrooy
20 jaar geleden
 
0 +1 -0 -1
Dat hoeft ook niet, Kalle. Er bestaan speechers, die tekst (waaronder dus de alt-tags van images) aan de gebruiker oplezen. Sinds ik dit weet plaats ik trouw een alt tag bij elke image.
Jelmer -
Jelmer -
20 jaar geleden
 
0 +1 -0 -1
Maar dan staat het antwoord al in de pagina. Dan is het gewoon een kwestie voor de bot om dat te kopiëren. Een beetje bot heeft daar niet zoveel moeite mee verwacht ik.


20 jaar geleden
 
0 +1 -0 -1
@jelmer
Denk ik ook niet. Stel gewoon een vraag als de hoofdstad van Nederland of van welk land is de afkorting NL. Die is voor iedereen te doen
Troy
troy
20 jaar geleden
 
0 +1 -0 -1
ik vindt het een best mooi script goed opgezocht maar ik heb m zelf nie nodig
Eric Cartman
Eric Cartman
20 jaar geleden
 
0 +1 -0 -1
Ooit heb ik eens iets bedacht, een link met een onclik-event die de waarde van een verborgen veld wijzigt. Die waarde is dan de waarde van een sessie die is geplaatst en als die waardes overeenkomen is het een mens.
Nou weet ik wel dat gebruikers zonder Javascript (of gebruikers die het uitgeschakeld hebben) niet werkt, maar ik weet niet of een spambot op die knop/link kan 'klikken', jullie?
Patty
Patty
20 jaar geleden
 
0 +1 -0 -1
Hoe ziet zo'n script er dan uit? Wat is de hoofdstad van Nederland.
Eric Cartman
Eric Cartman
20 jaar geleden
 
0 +1 -0 -1
Een extra invoerveld in je formulier met een vraag erboven. De hoofdstad van Nederland is Amsterdam ;-)...
Elwin - Fratsloos
Elwin - Fratsloos
20 jaar geleden
 
0 +1 -0 -1
Offtopic:

De hoofdstad van Nederland is Rotterdam... sorry voor 020. Maar na vandaag is dat gewoon zo.. :D

Ghehe.. voor zover mijn inbreng.. ;)


Elwin
Patty
Patty
20 jaar geleden
 
0 +1 -0 -1
Oke, ik probeer het. Bedankt.
Kalle P
Kalle P
20 jaar geleden
 
0 +1 -0 -1
@kakkerlak-elwin volgend seizoen blijft het het hele jaar AMSTERDAM.

Groeten uit 020.


20 jaar geleden
 
0 +1 -0 -1
Mooi script. Is te gebruiken :-P
Terence Hersbach
Terence Hersbach
20 jaar geleden
 
0 +1 -0 -1
mooi script:) heb t zelf niet nodig.. maar zat een beetje rond te neuzen.. miss moeten je eens bij grote internet-spellen vragen hoe de bots werken..

@kalle.. komende seizoens blijft het rotterdam hoor;)
Olaf Lederer
Olaf Lederer
20 jaar geleden
 
0 +1 -0 -1
Zeg Roland, je schrijft hier dat de code die je hebt gevonden werkt zonder de "GD toestanden". dat klopt niet, kijk een keer goed in de method "make_captcha"

gr. Olaf
Zillion
zillion
20 jaar geleden
 
0 +1 -0 -1
En hoe kun je automatisch de aangemaakte png's uit de folder tmp verwijderen?

Ik vond ergens

// Delete any CAPTCHAs that are older than 600 seconds...
opendir (DIRECTORY, '/tmp');
my @tokens = grep /^token_/, readdir(DIRECTORY);
closedir (DIRECTORY);
foreach my $cleaner (@tokens) {
if ($cleaner =~ /^(token_(\d){1,}_(\d){1,}.gif)/so) { $cleaner = $1; }
$temp{'age'} = (time - (stat("/tmp/$cleaner"))[9]);
if ($temp{'age'} > 600) { unlink "/tmp/$cleaner"; }
}

Ik ben teveel n00b om dit werkend in dit script te krijgen, iemand een suggestie hoe dat toe passen?
Hans
hans
20 jaar geleden
 
0 +1 -0 -1
Ja dat script is leuk en ik heb lang gezocht naar een start om zoiets te maken, maar ik vraag me dus ook af wat er met die imgs's gebeurd in de tmp folder, met 10.000+ bezoekers per maand is de ruimte zo weg op de server ;)

Toch erg bedankt voor deze flitsende start!

Hans
Ernie Quispel
Ernie Quispel
17 jaar geleden
 
0 +1 -0 -1
Je zou ook tog kunnen doen dat ze een bepaald woord uit een zin moeten overtypen of iets dergelijks? Of een bepaalde som uitrekenen (1+3=).
Crude Oil
Crude Oil
16 jaar geleden
 
0 +1 -0 -1
Captcha zuigt
Remie
remie
16 jaar geleden
 
0 +1 -0 -1
@php, hoezo ? het is een van de weinig goede manieren(mits moeilijke CAPTCHA) om spambots tegen te houden
Crude Oil
Crude Oil
16 jaar geleden
 
0 +1 -0 -1
Die captcha's zijn vaak onduidelijk. het verschil tussen 0 en o is vaakj niet duidelijk, of de code hoofdlettergevoelig is. Vaak typ ik die code verkeerd in, omdat ze vaag zijn. Ik ben geen spambot
Remie
remie
16 jaar geleden
 
0 +1 -0 -1
@php
#1 verschil tussen 0 en o is een goed voorbeeld van een niet goed uitgedachte CAPTCHA(want die zouden beide niet voor moeten komen)
#2 JIJ bent misschien geen spambot maar geloof me er zijn er ZAT en die spambots die gaan gewoon alle sites af kijken welke nog vatbaar zijn spam en spammen er op los(en als dat gebeurt ben je als beheerder echt niet blij :X).
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Crude Oil
Crude Oil
16 jaar geleden
 
0 +1 -0 -1
Daarom is het niet slim een gastenboek onbeveiligd te laten of een forum zonder activatie door de beheerder

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. simpele-captcha-beveiliging

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.