Jump to content

Extension:BestätigungDerBearbeitung

From mediawiki.org
This page is a translated version of the page Extension:ConfirmEdit and the translation is 44% complete.
Diese Erweiterung ist in MediaWiki 1.18 und darüber enthalten. Daher muss sie nicht erneut heruntergeladen werden. Allerdings müssen die folgenden Anweisungen trotzdem beachtet werden.
MediaWiki-Erweiterungen
ConfirmEdit
Freigabestatus: stabil
Einbindung Seitenaktivität
Beschreibung Fügt CAPTCHAs für das Speichern von Seiten und andere Benutzeraktionen hinzu
Autor(en)
  • Brooke Vibber
  • Florian Schmidt
  • Sam Reed
Letzte Version 1.6.0 (Laufende Aktualisierungen)
Kompatibilitätspolitik Snapshots werden zusammen mit MediaWiki veröffentlicht. Der Master ist nicht abwärtskompatibel.
Lizenz GNU General Public License 2.0 oder neuer
Herunterladen
  • $wgAllowConfirmedEmail
  • $wgCaptchaBadLoginExpiration
  • $wgConfirmEditEnabledAbuseFilterCustomActions
  • $wgCaptchaTriggersOnNamespace
  • $wgCaptchaStorageClass
  • $wgCaptchaRegexes
  • $wgCaptchaIgnoredUrls
  • $wgCaptchaSessionExpiration
  • $wgCaptchaWhitelist
  • $wgCaptchaWhitelistIP
  • $wgCaptchaBadLoginPerUserAttempts
  • $wgCaptchaTriggers
  • $wgCaptchaBypassIPs
  • $wgCaptchaBadLoginPerUserExpiration
  • $wgCaptcha
  • $wgCaptchaBadLoginAttempts
  • skipcaptcha
Quarterly downloads 125 (Ranked 42nd)
Public wikis using 957 (Ranked 278th)
Übersetze die ConfirmEdit-Erweiterung, wenn sie auf translatewiki.net verfügbar ist
Vagrant-Rolle confirmedit
Probleme Offene Aufgaben · Einen Fehler melden

Die Erweiterung ConfirmEdit ermöglicht die Verwendung verschiedener CAPTCHA-Techniken, um Spambots und andere automatisierte Tools davon abzuhalten, das Wiki zu bearbeiten, und um automatisierte Anmeldeversuche zu vereiteln, die versuchen, Passwörter zu erraten.

ConfirmEdit wird mit mehreren Techniken/Modulen geliefert, um ein Captcha zu erzeugen.

Modul Beschreibung Wirksamkeit bei der Unterbindung von Spam
SimpleCaptcha Benutzer müssen eine wirklich einfache Rechenaufgabe lösen. Niedrig
FancyCaptcha Die Benutzer müssen eine Reihe von Buchstaben/Zahlen identifizieren, die in verfremdeter Form angezeigt werden. Niedrig
MathCaptcha Die Benutzer müssen eine Rechenaufgabe lösen, die als Bild angezeigt wird. Niedrig
QuestyCaptcha Die Benutzer müssen eine Frage aus einer Reihe von Fragen beantworten, die von dem/den Administrator(en) festgelegt wurden. Sehr hoch, wenn nicht gecrackt
ReCaptcha NoCaptcha Dem Benutzer wird eine auf JavaScript basierende Kontrolle der menschlichen Fähigkeiten präsentiert. Wenn die Prüfung nicht bestanden wird, wird ein Puzzle präsentiert. Niedrig bis mittel
hCaptcha Ähnlich wie reCAPTCHA, doch wohl effektiver als reCAPTCHA wegen seines anderen Ansatzes für behindertengerechte Captchas. Unbekannt
Turnstile Cloudflare Turnstile. Bot-Detektor ohne menschliches Zutun (oder Klicken auf das Kästchen). Unbekannt

Einige dieser Module erfordern zusätzliche Einstellungen:

  • MathCaptcha erfordert sowohl das Vorhandensein von TeX als auch die Erweiterung Math , für Versionen von MediaWiki nach 1.17
  • FancyCaptcha erfordert die Ausführung eines vorherigen Setup-Skripts in Python

Nachteile

CAPTCHAs reduzieren die Barrierefreiheit und verursachen bei menschlichen Benutzern eine gewisse Unannehmlichkeit.

