Das Ding ist auch nicht 100%ig sicher, läßt aber bisher die Bots scheitern. Insbesondere eben, da die meisten nicht mit einer solchen Abfrage rechnen.
www.phobeus.de/temp/captcha.php
Für das "Biegen" der Funktion darinne verwende ich folgende Funktion:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| function wave_region($img, $x, $y, $width, $height,$grade=5){ for ($i=0;$i<$width;$i+=2){ imagecopy($img,$img, $x+$i-2,$y+sin($i/10)*$grade, $x+$i,$y, 2,$height); } wave_region($im,rand(50,150),rand(50,150),100,100,5); } |
Wenn man nur einen Schriftzug drinne hat, wird man den Effekt auch noch wesentlich stärker nutzen können. Allerdings lief ich damit Gefahr, dass die Texte sich zu stark überlappen.
Die Schwäche bei deiner Lösung ist, dass man einfach die Noise-Farbe durch die des Hintergrundes ersetzen kann und dann einen normalen Text hat. Die Schwäche bei mir, dass die Stör-Rasterung vorrausschaubar ist. Gute Effekte erzielt man auch dadurch, dass man Störzeichen in anderen Schriften und Farben ins Bild legt. Damit haben dann zwar Farbblinde Schwierigkeiten, aber die Bots verzweifeln stets daran.
Achso... und was Du auch bedenken solltest: Einige Bots geben nicht einfach auf, sondern versuchen es unentwegt weiter. Wenn man einen guten Schutz macht, prallen diese zwar ab, aber i.d.R. stellen diese schneller Anfragen als der Server das Captcha erzeugt und verschickt, womit man Gefahr läuft bei einem solchen Angriff gleich die gesamte Webseite offline zu haben. Spätestens nach dem zehnten Fehlschlag, sollte IMAO das Captcha das Generieren vermeiden und eine Timeout-Meldung anzeigen.
"Menschen sterben nicht wenn man sie zu Grabe trägt, sondern wenn sie ihre Träume verlieren..."