Tutorials >
PHP >
'Captcha' Beveiliging Maken
|
Gepost op: 06 augustus 2006 - 15:58 |
|
|
|
PHP expert
|
Wat je evt. nog toe zou kunnen voegen is de werkelijke denkwijze die hoort bij zo'n plaatje.
je ziet heel vaak op het forum dat mensen alles door elkaar doen door bijv. ieder request een nieuwe code te maken.
of waarom je het in een sessie moet zetten ipv. een hidden field of een get variabele.
iets meer van het nut en de werking van zo'n plaatje. |
|
|
|
Gepost op: 06 augustus 2006 - 20:37 |
|
|
|
Erelid
|
Citaat: ipv. een hidden field of een get variabele. Lijkt me nogal obvious, dan kan je evengoed geen zetten...
En het nut staat er uitgebreid boven, dat het dient om het onderscheid te maken tussen mens en machine.
Deze tutorial bevat voldoende informatie IMO. |
|
|
|
Gepost op: 06 augustus 2006 - 22:11 |
|
|
|
PHP expert
|
@murfy, een hidden field kan evengoed...
je moet het dan alleen coderen met md5 of sha1 of beide |
|
|
|
Gepost op: 06 augustus 2006 - 22:31 |
|
|
|
PHP ver gevorderde
|
Maarja, dit valt onder 'wensen' lijkt mij. Hoe jij het zelf graag zou willen, als het maar veilig, en de 'confirmatie code' er maar niet uit gehaald kan worden zonder de image te lezen, anders heeft het nog geen nut. |
|
|
|
Gepost op: 08 augustus 2006 - 21:10 |
|
|
|
PHP expert
|
Citaat: [I][B]Simon[/B] schreef op 06 Augustus 2006 - 22:11[/I]
@murfy, een hidden field kan evengoed...
je moet het dan alleen coderen met md5 of sha1 of beideĀ Hm is afgeraden. Als men er dus achter komt dat jij 32, of 40 tekens gebruikt gaat men echt wel kijken naar mogelijkheden. |
|
|
|
Gepost op: 09 augustus 2006 - 20:43 |
|
|
|
PHP interesse
|
|
|
|
Gepost op: 10 augustus 2006 - 01:08 |
|
|
|
PHP ver gevorderde
|
Ik heb volgensmij een vrij duidelijke voorbeeld gegeven die je in ieder geval een indicatie geeft hoe je dat moet aanpassen, met wat uitleg erbij. Maarja, komt vast nog wel een keertje =) |
|
|
|
Gepost op: 11 augustus 2006 - 19:01 |
|
|
|
PHP interesse
|
Wat misschien nog een mooie toevoeging zou zijn is het toevoegen van een header.
Met header('Content-Type: image/png'); zorg je er voor dat je php-bestand een png-bestand lijkt.
Zo moet er niet telkens een captcha.png naar de schijf gescreven worden en win je tijd als je veel pageloads tegelijk hebt. |
|
|
|
Gepost op: 11 augustus 2006 - 20:18 |
|
|
|
PHP ver gevorderde
|
Dat heeft geen nut als je hem include via een class o.i.d, aangezien het dan niet meer werkt ;) Dat werkt alleen als je hem apart wilt weergeven in een los bestand. Anders moet je hem gewoon als
imagepng ($image, "captcha.png");
imagepng ($image, "captcha.png");
aanmaken, waardoor je <img src="captcha.png" alt=""> kunt gebruiken. |
|
|
|
Gepost op: 12 maart 2007 - 09:30 |
|
|
|
Nieuw lid
|
Heeft iemand deze code ook echt daadwerkelijk 1 op 1 uit geprobeerd? Zo niet, probeer het dan eerst ..
Je zal zien dat het niet werkt..
Plaatjes genereren werkt wel, maar de random functie voor de code werkt gewoon niet. Ik heb het gevoel dat er een hoop mist in de tut.
Mijn mening is dat een tutorial zo hoort te zijn dat elke noob het kan en dat het direct hoort te werken. Zo niet dan is het een slechte tutorial. Maar dat is mijn mening. |
|
|
|
Gepost op: 12 maart 2007 - 11:05 |
|
|
|
PHP ver gevorderde
|
Het is een 'Normale' tutorial, waarbij de schrijver (ik in dit geval) er best van uit mag gaan dat de gebruiker basis kennis heeft van PHP. Elke tutorial heeft zijn moeilijkheidsgraad, en een beginner kan makkelijke tutorials volgen. Normaal is al een stap verder, en heeft basis kennis nodig. Moeilijk ga je ver-ver. Laten we zeggen naar uitgebreide OOP.
Ten tweede moet je is wat verder kijken dat je neus lang is. Er staat bovenin de tutorial een code die NIET random wordt gegenereerd, die staat onderaan de pagina. Basis PHP is het AANROEPEN (niet schrijven van, maar AANROEPEN) van een functie.
Ten derde, je zegt 1-op-1 te proberen. Dat zijn scripts, en die kunnen noobs knippen en plakken zodat het werkt. Bij een tutorial mag je best wat zelf doen. Maarja, succes in de scripts dan maar.
Als je wat normaler 'je mening' kan geven en duidelijker laat weten waar het 'de mist in gaat' zonder de bende 'af te kraken' omdat ik probeer mijn kennis te delen heeft 't weinig nut om jouw nog verder te helpen.. (ofniet dan?)
Vriendelijke zoenen,
Edwin |
|
|
|
Gepost op: 08 mei 2007 - 00:00 |
|
|
|
Nieuw lid
|
De code voor de code_generator werkt niet. Er wordt gewerkt met $generate, maar deze wordt nergens aangemaakt, daarnaast wordt $generated_key niet returned.
Hier een werkende generator functie:
function code_generator($length)
{
$generated_key = "";
while (strlen($generated_key) < $length) {
$generate = mt_rand(48, 90);
if ($generate < 58 || $generate > 64) $generated_key .= strtolower(chr($generate));
}
return $generated_key;
}
function code_generator($length) { $generated_key = ""; while (strlen($generated_key) < $length) { if ($generate < 58 || $generate > 64) $generated_key .= strtolower(chr($generate)); } return $generated_key; }
Het is nodig om in te loggen om commentaar te bekijken. Dus ik denk dat mensen het zullen waarderen als je het veranderd.
PS. Je bent de toplink voor Nederlanders voor de term 'PHP captcha', dus gefeliciteerd . |
|
|
|
Gepost op: 08 mei 2007 - 03:03 |
|
|
|
PHP ver gevorderde
|
Ten eerste, ontzettend bedankt dat je even de tijd hebt genomen om je te registreren en een helpende comment te plaatsen! Ik inderdaad nogmaals de aangepaste keygen van joël getest, en deze bleek niet te werken, en een nonstop-ladende pagina was het resultaat. Een fout van mij, maar dit is nu opgelost door jouw script. Bedankt!
Ten tweede wil ik je bedanken met de felicitatie. Het was mij al eerder opgevallen dat ik eerste stond op google met de "captcha php" zoekterm, maar nog nooit eerder heeft hier iemand een opmerking over gemaakt. Wat ik ook wel tof vind is dat ik onder de gewone zoekterm "captcha" op google op de 4e plek sta. (Dat is me pas zojuist opgevallen)
Nogmaals, héél erg bedankt voor je hulp. Hopelijk kunnen mensen een goed werkende captcha toepassen aan hun website! |
|
|
|
Gepost op: 12 juni 2007 - 16:47 |
|
|
|
HTML interesse
|
Citaat: Ten tweede wil ik je bedanken met de felicitatie. Het was mij al eerder opgevallen dat ik eerste stond op google met de "captcha php" zoekterm, maar nog nooit eerder heeft hier iemand een opmerking over gemaakt. Wat ik ook wel tof vind is dat ik onder de gewone zoekterm "captcha" op google op de 4e plek sta. (Dat is me pas zojuist opgevallen) Het is inmiddels al 3e!
Maar goede tut! |
|
|
|
Gepost op: 04 oktober 2007 - 19:40 |
|
|
|
Nieuw lid
|
captcha_generator ($_SESSION['code']); // het genereren van de image
Deze functie geeft een foutmelding omdat hij de functie niet vind. |
|
|
|
Gepost op: 04 oktober 2007 - 22:18 |
|
|
|
PHP ver gevorderde
|
DForce, lees verder dan je neus lang is..
Citaat: Hier heb je een voorbeeld hoe je deze captcha kunt toepassen, alhoewel je hem wel eerst even in een funtie moet plaatsen. Noem de functie even 'captcha_generator ();'. Ik geef even een script voor het genereren van een code, zodat je die kan gebruiken. |
|
|
|
Gepost op: 11 oktober 2007 - 20:15 |
|
|
|
Nieuw lid
|
Kan je de achtergrond kleur ook wijzigen? |
|
|
|
Gepost op: 02 januari 2008 - 18:30 |
|
|
|
PHP gevorderde
|
Ja, imagefill(afbeelding, x, y, kleur); |
|
|
|
Gepost op: 16 april 2008 - 20:39 |
|
|
|
Crew PHP
|
$line = imagecolorallocate($image,130,72,72);
$line1Y1=rand(0,50);
$line1Y2=rand(0,50);
$line2Y1=rand(-25,75);
$line2Y2=rand(-25,75);
imageline($image,0,$line1Y1,200,$line2Y1,$line);
$line = imagecolorallocate($image,130,72,72); imageline($image,0,$line1Y1,200,$line2Y1,$line);
ik heb dat onder de if(count ($aCode) == 5) ge plaatst, dan krijg je er lijntjes bij, misschien een fijne toevoeging.
en misschien is het ook handig als je meteen een functie maakt van het img deel php, want ik volgde het ook niet zo goed
---------------------
ik zal het lijn deel laten staan, maar ik heb deze captcha getest, kost 30sec om te kraken wat weinig. Ik heb wat verschillende achtergronden geprobeerd, ik heb heb nu een achtergrond met rode en groene en blauwe letters, beetje donkerig, en lichte kleur letters erop. De anti captcha leest alle letters, mensen zien de lichte makkelijker
---------------------
ecdit: Ook die is kraakbaar in een paar momenten. Wat ik nu heb is de cijfer 0 tot 9, en dan als 'nul' tot 'negen' in het plaatje zetten. Schuin, zodat niet alle lettters in het plaatje passen, mensen snappen t wel, een bot niet |
|
|
|
Gepost op: 09 november 2010 - 11:51 |
|
|
|
Nieuw lid
|
$Code = substr(str_shuffle(strtoupper(implode(range('a', 'z')).implode(range('0','9')))), 0, $length);
Op deze manier, scheelt toch alweer een functie en enkele regels code |
|
|
|
Gepost op: 25 december 2012 - 20:37 |
|
|
|
Nieuw lid
|
Leuke tutorial, werkt goed :-)
Had wel het probleem dat sommige cijfers niet weergegeven werden met imagettftext().
Letters werden altijd weergegeven.
Dit bleek aan het font te liggen ook al waren alle fonts True Type.
Andere fonts genomen en ok. |
|
|
Enkel aanvullende informatie is welkom. Geen prijzende of afkeurende reacties. |
|
|
|