Sie sind auch gegen Bots nicht zu 100% effektiv. Sie werden dein Wiki nicht vor Spammern schützen können, die bereit und in der Lage sind, menschliche Fähigkeiten zu nutzen, um die CAPTCHAs zu überwinden. Du könntest ConfirmEdit in Kombination mit anderen Antispam-Funktionen verwenden. Unabhängig davon, welche Lösung du verwendest, ist es wichtig, dass du die Seite "Letzte Änderungen" im Auge behältst, wenn du ein öffentlich zugängliches Wiki hast.

Installation

ConfirmEdit funktioniert möglicherweise nicht, wenn du eine andere MediaWiki-Version verwendest als die, die du beim Herunterladen über den "Erweiterungsverteiler" angegeben hast.
  • Die Erweiterung herunterladen und die Datei(en) in ein Verzeichnis namens ConfirmEdit im Ordner extensions/ ablegen.
    Entwickler und Code-Beitragende sollten stattdessen die Erweiterung von Git installieren, mit:cd extensions/
    git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/ConfirmEdit
  • Folgenden Code am Ende deiner LocalSettings.php -Datei einfügen:
    wfLoadExtension( 'ConfirmEdit' );
    
  • Den CAPTCHA-Typ aktivieren, der verwendet werden soll
  • Konfiguration nach Bedarf
  • Yes Erledigt – Navigiere zu Special:Version in deinem Wiki, um zu überprüfen, ob die Erweiterung erfolgreich installiert wurde.


Vagrant-Installation:

  • Wird Vagrant benutzt, ist mit vagrant roles enable confirmedit --provision zu installieren

CAPTCHA-Typen

In ConfirmEdit sind zahlreiche verschiedene CAPTCHA-Typen enthalten.

QuestyCaptcha

Dieses Modul stellt eine Frage und der Benutzer gibt die Antwort. Die Fragen sind in der Konfiguration bereitzustellen. Dieses Modul hat sich als starker Mechanismus gegen Spambots erwiesen; es sollte auch den Vorteil einer besseren Zugänglichkeit haben, da Textfragen von Text-to-Speech-Software vorgelesen werden können, so dass sehbehinderte Nutzer/innen (aber keine Bots) richtig antworten können.

Füge Folgendes zu LocalSettings.php hinzu, um dieses CAPTCHA zu aktivieren, und bearbeite die Q&A:

wfLoadExtensions([ 'ConfirmEdit', 'ConfirmEdit/QuestyCaptcha' ]);

// Füge deine Fragen in LocalSettings.php unter Verwendung dieses Formats hinzu:
$wgCaptchaQuestions = [
	'What is the capital of France?' => 'Paris',
	'What is the capital of Spain' => 'MADRID', // Bei den Antworten wird die Groß- und Kleinschreibung nicht berücksichtigt
	'What is the name of this wiki?' => $wgSitename, // Variablen können verwendet werden
	'How many fingers does a hand have?' => [ 5, 'five' ], // Eine Frage kann über viele Antworten verfügen
];

Es wählt zufällig eine Frage aus den bereitgestellen Fragen aus.

Das Minimum ist eins.

  • Bei QuestyCaptcha wird die Groß- und Kleinschreibung nicht beachtet. Wenn die Antwort "Paris" lautet und der Benutzer "paris" schreibt, oder wenn die Antwort "paris" lautet und der Benutzer "Paris" schreibt, funktioniert es dennoch.
  • Wenn die Antwort ein Sonderzeichen wie "ó" enthält, kannst du vorsichtshalber eine Antwort mit "ó" und eine andere mit "o" schreiben (wobei "o" "ó" ersetzt). Wenn die Antwort zum Beispiel "canción" lautet, kannst du [ 'cancion', 'canción' ] verwenden, wenn der Benutzer "cancion" schreibt.
  • Die Antwort muss für einen Menschen, der sich für dein Wiki interessiert, leicht zu erraten sein, nicht jedoch für ein automatisches Programm. Idealerweise sollte sie nicht im Text der Frage enthalten sein; du kannst versuchen, die Captcha-Hilfemeldungen zu bearbeiten und dort die Lösung für die Captcha-Antwort anzugeben.[1]
  • Die Fragen sollten geändert werden, wenn sie sich als ineffektiv erweisen. Dies wird möglicherweise nie geschehen, wenn das Wiki nicht gezielt ins Visier genommen wird.
  • Verwende niemals Fragen wieder, die bereits von dir oder anderen in der Vergangenheit verwendet wurden: Spambots sind dafür bekannt, dass sie sich eine Frage und ihre Antwort für immer merken, sobald sie sie geknackt haben.
  • You can even dynamically generate questy captchas in the configuration. NICHT eine exakte Kopie der dynamischen Fragen aus dem Link verwenden. Spammer haben sie bereits geknackt. Andere dynamische Fragen sind jedoch durch die Art der Fragestellung sehr effektiv.
  • Es gibt eine separate Erweiterung für ConfirmEdit namens QuestyCaptchaEditor, die eine spezielle Seite im Wiki für die Verwaltung von QuestyCaptcha Frage-Antwort-Paaren bereitstellt. Diese Installation kann in Erwägung gezogen werden, wenn die Eingriffe des Systemadministrators bei der Verwaltung der CAPTCHA-Fragen und ihrer Antworten reduziert werden sollen.

