Extension:ConfirmEdit/de

Die Erweiterung ConfirmEdit erlaubt die Nutzung verschiedener CAPTCHA-Methoden, um Spambots und andere automatische Tools vom Editieren eines Wikis abzuhalten, sowie Versuche zu vereiteln, durch automatisierte Anmeldeversuche Passwörter zu knacken.

Die CAPTCHA-Methoden, die ConfirmEdit bietet, sind:
 * "SimpleCaptcha" - Benutzer müssen eine Rechenaufgabe lösen
 * "MathCaptcha" - Benutzer müssen eine Rechenaufgabe lösen, die als Bild dargestellt ist
 * "QuestyCaptcha" - Benutzer müssen eine zufällige Frage beantworten, die zuvor von Administratoren erstellt wurde
 * "FancyCaptcha" - Benutzer müssen eine Buchstabenfolge erkennen
 * "ReCaptcha" - Benutzer müssen eine Buchstabenfolge aus einem Bild oder einer Audiodatei erkennen und unterstützen dabei per ReCaptcha die Digitalisierung von Büchern

Einige dieser Methoden erfordern zusätzliche Einrichtungen: MathCaptcha erfordert das Vorhandensein von TeX, FancyCaptcha erfordert die Durchführung eines Installationsvorbereitungs-Script in Python und ReCaptcha erfordert die Einholung von API-Schlüsseln.

Einige Warnungen: Captchas reduzieren die Barrierefreiheit und sind lästig für Benutzer. Dazu kommt, dass sie nicht hundertprozentig gegen Bots schützen, und vor menschlichen Spammern sowieso nicht. Auch wenn du ConfirmEdit zusammen mit anderen Anti-Spam-Einrichtungen anwendest, bleibt es nicht aus, stets die Letzten Änderungen des Wikis zu überwachen.

Autoren
Der grundlegende Rahmen wurde größtenteils von Brion Vibber erstellt, der auch die SimpleCaptcha- und FancyCaptcha-Komponenten geschrieben hat. Die MathCaptcha-Komponente schrieb Rob Church, die QuestyCaptcha-Komponente stammt von Benjamin Lees und die ReCaptcha-Komponente wurde von Mike Crawford und Ben Maurer geschrieben. Zusätzliche Wartungsarbeiten übernahm Yaron Koren.

Installation
Die Erweiterung ConfirmEdit erfordert MediaWiki 1.11+ sowie PHP5 (Versionen vor 21970 sind auch PHP4-kompatibel).


 * Lade dir hier die neueste Version herunter.
 * Erstelle im Extensions-Ordner deines Wikis einen neuen Ordner "ConfirmEdit".
 * Verschiebe die heruntergeladenen Dateien in den neuen Ordner.
 * Füge zur  deines MediaWikis im unteren Bereich die folgende Zeile hinzu:

Captcha-Methoden
Wie oben beschrieben, gibt es fünf verschiedene Captcha-Arten bei ConfirmEdit.

SimpleCaptcha
Dies ist das Standard-Captcha. Es stellt dem Benutzer eine einfache Additions- oder Multiplikationsaufgabe.

Füge Folgendes in die  direkt unter die Einbindung von ConfirmEdit ein, um diese Methode zu nutzen:

MathCaptcha
Diese Methode generiert ein Bild mittels TeX, in dem eine einfache Rechenaufgabe enthalten ist.

Füge Folgendes in die  ein, um diese Methode zu nutzen:

QuestyCaptcha
Diese Methode stellt eine Frage, die der Nutzer beantworten muss. Die Fragen erstellst dabei du in der Konfiguration.

Füge Folgendes in die  ein, um diese Methode zu nutzen:

Die Erweiterung wählt dann jedes Mal eine Frage zufällig aus.

FancyCaptcha
Diese Methode erzeugt ein Bild, in dem eine Reihe Zeichen enthalten sind. Die Python-Bild-Bibliothek muss zu Anfang installiert werden, um die Bilder zu erstellen, wird danach aber nicht mehr gebraucht.


 * 1) Füge die folgenden Zeilen der   hinzu:
 * 2) Weise der Variablen   das Verzeichnis zu, wo du die Captcha-Bilder speichern möchtest. Weise darunter   eine Zeichenfolge als Passwort zu.
 * 3) Erstelle nun die Bilder folgendermaßen, wobei:
 * 4) * font der Pfad eines Schriftarten-Verzeichnisses ist
 * 5) * wordlist der Pfad eines Wörterverzeichnisses ist, zum Beispiel /usr/share/dict/words. ( bei Debian/Ubuntu bieten die Pakete 'wbritish' and 'wamerican' solche Verzeichnisse. Bei Fedora gibt es das Paket 'words')
 * 6) * key ist das von dir gewählte Passwort
 * 7) * output ist das von dir gewählte Bilderverzeichnis
 * 8) * count ist die Anzahl der zu generierenden Bilder
 * 9) * Ein Beispiel, vorausgesetzt, du befindest dich im Verzeichnis extensions/ConfirmEdit und nutzt Ubuntu 6.06:
 * 10) * Wenn du mit den erstellten Bildern nicht zufrieden bist, kannst du sich einfach löschen und einen neuen Satz Bilder erstellen. Comic_Sans_MS_Bold.ttf bietet recht gut lesbare Wörter, und du kannst auch die letzte Zeile von captcha.py anpassen und die Schriftgröße auf 40 setzen.
 * 1) * Ein Beispiel, vorausgesetzt, du befindest dich im Verzeichnis extensions/ConfirmEdit und nutzt Ubuntu 6.06:
 * 2) * Wenn du mit den erstellten Bildern nicht zufrieden bist, kannst du sich einfach löschen und einen neuen Satz Bilder erstellen. Comic_Sans_MS_Bold.ttf bietet recht gut lesbare Wörter, und du kannst auch die letzte Zeile von captcha.py anpassen und die Schriftgröße auf 40 setzen.
 * 1) * Wenn du mit den erstellten Bildern nicht zufrieden bist, kannst du sich einfach löschen und einen neuen Satz Bilder erstellen. Comic_Sans_MS_Bold.ttf bietet recht gut lesbare Wörter, und du kannst auch die letzte Zeile von captcha.py anpassen und die Schriftgröße auf 40 setzen.

