Captcha Beurteilung

timestamp

Mitglied Käsekuchen
Hallo Community,

da ich denke, dass ihr euch in Sachen Bots besser auskennt als ich, wollte ich mal wissen für wie sicher ihr mein selbstgecodetes Captcha findet. Ich hänge mal 3 Beispiel Bilder an. Ich bitte ausdrücklich um konstruktive Kritik :)
 

Anhänge

  • captcha1.png
    captcha1.png
    1,1 KB · Aufrufe: 161
  • captcha2.png
    captcha2.png
    992 Bytes · Aufrufe: 161
  • captcha3.png
    captcha3.png
    1 KB · Aufrufe: 165
So ist das alles noch relativ leicht auszulesen...

Tipps:

  • Schriftgröße ändern
  • Schriftfarbe ändern
  • Zeichen rotieren
 
Hallo

ich habe mir mal deinen Rat zu Herzen genommen und das kam dabei raus:
 

Anhänge

  • captcha1.png
    captcha1.png
    1,9 KB · Aufrufe: 141
  • captcha2.png
    captcha2.png
    2,4 KB · Aufrufe: 145
  • captcha3.png
    captcha3.png
    2,2 KB · Aufrufe: 145
Vielleicht auch noch die Schriftart ändern bzw vllt sogar für jeden einzelnen Buchstaben eine andere Art auswählen.

EDIT: Du warst wohl schneller :p Sieht gut aus! :)
 
Hi

die Schriftarten werden für jeden Buchstaben zufällig aus 5 verschieden Arten ausgesucht.
edit: Jetzt warst du schneller :p Danke :)
 
Jup, jetzt sieht schon mal gut aus :)

Du könntest auch noch ein Feld ins Formular einbauen und einen Namen wie "E-Mail-Wiederholung" vergeben, mit CSS ausblenden und wenn es ausgefüllt ist kommt ne Fehlermeldung.
 
Hi,

ich platziere dein Thema im "Coders Talk"-Forum ;)

Kann ein Bot ein Captcha-Bild am Bildschirm "auslesen" (betrachten)? :suspekt:

mfg Maik
Es gibt doch diverse Schrifterkennungssoftware :)
An den Trick mit dem versteckten input Feld habe ich gar nicht gedacht, ist auch ein super Tipp.
Wer den Captchacode verwenden möchte:
PHP:
<?php
session_start();
header("Content-type: image/png");
$width  = 150;
$height = 35;
$length = 6;
$fonts  = array("font1","font2","font3","font4","font5");
$font   = "../../fonts/%s.ttf";
$im = imagecreatetruecolor($width,$height);
$bg = imagecolorallocate($im, rand(120, 255), rand(120, 255), rand(120, 255) );
imagefilledrectangle($im,0,0,$width,$height,$bg);
for( $i = 0; $i < 3; $i++){
  $c = imagecolorallocatealpha($im, rand(150, 255), rand(150, 255), rand(150, 255), rand(50, 100) );
  $p = array( rand(0, $width), rand(0, $height), rand(0, $width), rand(0, $height),
              rand(0, $width), rand(0, $height), rand(0, $width), rand(0, $height),
              rand(0, $width), rand(0, $height), rand(0, $width), rand(0, $height),
              rand(0, $width), rand(0, $height), rand(0, $width), rand(0, $height)
            );
  imagefilledpolygon($im, $p, count($p)/2, $c);
}
$captcha = "";
for( $i = 0; $i < $length; $i++ ){
  $c = imagecolorallocate($im, rand(0, 150), rand(0, 150), rand(0, 150));
  $x = $width/($length+1) * $i + rand(10,15);
  $y = rand( 15, $height - $height/4 );
  $a = rand(315,405);
  $f = sprintf($font, $fonts[rand(0,count($fonts)-1)]);

  $char     = chr( rand(65, 90) );
  $captcha .= $char;
  imagettftext($im, rand(12,16), $a, $x, $y, $c, $f, $char);
}
$_SESSION["captcha"] = $captcha;
imagepng($im);
imagedestroy($im);
?>
 

Neue Beiträge

Zurück