Captcha (SPAM Protection)

Door Wouter DS, 13 jaar geleden, 2.736x bekeken

Was weekje op vakantie en had geen internet en heb uit verveling een captcha gemaakt =).
Vind hem zelf niet zo slecht en dus wou ik hem met jullie delen, niet dat jullie er nog veel aan hebben er staan hier al veel te veel captcha's maarja..
Mn neef van 19 die totaal geen verstand van php heeft kan hem zelf integreren in zijn 'website' dus ik denk wel dat het gebruiksvriendelijk is en zelf de grootste noobs het kunnen installeren.
De letters/cijfers (hangt er van wat je in de random string opgeeft) hebben allemaal een verschillend van elkaar random kleur.

Download: http://downloads.paradox-productions.net/?f=CAPTCHA.rar
Voorbeeld: http://paradox-productions.net/projects/CAPTCHA/EXAMPLE.php


Voorbeeld: http://paradox-productions.net/projects/CAPTCHA/EXAMPLE.php

Gesponsorde koppelingen

PHP script bestanden

  1. captcha-spam-protection

 

Er zijn 24 reacties op 'Captcha spam protection'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Loran DP
Loran DP
13 jaar geleden
 
0 +1 -0 -1
Ziet er goed uit Wouter!
Onbekend Onbekend
Onbekend Onbekend
13 jaar geleden
 
0 +1 -0 -1
Ik zou dit anders doen, met een database en de waarde van de Captcha opslaan samen met een unieke key en die in een cookie zetten. Bij het submitten bekijk je de key en vergelijk je de input van de user met de database dmv de key uit de cookie. Sessies kun je toch uitlezen als botje of niet? Of iig ivm session hackijng of hoe dat heten moge..


13 jaar geleden
 
0 +1 -0 -1
Tommy: nee dit is niet mogelijk. Sessies worden server side opgeslagen, en zijn alleen uit te lezen als je ze opslaat in de standaard directory door iemand op dezelfde server.
PHP Newbie
PHP Newbie
13 jaar geleden
 
0 +1 -0 -1
Ik vind hem erg mooi. Misschien ook nog even met het derde argument van imagettftext, de hoek. En ik zou ook nog even random lichte letters op de achtergrond zetten ;-)

Maar zoals gezegd vind ik hem wel mooi. Sommige dingen kunnen wel wat handiger, maar dat maakt niet zo gek veel uit.

edit:
Zoiets dus:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<?php
/*
    $iiX     = Image Identifier
    $ciX     = Color Identifier
*/

session_start(); //Start sessie

$iNumberCharacters     = 4; //Aantal karakters dat de captcha lang is
$aCharacters         = array_merge(array_merge(range('a','z'),range('A','Z'),range(0,9))); //Karakters die in de captcha voor kunnen komen
$sFontLocation         = "font.ttf"; //Locatie van het font bestand
$iFontSize             = 14; //Gemiddelde lettergrote (werkelijke grote varieert van dit getal - 2 tot dit getal + 3

$iRgbMin = 30; //Minimale waarde voor de kleur (RGB waarde)
$iRgbMax = 200; //maximale waarde voor de kleur (RGB waarde)

//Aan de slag:

$iiCaptcha = imagecreate($iNumberCharacters * 22, $iFontSize * 2.9); //creer een nieuwe afbeelding met behulp van bovenstaande gegevens
imagecolorallocate($iiCaptcha, rand(210,255), rand(210,255), rand(210,255)); //En maak de achtergrond random

$ciFontColorGrey = imagecolorallocate($iiCaptcha, 180, 180, 180); //De schaduw wordt grijs, dus die kleur maken we vast aan
$_SESSION['captcha'] = null; //we maken een sessie aan waarin het getal komt

$aRotation = array_merge(range(35,15),range(-35,15));

