Mit CaptchaImageMaker gegen Spam

CaptchaImageMakerMithilfe von CaptchaImageMaker ist es möglich ein Captcha-Bild mit beliebiger Zeichenfolge im Vordergrund und bestimmter Intensität der Zufallszeichen im Hintergrund zu generieren. Solche Captchas dienen der Unterscheidung von Mensch und Computer-Script.

Funktionsweise
Der Test (handelt es sich bei der Eingabe der Formulardaten um ein menschliches Wesen oder einen Spam-Script?) eignet sich besonders für Neuregistrierungen, Anmeldungen oder Kommentare in Foren und Blogs, wo automatische Eintragungen durch böswillige Software-Roboter vermieden werden sollen.

Sprungmarken
- Features
- Versionierung
- Live-Beispiel
- Download
- Installation

Features
CaptchaImageMaker basiert auf PHP, setzt GD Library voraus und kann für bessere Lesbarkeit mit deutschen – im Paket enthaltenen, ca. 2.500 Einträge – Wörtern beliefert werden. Die Erkennbarkeit der Code-Phrase ist ebenfalls anpassbar.

Die Eigenschaften bzw. Einstellungen können entweder in config.php im require-Verzeichnis festgelegt und/oder als Parameter beim Aufruf von image.php übergeben werden. Und so könnte ein Aufruf der Captcha-Grafik im XHTML-Code aussehen (bei diesem Aufruf werden alle Einstellungen aus config.php verwendet):

<img src="require/image.php" alt="Captcha wird geladen..." />

Beim folgenden Ansatz werden die übergebenen Eigenschaften benutzt:

<img src="require/image.php?width=200&height=100&type=png&source=list&length=5&size=8&intensity=50&color=#FFFFFF" alt="Captcha wird geladen..." />

Eigenschaften, die als Parameter ankommen, haben höhere Gewichtung als die aus config.php. Es müssen nicht immer alle Eigenschaften übergeben werden, fehlende Werte werden aus config.php ausgelesen. Daher nur Daten übergeben, die sich von Einstellungswerten aus config.php unterscheiden.

Nachfolgend sind die möglichen Eigenschaften mit dazugehörigen Konstanten aus config.php und passenden Namen der GET-Parameter (in Klammern) für Übergabe an image.php aufgelistet:

CAPTCHA_IMAGE_WIDTH (width)

  • Breite der Captcha-Grafik [Optional]
  • Wird keine Breite angegeben (oder ist 0), erfolgt eine automatische Berechnung der Breite. Wird eine Breite angegeben, die smaller ist als die tatsächliche Breite des Strings, so wird der String unter Umständen nicht vollständig sichtbar dargestellt

CAPTCHA_IMAGE_HEIGHT (height)

  • Höhe der Captcha-Grafik [Optional]
  • Wird keine Höhe angegeben (oder ist 0), erfolgt eine automatische Berechnung der Höhe. Wird eine Höhe angegeben, die kleiner ist als die tatsächliche Höhe des Strings, so wird der String unter Umständen nicht vollständig sichtbar dargestellt

CAPTCHA_IMAGE_TYPE (type)

  • Typ der Captcha-Grafik [Optional]
  • Erlaubt sind folgende Werte:
    • png
    • jpeg
  • Wird kein Typ angegeben (oder ist 0), erfolgt eine automatische Zuweisung. Default-Wert ist “png”
  • Es wird geprüft, ob GDlib installiert ist und der angegebene Typ unterstützt wird. Wird der Typ nicht unterstützt, erfolgt eine automatische Zuweisung

CAPTCHA_STRING_SOURCE (source)

  • Der darzustellende Captcha-String [Optional]
  • Folgende Werte sind erlaubt:
    • “list” (= Quelle ist die mitgelieferte Wortliste)
    • “rand” (= Zufallgenerator)
  • Wird kein String angegeben (oder ist 0), erfolgt eine automatische Generierung des Strings mit 32 Zeichen. Länge des Strings kann mit “CAPTCHA_STRING_LENGTH” gesteuert werden

CAPTCHA_STRING_LENGTH (length)

  • Länge des Captcha-Strings [Optional]
  • Wird keine Länge angegeben (oder ist 0), erfolgt eine automatische Berechnung der Länge. Wird eine Länge angegeben, die länger ist als die tatsächliche Länge des Strings, so wird der String abgeschnitten

CAPTCHA_STRING_SIZE (size)

  • Größe der System-Schrift [Optional]
  • Erlaubt sind Werte zwischen 1 und 10. Wird keine Schriftgröße angeben (oder ist 0), erfolgt eine automatische Zuweisung
  • Default-Wert ist 5

CAPTCHA_BACKGROUND_INTENSITY (intensity)

  • Intensität des Hintergrunds [Optional]
  • Gibt an, wie intensiv die Zeichen im Hintergrund dargestellt werden sollen. Größerer Wert bedeutet schlechtere Lesbarkeit für Computerprogramme
  • Folgende Werte sind erlaubt:
    • “default” (= 125 als feste Stärke)
    • “rand” (= zufallsgenerierte Stärke)
    • eine feste Stärke als Zahl (zwischen 1 und 300)
  • Wird keine Intensität angegeben (oder ist 0), erfolgt eine automatische Zuweisung

CAPTCHA_BACKGROUND_COLOR (color)

  • Farbe des Hintergrunds [Optional]
  • Färbt den Hintergrund mit einer bestimmten Farbe im HEX-Format (#FFF000)
  • Wird kein Farbwert angegeben (oder ist 0), erfolgt eine zufallsgenerierte Auswahl der Farbe

Versionierung
Version 0.3:

  • Zusätzliche Eigenschaften in der config.php und als Parameter beim Aufruf der image.php möglich

Version 0.2:

  • Neue Features, mehr Einstellungen

Version 0.1:

  • CaptchaImageMaker geht online

Live-Beispiel
Das Script kommt auf diesem eMailLink-Formular zum Einsatz.

Download

Installation

  • Datei downloaden
  • ZIP-Archiv entpacken
  • Konfigurationsdatei config.php in einem PHP- oder Text-Editor öffnen
  • Werte der Konstanten (siehe oben) anpassen
  • Datei speichern
  • Per FTP mit dem WebServer verbinden
  • Entpacktes Verzeichnis captcha_image_maker ins Hauptverzeichnis des WebServers übertragen
  • Beispiel mittels http://www.ihre-domain.de/captcha_image_maker/example.php im Browser ausführen
  • Captcha wird eingeblendet und mit dem eingegebenen String nach dem Absenden des Formulars verglichen

Für Vorschläge und Meinungen bin ich offen und dankbar.


Über den Beitrag

del.icio.us für Mit CaptchaImageMaker gegen Spam Mister Wong für Mit CaptchaImageMaker gegen Spam YiGG für Mit CaptchaImageMaker gegen Spam Webnews für Mit CaptchaImageMaker gegen Spam