Extension:ConfirmEdit/de

From MediaWiki.org
Jump to: navigation, search
Sprache:Project:Language policy English  • Deutsch • русский • 中文
MediaWiki-ErweiterungenManual:Extensions
Crystal Clear action run.png
ConfirmEdit

Erscheinungsstatus:Extension status stable

EinbindungTemplate:Extension#type Page action
Letzte VersionTemplate:Extension#version 1.0 (2011-01-30)
MediaWikiTemplate:Extension#mediawiki 1.11+
LizenzTemplate:Extension#license No license specified
Download
Verwendete HooksTemplate:Extension#hook
EditFilterMergedManual:Hooks/EditFilterMerged
EditFilterManual:Hooks/EditFilter
UserCreateFormManual:Hooks/UserCreateForm
AbortNewAccountManual:Hooks/AbortNewAccount
LoginAuthenticateAuditManual:Hooks/LoginAuthenticateAudit
UserLoginFormManual:Hooks/UserLoginForm
AbortLoginManual:Hooks/AbortLogin
APIEditBeforeSaveManual:Hooks/APIEditBeforeSave

Translate the ConfirmEdit extension if it is available at translatewiki.net

Check usage and version matrix.

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[edit]

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[edit]

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 LocalSettings.php deines MediaWikis im unteren Bereich die folgende Zeile hinzu:
require_once( "$IP/extensions/ConfirmEdit/ConfirmEdit.php" );


Achte beim Herunterladen auf die Kompatibilität mit deiner installierten MediaWiki-Version, sonst kann es Probleme geben.

Captcha-Methoden[edit]

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

SimpleCaptcha[edit]

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

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

$wgCaptchaClass = 'SimpleCaptcha';

MathCaptcha[edit]

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

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

require_once( "$IP/extensions/ConfirmEdit/MathCaptcha.php"); 
$wgCaptchaClass = 'MathCaptcha';

QuestyCaptcha[edit]

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

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

require_once( "$IP/extensions/ConfirmEdit/QuestyCaptcha.php"); 
$wgCaptchaClass = 'QuestyCaptcha';
$wgCaptchaQuestions[] = array( 'question' => "Frage?", 'answer' => "Antwort!" );
$wgCaptchaQuestions[] = array( 'question' => "Was sagt ein arbeitsloser Physiker zu einem, der Arbeit hat?",
                               'answer' => "Eine Currywurst bitte." );
$wgCaptchaQuestions[] = array( 'question' => "Wie heißt dieses Wiki?", 'answer' => "$wgSitename" );

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

FancyCaptcha[edit]

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 LocalSettings.php hinzu:
    require_once( "$IP/extensions/ConfirmEdit/ConfirmEdit.php" );
    require_once( "$IP/extensions/ConfirmEdit/FancyCaptcha.php" );
    $wgCaptchaClass = 'FancyCaptcha';
  2. Weise der Variablen $wgCaptchaDirectory das Verzeichnis zu, wo du die Captcha-Bilder speichern möchtest. Weise darunter $wgCaptchaSecret eine Zeichenfolge als Passwort zu.
  3. Erstelle nun die Bilder folgendermaßen, wobei:
    • font der Pfad eines Schriftarten-Verzeichnisses ist
    • wordlist der Pfad eines Wörterverzeichnisses ist, zum Beispiel /usr/share/dict/words. (Hinweis Hinweis: bei Debian/Ubuntu bieten die Pakete 'wbritish' and 'wamerican' solche Verzeichnisse. Bei Fedora gibt es das Paket 'words')
    • key ist das von dir gewählte Passwort ($wgCaptchaSecret)
    • output ist das von dir gewählte Bilderverzeichnis ($wgCaptchaDirectory)
    • count ist die Anzahl der zu generierenden Bilder
    python /path/to/captcha.py --font=<font> --wordlist=<wordlist> --key=<key> --output=<output> --count=<count>
    • Ein Beispiel, vorausgesetzt, du befindest dich im Verzeichnis extensions/ConfirmEdit und nutzt Ubuntu 6.06:
    python captcha.py --font=/usr/share/fonts/truetype/freefont/FreeSans.ttf --wordlist=/usr/share/dict/words --key=FOO --output=../../../captcha --count=100
    • 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[edit]

  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. C:\Python\
  4. Erstelle einen Ordner, z. B. C:\Ex\, und lege dort die Datei captcha.py sowie die Schriftarten- und die Wortverzeichnis-Datei ab
  5. Zur einfachen Ausführung kannst du nun die folgende Batch-Datei nutzen (Beispiel):
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

ReCaptcha[edit]

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 LocalSettings.php Folgendes hinzufügen:

require_once( "$IP/extensions/ConfirmEdit/ReCaptcha.php"); 
$wgCaptchaClass = 'ReCaptcha';
$wgReCaptchaPublicKey = 'dein öffentlicher Schlüssel';
$wgReCaptchaPrivateKey = 'dein privater Schlüssel';


Hinweis Hinweis:

  • 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[edit]

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 ConfirmEdit.php (true = keine Captchas für diese Benutzergruppe):

$wgGroupPermissions['*'            ]['skipcaptcha'] = false; // Unangemeldete
$wgGroupPermissions['user'         ]['skipcaptcha'] = false; // neue Benutzer
$wgGroupPermissions['autoconfirmed']['skipcaptcha'] = false; // bestätigte Benutzer
$wgGroupPermissions['bot'          ]['skipcaptcha'] = true;  // Bots mit Botflag
$wgGroupPermissions['sysop'        ]['skipcaptcha'] = true;  // Administratoren

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: $wgGroupPermissions['emailconfirmed']['skipcaptcha'] = true; und an anderer Stelle $ceAllowConfirmedEmail = true;.

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):

$wgCaptchaTriggers['edit']          = false; 
$wgCaptchaTriggers['create']        = false; 
$wgCaptchaTriggers['addurl']        = true; 
$wgCaptchaTriggers['createaccount'] = true;
$wgCaptchaTriggers['badlogin']      = true;

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

$wgCaptchaTriggersOnNamespace[NS_TALK]['addurl'] = false;
$wgCaptchaTriggersOnNamespace[NS_PROJECT]['edit'] = true;

...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:

$wgGroupPermissions['user']['skipcaptcha'] = true; 
$wgCaptchaTriggers['edit'] = true;

URL- und IP-Whitelist[edit]

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 addurl ausschließen.

Administratoren können die Liste der freigegebenen URLs auf der Seite [[MediaWiki:captcha-addurl-whitelist]] 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 $wgCaptchaWhitelist in der LocalSettings.php benutzt werden, um die Eintragungen nicht öffentlich zu machen.

Die IP-Whitelist kann in der LocalSettings.php mit der Variable $wgCaptchaWhitelistIP erstellt werden.

Zusätzliche Erweiterungen[edit]

VisualMathCaptcha[edit]

Die Erweiterung VisualMathCaptcha kann auch zusammen mit ConfirmEdit genutzt werden. Siehe dort für weitere Installations- und Konfigurations-Modularitäten.

Test Plan[edit]

Siehe Extension:ConfirmEdit/Test Plan.