for($i = 0; $i < $iNumberCharacters; $i++)
{

    $sFontCharacter     = $aCharacters[array_rand($aCharacters)]; //We kiezen een random karakter
    $ciFontColor         = imagecolorallocate($iiCaptcha, rand($iRgbMin, $iRgbMax), rand($iRgbMin, $iRgbMax), rand($iRgbMin, $iRgbMax)); //We nemen een random kleur
    $iFontSize             = rand($iFontSize - 2, $iFontSize + 2); //Een min of meer random font-size
    $iFontAngle         = $aRotation[array_rand($aCharacters)]; //En een random hoek
    
    imagettftext($iiCaptcha, $iFontSize, $iFontAngle, 5 + $i * 21, $iFontSize * 1.5 + 2,     $ciFontColorGrey,     $sFontLocation, $sFontCharacter); //We maken even wat schaduw
    imagettftext($iiCaptcha, $iFontSize, $iFontAngle, 3 + $i * 21, $iFontSize * 1.5,         $ciFontColor,         $sFontLocation, $sFontCharacter); //En de letter zelf
    
    $_SESSION['captcha'] .= $sFontCharacter; //En natuurlijk moet de letter toegevoegd worden aan de sessie
}

header("content-type: image/png"); //Even header setten

imagepng($iiCaptcha); //afbeelding uitpoepen
imagedestroy($iiCaptcha); //en direct weer verwijderen
?>


edit2:
Nog een willekeurige achtergrondkleur toegevoegd


Bas Kreleger
Bas Kreleger
13 jaar geleden
 
0 +1 -0 -1
Ziet er mooi uit, alleen deze capcha is denk ik snel te kraken voor bots. De reden daar van is: dezelfde lettertypes, geen distorsie, geen afleidende achtergrond lettertypes.

Zie ook PWNtcha.
Iss
iss
13 jaar geleden
 
0 +1 -0 -1
PHPhulp.nl heeft niet eens een Captcha...
Karl Karl
Karl Karl
13 jaar geleden
 
0 +1 -0 -1
Quote:
Bas Kreleger schreef op 02.11.2008 21:20
Ziet er mooi uit, alleen deze capcha is denk ik snel te kraken voor bots. De reden daar van is: dezelfde lettertypes, geen distorsie, geen afleidende achtergrond lettertypes.

Ow en hoe deed jij het hier phphulp.nl ook al maar weer? Ja, met vijf plaatjes:
http://www.phphulp.nl/imgs/captcha/captcha01.gif
http://www.phphulp.nl/imgs/captcha/captcha02.gif
http://www.phphulp.nl/imgs/captcha/captcha03.gif
http://www.phphulp.nl/imgs/captcha/captcha04.gif
http://www.phphulp.nl/imgs/captcha/captcha05.gif
en http://www.phphulp.nl/imgs/captcha/captcha06.gif bestaat niet.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<tr><td><img src="/imgs/captcha/captcha02.gif" title="Captcha"></td><td valign="top">Vul de volgende code in het onderstaande veld in om je registratie af te maken.</tr><tr><td><input type="text" name="captcha_post" value="" /></td><td></tr>

Das nog simpeler te kraken, gewoon die codes effe in een array stoppen.
En dan zet je in een hidden field ook nog eens welke je gebruikt...
Nou, jij zet echt de deur wagenwijd open.
Wouter DS
Wouter DS
13 jaar geleden
 
0 +1 -0 -1
Karl Karl
Karl Karl
13 jaar geleden
 
0 +1 -0 -1
Quote:
Paradox&#8482; schreef op 02.11.2008 21:51
@iss;

Toch wel, http://www.phphulp.nl/registreren/

Nietwaar.
Doe eens een flink aantal keer refresh en let op de broncode.
Daar zul je zin dat het de heletijd dezelfde plaatjes zijn (die links hierboven)... En dus ook dat er een hiddenfield met welke het is.
Iss
iss
13 jaar geleden
 