Wie man häufige Probleme mit Python umgeht
C:\python\python.exe C:\Ex\CAPTCHA.py --font C:\Ex\FONT.ttf --wordlist C:\Ex\LIST.txt --key=YOURPASSWORD --output C:\Ex\ --count=20
 * 1) Die Version 29357 des captcha.py wird von neueren Python-Versionen nicht unterstützt - das hängt mit dem abgelehnten md5 zusammen. Verwende daher Version 2.4.x
 * 2) Installiere die zu Python 2.4 gehörige Python-Bild-Bibliothek (PIL) 1.5
 * 3) Installiere Python in einem kurzen Dateifad, z. B.
 * 4) Erstelle einen Ordner, z. B. , und lege dort die Datei   sowie die Schriftarten- und die Wortverzeichnis-Datei ab
 * 5) Zur einfachen Ausführung kannst du nun die folgende Batch-Datei nutzen (Beispiel):

ReCaptcha
Diese Methode nutzt den Dienst "reCAPTCHA". Sie ist die professionellste Option und erfüllt dazu noch einen guten Zweck, indem sie bei der Digitalisierung von Büchern hilft (siehe hier, englisch).

Um diese Methode zu nutzen musst du dir zunächst hier zwei spezielle Schlüssel für dein Wiki besorgen, einen privaten und einen öffentlichen. Danach kannst du der  Folgendes hinzufügen:


 * ReCaptcha funktioniert nur mit der neuesten Version von ConfirmEdit.
 * Unglücklicherweise scheint ReCaptcha ein Opfer seines eigenen Erfolges zu sein – 2011 haben wohl einige Spammer eine Methode gefunden, das Captcha zu umgehen, auf welche Weise, ist unklar. Aus diesem Grunde ist es nicht mehr unbedingt empfehlenswert.

Konfiguration
ConfirmEdit führt eine Erlaubnis 'skipcaptcha' in die wgGroupPermissions (Gruppenrechte) ein. Auf diese Weise kann man einstellen, welche Benutzergruppen keine Captchas zu Gesicht bekommen.

Standardeinstellungen in der  (true = keine Captchas für diese Benutzergruppe):

Außerdem können Einstellungen für die Gruppe der Benutzer gemacht werden, die ihre E-Mail-Adresse angegeben und bestätigt haben. Um diesen Benutzern Captchas zu ersparen, ist Folgendes einzutragen:  und an anderer Stelle.

Es gibt fünf mögliche "Auslöser" für Captchas:
 * 'edit' - bei jeder Bearbeitung
 * 'create' - beim Erstellen einer neuen Seite
 * 'addurl' - bei einer Bearbeitung, mit der externe Links hinzugefügt werden
 * 'createaccount' - beim Anlegen eines Accounts
 * 'badlogin' - bei einem zweiten Loginversuch nach Fehlanmeldung

Die Standardeinstellungen für diese Auslöser sind (true = aktiviert, false = deaktiviert):

Die Auslöser,   und   können auf bestimmte Namensräume begrenzt werden, indem die Variable   verwendet wird. Wenn beispielsweise der folgende Code in die  eingesetzt wird:

...so erscheint kein Captcha, wenn einer Diskussionsseite ein externer Link hinzugefügt wird, dafür wird aber bei jeder Bearbeitung des Wiki-Namensraumes ein Captcha erscheinen.

Wenn nur für unangemeldete Benutzer bei jedem Edit ein Captcha erscheinen soll, ist folgender Code zu verwenden:

URL- und IP-Whitelist
Es ist möglich, sogenannte Whitelists zu definieren. Damit kann man einerseits gewisse IP-Adressen von Captchas befreien, und andererseits gewisse URLs als Auslöser für  ausschließen.

Administratoren können die Liste der freigegebenen URLs auf der Seite  bearbeiten. Wie das ungefähr aussieht sei am Beispiel von OpenStreetMap gezeigt. Kommentare auf der Liste können mit dem Präfix # eingefügt werden.

Alternativ kann auch die Variable  in der   benutzt werden, um die Eintragungen nicht öffentlich zu machen.

Die IP-Whitelist kann in der  mit der Variable   erstellt werden.

Test Plan
Siehe Extension:ConfirmEdit/Test Plan.