Tag: Captchas

Spamschutz: Mathetest

Nachdem mittlerweile die schlechten Captchas geknackt wurden, hat man sich neue Spamschutzmechanismen einfallen gelassen. Dazu zählen unter anderem Hunde in Katzenbilder oder umgekehrt erkennen bzw. eingescannten Text abtippen, um so zu helfen Bücher zu digitalisieren.

Captchas, Hunde, Katzen und eingescannter Text hat ein Nachteil: es sind immer Bilder. Dies wurde am Anfang als der Vorteil gefeiert, weil nur Menschen Bilder lesen und verstehen können. Mittlerweile ist man schlauer und Captchas die ihren Text nicht bis zur Unkenntlichkeit verschleiern, können mittels OCR automatisiert ausgelesen werden. Außerdem sind Bilder ein großer Nachteil für Braille Browser.

Zahlen die direkt im Quellcode stehen können von Braille Browsern natürlich wesentlich verständlicher interpretiert werden, aber dies sollten die Spamrobots doch auch können. Als vermute ich mal wird Anfangs das Spamaufkommen, aufgrund der Neuheit, sicherlich nachlassen, aber im Endeffekt verpufft diese Maßnahme und nach kurzer Zeit hat man wieder ein Spamaufkommen wie zuvor.

Bevor ich meinen WordPress Blog auf Akismet umstellte, hatte ich auch massive Probleme mit Spam. Dies konnte ich kurzfristig durch den Einsatzes eines Plugins senken, welches bei zuvielen Links ein erneutes Absenden forderte, jedoch verpuffte diese Wirkung bald.

Captcha Library (captcha) – Kein Spamschutz Bild

Nach der Installtion von der captcha Extension von Kasper Skrhj wurde mir erstmal kein Bild angezeigt. Beim aufrufen der Bild Url http://www.Meine Domain.de/typo3conf/ext/captcha/captcha/captcha.php, die man im Quellcode nachlesen kann, bekam ich folgende Meldung:
[php]Fatal error: Call to undefined function imagerotate() in /home/www/host/htdocs/typo3conf/ext/captcha/captcha/captcha.php on line 78[/php]

Die Funktion imagerotate() ist, je nach PHP Installtion, nicht immer verfügbar. Bei PHP.net/imagerotate finde sich dazu folgende Anmerkung:

Diese Funktion steht nur zur Verfügung, wenn PHP mit der GD Bibliothek übersetzt wurde, die mit PHP zusammen erhältlich ist.

Beim wem dies nicht so ist, der hat ein kleines Problem. In den Kommentaren gibt es dafür zwar einen Workaround
[php]
function imageRotate($src_img, $angle) {

$src_x = imagesx($src_img);
$src_y = imagesy($src_img);
if ($angle == 90 || $angle == -910) {
$dest_x = $src_y;
$dest_y = $src_x;
} else {
$dest_x = $src_x;
$dest_y = $src_y;
}

$rotate=imagecreatetruecolor($dest_x,$dest_y);
imagealphablending($rotate, false);

switch ($angle) {
case 90:
for ($y = 0; $y < ($src_y); $y++) {
for ($x = 0; $x < ($src_x); $x++) {
$color = imagecolorat($src_img, $x, $y);
imagesetpixel($rotate, $dest_x – $y – 1, $x, $color);
}
}
break;
case -90:
for ($y = 0; $y < ($src_y); $y++) {
for ($x = 0; $x < ($src_x); $x++) {
$color = imagecolorat($src_img, $x, $y);
imagesetpixel($rotate, $y, $dest_y – $x – 1, $color);
}
}
break;
case 180:
for ($y = 0; $y < ($src_y); $y++) {
for ($x = 0; $x < ($src_x); $x++) {
$color = imagecolorat($src_img, $x, $y);
imagesetpixel($rotate, $dest_x – $x – 1, $dest_y – $y – 1, $color);
}
}
break;
default: $rotate = $src_img;
};
return $rotate;
}
[/php]

Dieser geht jedoch leider nur für 90 Grad Winkel. Wer kleinere Winkel haben möchte, muß auf ImageMagick zurückgreifen. Da dies eigentlich sowieso verfügbar sein muss, bei einer Typo3 Installation, finde ich es sehr schade, dass der Entwickler dies über PHP lösen wollte.

Wer auf das Rotieren verzichten kann braucht einfach in der Datei captcha.php Zeile 78 auskommentieren und folgendes einfügen.
[php]//$rot = imagerotate($tmpi, $da, $back);
$rot = $tmpi;[/php]

[random_content group_id=”211″ num_posts=”1″]