0 +1 -0 -1
@Paradox: Leer lezen. Karl legt net uit, dat die "wannabe" captcha al gekraakt is.
Wouter DS
Wouter DS
13 jaar geleden
 
0 +1 -0 -1
@Karl, ik weet wel dat het gewone plaatjes uit een dir zijn en het niet echt een captcha is maar wou het niet "captcha" gaan heten om de auteur niet te beledigen wil geen ruzie of ban ofzo lol..
Karl Karl
Karl Karl
13 jaar geleden
 
0 +1 -0 -1
Quote:
Paradox&#8482; schreef op 02.11.2008 21:54
@Karl, ik weet wel dat het gewone plaatjes uit een dir zijn en het niet echt een captcha is maar wou het niet "captcha" gaan heten om de auteur niet te beledigen wil geen ruzie of ban ofzo lol..


Het moet eruitzien (zoals zoveel hier) als een captcha, maar inderdaad is dit eigenlijk niks.
Iss
iss
13 jaar geleden
 
0 +1 -0 -1
Op deze site wordt je zonder enige reden verbannen, bewijs genoeg :-)
Bas Kreleger
Bas Kreleger
13 jaar geleden
 
0 +1 -0 -1
O mijn god, hard core PHPhulp kern heeft me door ;-)..
Karl Karl
Karl Karl
13 jaar geleden
 
0 +1 -0 -1
Quote:
Bas Kreleger schreef op 02.11.2008 22:53
O mijn god, hard core PHPhulp kern heeft me door ;-)..

OMG (kan ik ook...)

Ja, en ook mensen die je banned omdat ze topics in het admin forum posten. En mensen die je banned omdat ze niks doen, en mensen die het woord 'iks dee' gebruiken die mensen hebben het ook door of die gewoon kritisch zijn, naast de mensen die nog wel op phphulp mogen.

Bovendien is dat bannen nogal zielig, aangezien je mensen nooit helemaal weg kan krijgen.... (Maar goed ook.)
Mir
Mir
13 jaar geleden
 
0 +1 -0 -1
Wss doe ik iets ernstig fout, maar als ik doe zoals het er staat plaatst ie de reactie alsnog als de code fout is.. Weet iemand hoe dit komt?
PHP Newbie
PHP Newbie
13 jaar geleden
 
0 +1 -0 -1
Mir, stel die vraag even op het forum met wat relevante code.
Wouter DS
Wouter DS
13 jaar geleden
 
0 +1 -0 -1
@Mir

Heb je bovenaan jouw script
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php session_start(); ?>
gezet?
Mir
Mir
13 jaar geleden
 
0 +1 -0 -1
ja heb ik erin gezet
Wouter DS
Wouter DS
13 jaar geleden
 
0 +1 -0 -1
Stuur me anders een pm met je hele script waarop je de captcha wil gebruiken dan kan ik je eventueel helpen.
Karl Karl
Karl Karl
13 jaar geleden
 
0 +1 -0 -1
Wat is er moeilijk aan:
Quote:
PHP Newbie schreef op 03.11.2008 14:38
Mir, stel die vraag even op het forum met wat relevante code.

?
Appz
Appz
13 jaar geleden
 
0 +1 -0 -1
Karl, wat klink je boos.. denk je nou echt dat Bas niet een deugdelijke captcha kan maken? Check dit dan..: http://www.sitedeals.nl/scripts-and-applicaties/35766-geavanceerde-captcha.html
Dutch Caffeine
Dutch Caffeine
13 jaar geleden
 
0 +1 -0 -1
@Appz Dat script kist 20 euro. Ik heb iets veel beters en nog gratis ook.
http://recaptcha.net/
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Appz
Appz
13 jaar geleden
 
0 +1 -0 -1
Maar de jong, daar gaat het toch niet om? Karl doet net alsof Bas niet een Captcha kan maken, maar zijn captcha's zijn zo goed dat hij er geld voor kán vragen.

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

Inhoudsopgave

  1. captcha-spam-protection

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.