ReCaptcha (NoCaptcha)

Warnung Warnung: ReCaptcha wurde von den meisten Spambots, die es auf Wikis abgesehen haben, geknackt, vor allem wegen seiner zugänglichen Captcha-Alternative.

The new generation of ReCaptcha, called NoCaptcha, was introduced by Google back in December 2014 and reduces the need for humans to solve a CAPTCHA.[2] Based on a user-side JavaScript (which can't be controlled by the user, the administrator), reCaptcha tries to identify the site user as a human by analyzing their browsing behavior on the page. Der Benutzer muss dann ein „Ich bin kein Roboter“-Kontrollkästchen anklicken und muss (im besten Fall) nichts weiter tun, um zu bestätigen, dass er ein Mensch ist In some cases, the user still has to solve a CAPTCHA image.

ReCaptcha wird nicht mit dem Mobile Source Editor und einigen Erweiterungen funktionieren.

This module implements the new ReCaptcha NoCaptcha solution in ConfirmEdit.

You still need a public and a secret key (which you can retrieve from the ReCaptcha admin panel – change v2, v3 not work) and install the plugin with:

wfLoadExtensions([ 'ConfirmEdit', 'ConfirmEdit/ReCaptchaNoCaptcha' ]);
$wgReCaptchaSiteKey = 'your public/site key here';
$wgReCaptchaSecretKey = 'your private key here';

There is an additional configuration option for this module, $wgReCaptchaSendRemoteIP (default: false), which, if set to true, sends the IP address of the current user to a server from Google while verifying the CAPTCHA. You can improve the privacy for your users if you keep this set to false. However, remember that this module adds a client-side JavaScript code, directly loaded from a server from Google, which already can collect the IP address of the user (combined with other data, too) and can not be limited by a configuration option. This will only work on the standard MediaWiki editor.

reCAPTCHA v3

Currently, there is no official way to implement version 3 of Google reCAPTCHA.

SimpleCaptcha (Rechnung)

Warnung Warnung: This type is used by very few wikis, if any, probably because of scarce effectiveness.
A simple math question

Dies ist das Standard-CAPTCHA.

This module provides a simple addition or subtraction question for the user.

Add the following lines to LocalSettings.php in the root of your MediaWiki to enable this CAPTCHA:

$wgCaptchaClass = 'SimpleCaptcha';

Note that the display of a trivial maths problem as plaintext yields a captcha which can be trivially solved by automated means; as of 2012, sites using SimpleCaptcha are receiving significant amounts of spam and many automated registrations of spurious new accounts. Wikis currently using this as the default should therefore migrate to one of the other CAPTCHAs.

FancyCaptcha

Warnung Warnung: This type is used by very few wikis outside WMF, if any, probably because of scarce effectiveness.

This module displays a stylized image of a set of characters.

Pillow must be installed to create the set of images initially, but isn't needed after that (can be installed with pip install Pillow in most environments).

  1. Add the following lines to LocalSettings.php in the root of your MediaWiki installation:
    wfLoadExtensions([ 'ConfirmEdit', 'ConfirmEdit/FancyCaptcha' ]);
    $wgCaptchaClass = 'FancyCaptcha';
  2. In LocalSettings.php, set the variable $wgCaptchaDirectory to the directory where you will store Captcha images. Note: use the absolute directory path or relative to your wiki's installation directory Below it set $wgCaptchaSecret to your passphrase.
  3. Create the images by running the following:
    python /path/to/captcha.py --font=<font> --wordlist=<wordlist> --key=<key> --output=<output> --count=<count>
    • where font is a path to some font, for instance AriBlk.TTF.
    • wordlist is a path to some word list, for instance /usr/share/dict/words. (Note: on Debian/Ubuntu, the 'wbritish' and 'wamerican' packages provide such lists. Verwende auf Fedora das Paket 'words')
    • key is the exact passphrase you set $wgCaptchaSecret to. Use quotes if necessary.
    • output is the path to where the images should be stored (defined in $wgCaptchaDirectory).
    • count is how many images to generate.
    • An example, assuming you're in the extensions/ConfirmEdit directory (font location from Ubuntu 6.06, probably different on other operating systems):
    python captcha.py --font=/usr/share/fonts/truetype/freefont/FreeSans.ttf --wordlist=/usr/share/dict/words --key=FOO --output=../../../captcha --count=100
    • If you are not satisfied with the results of the words you've generated, you can remove the images and create a new set. Comic_Sans_MS_Bold.ttf seems to generate relatively legible words, and you could also edit the last line of captcha.py to increase the font size from the default of 40.
  4. Put the images you get into captcha directory in your installation.
  5. Edit your wiki's LocalSettings.php : specify the full path to your captcha directory in $wgCaptchaDirectory and secret key you've been using while generating captures in $wgCaptchaSecret.
$wgCaptchaDirectory = "/.php-data/my-wiki.org/wiki/captcha";
$wgCaptchaDirectoryLevels = 0; // Set this to a value greater than zero to break the images into subdirectories
$wgCaptchaSecret = "FOO"; // Same value you used in --key option in captcha.py

Siehe auch wikitech:Generating CAPTCHAs, um zu sehen, wie die Wikimedia Foundation es tut.

How to avoid common problems running Python on Windows
  1. Install the most recent version of Pillow.
  2. Make the installation of Python on a short folder name, like C:\Python\
  3. Create a folder like C:\Ex and place files CAPTCHA.py / FONT.ttf / LIST.txt into the folder.
  4. To execute easily, run the following example as a batch file:
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

MathCaptcha

MediaWiki Version:
1.39
Warnung Warnung: This type is used by very few wikis, if any, probably because of scarce effectiveness.
This requires the Math extension to be installed. Also, since this requires the PNG mode of the Math extension, it no longer works since MediaWiki 1.40.

This module generates an image using TeX to ask a basic math question.

Set the following to enable this CAPTCHA:

wfLoadExtensions([ 'ConfirmEdit', 'ConfirmEdit/MathCaptcha' ]);

See the README file in the math folder to install this captcha.

hCaptcha

MediaWiki Version:
1.35

Siehe https://www.hcaptcha.com/

Die Konfiguration ist ähnlich wie ReCaptcha:

wfLoadExtensions([ 'ConfirmEdit', 'ConfirmEdit/hCaptcha' ]);
$wgHCaptchaSiteKey = 'dein öffentlicher/Seite-Schlüssel hier';
$wgHCaptchaSecretKey = 'dein privater Schlüssel hier';

$wgHCaptchaSendRemoteIP ist auch verfügbar.

Turnstile

MediaWiki Version:
1.42

The configuration is similar to #ReCaptcha or #hCaptcha:

wfLoadExtensions([ 'ConfirmEdit', 'ConfirmEdit/Turnstile' ]);
$wgTurnstileSiteKey= 'your public/site key here';
$wgTurnstileSecretKey= 'your private key here';

$wgTurnstileSendRemoteIP is also available.

Konfiguration

Don't require CAPTCHA from some users

ConfirmEdit introduces a 'skipcaptcha' permission type to wgGroupPermissions . This lets you set certain groups never to see CAPTCHAs. All of the following can be added to LocalSettings.php.

Defaults from ConfirmEdit.php:

$wgGroupPermissions['*']['skipcaptcha'] = false;
$wgGroupPermissions['user']['skipcaptcha'] = false;
$wgGroupPermissions['autoconfirmed']['skipcaptcha'] = false;
$wgGroupPermissions['bot']['skipcaptcha'] = true; // registrierte Bots
$wgGroupPermissions['sysop']['skipcaptcha'] = true;

To skip captchas for users who confirmed their email, you need to set both:

$wgGroupPermissions['emailconfirmed']['skipcaptcha'] = true;
$wgAllowConfirmedEmail = true;

Set actions that require CAPTCHA

The following conditions can trigger a CAPTCHA to be displayed:

  • 'edit' - triggered on every attempted page save
  • 'create' - triggered on page creation
  • 'sendemail' - triggered when using Special:Emailuser
  • 'addurl' - triggered on a page save that would add one or more URLs to the page
  • 'createaccount' - triggered on creation of a new account
  • 'badlogin' - triggered after several failed login attempts from the same IP address
  • 'badloginperuser' - triggered after several failed login attempts using the same username

The default values for these are:

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

The triggers edit, create and addurl can be configured per namespace using the $wgCaptchaTriggersOnNamespace setting. If there is no $wgCaptchaTriggersOnNamespace for the current namespace, the normal $wgCaptchaTriggers apply. So suppose that in addition to the above $wgCaptchaTriggers defaults we configure the following:

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

Then the CAPTCHA will not trigger when adding URLs to a talk page, but on the other hand user will need to solve a CAPTCHA any time they try to edit a page in the project namespace, even if they aren't adding a link.

URL- und IP-Whitelists

It is possible to define a whitelist of known good sites for which the CAPTCHA should not kick in when the 'addurl' action is triggered.

Sysop users can edit the system message page called MediaWiki:Captcha-addurl-whitelist.

The expected format is a set of regex's one per line.

Comments can be added with # prefix.

You can see an example of this usage on OpenStreetMap.

This set of whitelist regexes can also be defined using the $wgCaptchaWhitelist config variable in LocalSettings.php, to keep the value(s) a secret.

Some other variables you can add to LocalSettings.php:

  • $wgCaptchaWhitelistIP - List of IP ranges to allow to skip the CAPTCHA (you can also use MediaWiki:Captcha-ip-whitelist; see below for details).
  • $wgAllowConfirmedEmail - Allow users who have confirmed their e-mail addresses to post URL links.

These are described more thoroughly in the code comments

MediaWiki:Captcha-ip-whitelist can change the whitelisted IP addresses and IP ranges on the wiki.

They should be separated by newlines.

If any other character (apart from a valid IP address or range) is found on a line, it will be ignored, but leading and trailing whitespace characters are allowed.

For example, a line with only 127.0.0.1 is considered valid but #127.0.0.1 will be ignored.

Reguläre Ausdrücke

The global variable wgCaptchaRegexes accepts an array of regexes to be tested against the page text and triggers the CAPTCHA if a match is found.

Failed login attempts

When using the badlogin or badloginperuser triggers, the following configuration variables control how many failed login attempts per-IP and per-user are allowed before a CAPTCHA is required, and how long it takes until the CAPTCHA requirement expires:

$wgCaptchaBadLoginAttempts = 3;
$wgCaptchaBadLoginExpiration = 300; // 300 seconds = 5 minutes
$wgCaptchaBadLoginPerUserAttempts = 20;
$wgCaptchaBadLoginPerUserExpiration = 600; // 600 seconds = 10 minutes

The triggers require $wgMainCacheType to be set to something other than CACHE_NONE in your LocalSettings.php, if in doubt the following will always work.

$wgMainCacheType = CACHE_ANYTHING;

Note that these triggers do not trigger CAPTCHAs on API login but block them outright until the CAPTCHA requirement expires.

Wikimedia configuration

For example, Wikimedia Foundation wikis use FancyCaptcha with a custom set of images and the default configuration, modified by what follows.

$wgGroupPermissions['autoconfirmed']['skipcaptcha'] = true;

This means only unregistered and newly registered users have to pass the CAPTCHA.

EmergencyCaptcha mode

Additionally, the shortcut named $wmgEmergencyCaptcha is designed for use in a limited number of emergencies, for instance, in case of massive vandalism or spam attacks: it changes the default trigger values (see above) into the following:

$wgCaptchaTriggers['edit'] = true; 
$wgCaptchaTriggers['create'] = true;

So, in addition to the normal situation, all anonymous and new users have to solve a CAPTCHA before being able to save an edit or create a new page.

Rate-limiting

ConfirmEdit supports rate limiting for false CAPTCHA.

For more information about $wgRateLimits and how to set it up, read Handbuch:$wgRateLimits , the action key is badcaptcha.

Namen der Autoren

The basic framework was primarily designed by Brion Vibber, who also wrote the SimpleCaptcha and FancyCaptcha modules.

Das MathCaptcha-Modul wurde von Rob Church geschrieben.

Das QuestyCaptcha-Modul wurde von Benjamin Lees geschrieben.

Additional maintenance work was done by Yaron Koren.

Anmerkungen

  1. MediaWiki:Questycaptchahelp-text, MediaWiki:Questycaptcha-edit, MediaWiki:Questycaptcha-addurl, MediaWiki:Questycaptcha-create, MediaWiki:Questycaptcha-createaccount
  2. Google Blog Are you a robot? Introducing “No CAPTCHA reCAPTCHA” ()

Siehe auch