Erweiterung:TitleBlacklist
TitleBlacklist Freigabestatus: stabil |
|
---|---|
Einbindung | Benutzerrechte , API |
Beschreibung | Blockiert die Erzeugung von Seiten, die einem Ausdruck einer Blacklist entsprechen |
Autor(en) | Victor Vasiliev (VasilievVVDiskussion) |
Letzte Version | 1.5.0 (Laufende Aktualisierungen) |
Kompatibilitätspolitik | Snapshots werden zusammen mit MediaWiki veröffentlicht. Der Master ist nicht abwärtskompatibel. |
MediaWiki | 1.35+ |
PHP | 7.0+ |
Lizenz | GNU General Public License 2.0 oder neuer |
Herunterladen | |
|
|
|
|
Quarterly downloads | 53 (Ranked 83rd) |
Übersetze die TitleBlacklist-Erweiterung, wenn sie auf translatewiki.net verfügbar ist | |
Probleme | Offene Aufgaben · Einen Fehler melden |
Die TitleBlacklist-Erweiterung erlaubt Wikiadministratoren die Erzeugung, das Verschieben und das Hochladen von Seiten, deren Titel einem oder mehreren Regulären Ausdrücken entsprechen, als auch das Erzeugen von Accounts mit übereinstimmenden Benutzernamen zu blockieren.
Installation
- Die Erweiterung herunterladen und die Datei(en) in ein Verzeichnis namens
TitleBlacklist
im Ordnerextensions/
ablegen.
Entwickler und Code-Beitragende sollten stattdessen die Erweiterung von Git installieren, mit:cd extensions/
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/TitleBlacklist - Folgenden Code am Ende deiner LocalSettings.php -Datei einfügen:
wfLoadExtension( 'TitleBlacklist' );
- Konfiguriere Blockliste (siehe unten)
- Erledigt – Navigiere zu Special:Version in deinem Wiki, um zu überprüfen, ob die Erweiterung erfolgreich installiert wurde.
$wgGroupPermissions['sysop']['tboverride'] = false;
verwendet werden.
Konfiguration
$wgTitleBlacklistSources
- Datenfeld der Titel der Blacklist-Quellen.
- Should be in array( name => source description ) format. Defaults to an empty array.
$wgTitleBlacklistUsernameSources
- Sets the sources which may work as a username filter.
- "
*
" is for all; false disables all. - If you want to limit it to particular sources, use array( source name 1, source name 2 ). This may be useful when you have shared account creation system in order to avoid blacklist fragmentation.
$wgTitleBlacklistLogHits
- When true, logs on Special:Log/titleblacklist all attempts of local account creation that match the blacklists. Defaults to
false
. Note that even disabled, the log will still be visible for users groups with thetitleblacklistlog
right. $wgTitleBlacklistCaching
- ?
$wgTitleBlacklistBlockAutoAccountCreation
- Also blocks account created automatically that match the blacklists. Defaults to
true
.
- Multiple blacklist sources
The title blacklist can be gathered from multiple sources outside the local message. For configuring blacklist sources use code as described below:
wfLoadExtension( 'TitleBlacklist' );
$wgTitleBlacklistSources = [
[
'type' => 'localpage',
'src' => 'MediaWiki:Titleblacklist'
],
[
'type' => 'url',
'src' => 'https://meta.wikimedia.org/w/index.php?title=Title_blacklist&action=raw'
],
[
'type' => 'file',
'src' => '/home/wikipedia/blacklists/titles',
]
];
Siehe task T113864 für weitere Informationen.
Verwendung
Blockliste
The title blacklist is found on the MediaWiki:Titleblacklist page.
This page consists of regular expressions, each on a separate line. Each of them forbids the creation of pages whose titles match it. Zum Beispiel:
Foo <autoconfirmed|noedit|errmsg=blacklisted-testpage> # This page name is not allowed [Bb]ar # No one should create article about it .*pandora.* # This word is not allowed in any part of a page name
Each entry may also contain optional attributes, enclosed in <>
and separated with |
.
- autoconfirmed - also allows autoconfirmed users to perform such actions
- casesensitive - do not ignore case when checking title for being blacklisted
- noedit - also forbid editing the page (if it already exists)
- moveonly - forbid moves but allow ordinary creation (rev:35163)
- newaccountonly - forbid creation of matching usernames, but allow page creation (rev:38977)
- reupload - allow reuploads of existing blacklisted files (rev:33656)
- errmsg - the name of the message that should be displayed instead of standard
If the AntiSpoof extension is installed, you can also use the <antispoof>
attribute.
What is referred to here as regular expressions are not proper regular expressions, but rather subpatterns that are inserted into a hard-coded regular expression. i.e. the subpattern Foo from above would create a regular expression like /^Foo$/usi.
Underscores ("_
") in regular expressions will be converted to spaces by the extension, because titles are matched against its text form ("Page title" instead of "Page_title").
Whitelist
There is also a whitelist at MediaWiki:Titlewhitelist.
The blacklist is applied first, then the whitelist.
So user input that matches an entry on the blacklist is blocked, except if it matches an entry on the whitelist.
You don't have to configure anything in LocalSettings.php
in order to use the whitelist.
Some of the optional attributes listed above, for the blacklist, also work for the whitelist, e.g. casesensitive.
Anpassung
- Warnmeldungen
When an attempt to create a page is blocked due to a blacklisted title, a warning message is shown to the user. This can be customized via following system messages defined in the namespace Mediawiki:
- MediaWiki:Titleblacklist-forbidden-edit — for page creation and editing,
- MediaWiki:Titleblacklist-forbidden-move — für Seitenverschiebungen,
- MediaWiki:Titleblacklist-forbidden-upload — für Bild-Uploads,
- MediaWiki:Titleblacklist-forbidden-new-account — für neue Accounts.
Custom messages can be defined by using the errmsg
attribute.
Example: Using TitleBlacklist to control user account creation
Conceptual overview
The username for new accounts will be regarded by this extension differently to the way it regards new articles.
This extension will prepend "User:" (or its localized equivalent) to the string that a user enters at Username
on the create account page.
So when this extension is performing matches with your Regex's, as found on MediaWiki:Titleblacklist or MediaWiki:Titlewhitelist, it will match against "User:" + <userinput>.
For example, imagine you want to block "jill" as a new user. Imagine you had a blacklist regex "jill.* <newaccountonly>" and a user enters "jill" as the username on the create account page. This will pass as the comparison this extension will make will be between "jill.*" (the regex) and "User:jill" (the constructed input string). These don't match and so "jill" is allowed (and you probably didn't intend this). To effect the intended block use a regex like ".*jill.* <newaccountonly>" or "User:jill.* <newaccountonly>" on MediaWiki:Titleblacklist.
If you want to block all users except for all those that do match a regex then block all users in MediaWiki:Titleblacklist and write the permissible regex in the MediaWiki:Titlewhitelist.
How to
If you would like to force all usernames, during account creation, to consist of exactly two names, space separated, with each name capitalized then do the following:
1. Installiere TitleBlacklist
2. Füge folgendes zu deiner LocalSettings.php hinzu
wfLoadExtension( 'TitleBlacklist' );
$wgGroupPermissions['sysop']['tboverride'] = false;
$wgTitleBlacklistSources = [
[
'type' => 'localpage',
'src' => 'MediaWiki:Titleblacklist'
]
];
3. In https://www.example.com/mywiki/MediaWiki:Titleblacklist füge hinzu
# Block all user accounts, and only permit those that match the MediaWiki:Titlewhitelistregex
.* <newaccountonly>
4. In https://www.example.com/mywiki/MediaWiki:Titlewhitelist füge hinzu
# Only allow two names, separated by a space, with each name capitalized, e.g. "Fred Mew" OK, "Fred mew" fails, "Fredmew" fails.
# Depends on .* <newaccountonly> in blacklist
User:[A-Z][a-z]+\s[A-Z][a-z]+ <casesensitive>
5. In https://www.example.com/mywiki/MediaWiki:Titleblacklist-forbidden-new-account edit
The user name "$2" has been blocked from creation. It matches the following blacklist entry: <code>$1</code>. Please use a real name for the user name. User names need to be comprised of two names separated by a space. Each name must be capitalized. z.B.: * "Mary Smith". OK. * "MarySmith". Ungültig. * "Mary smith". Ungültig. * "marysmith". Ungültig.
User name creation (and article creation) blocking rules are controlled by MediaWiki:Titleblacklist and MediaWiki:Titlewhitelist. This message can be customized at MediaWiki:Titleblacklist-forbidden-new-account.
Testing for matches
The API module action=titleblacklist can be used to test a title and action (e.g. edit, create, new-account) against the blacklist.
Users with the 'tboverride' right should be sure to supply the tbnooverride
parameter.
For example, if the blacklist contained the filter:
.*(.)\1{10}.* <newaccountonly|errmsg=titleblacklist-forbidden-new-account-invalid> # Disallows eleven or more of the same character repeated in usernames
you could use an API request like
Ergebnis |
---|
{
"titleblacklist": {
"result": "blacklisted",
"reason": "<table class=\"plainlinks fmbox\nfmbox-system \" style=\"\" role=\"presentation\" dir=\"ltr\">\n<tr>\n<td class=\"mbox-image\">\n [[File:Imbox notice.png|40x40px|link=|alt=]]</td>\n<td class=\"mbox-text\" style=\"\"> The user name \"AAAAAAAAAAA\" [[Mediawiki talk:Titleblacklist|has been blocklisted]] from creation. </td>\n\n</tr>\n</table>",
"message": "titleblacklist-forbidden-new-account-invalid",
"line": ".*(.)\1{10}.* <newaccountonly|errmsg=titleblacklist-forbidden-new-account-invalid> # Disallows eleven or more of the same character repeated in usernames"
}
}
|
If Scribunto is installed, TitleBlacklist allows for testing if particular titles and actions will match an entry in the blacklist using the mw.ext.TitleBlacklist.test
function.
If a match is found, the details for the matched entry are returned.
For example, if the blacklist contained the filter:
.*(.)\1{10}.* <newaccountonly|errmsg=titleblacklist-forbidden-new-account-invalid> # Disallows eleven or more of the same character repeated in usernames
running the function:
mw.ext.TitleBlacklist.test("new-account", "AAAAAAAAAAA")
would return the following table containing details about the matched entry:
{
custommessage = "titleblacklist-forbidden-new-account-invalid",
message = "titleblacklist-forbidden-new-account-invalid",
params = {
errmsg = "titleblacklist-forbidden-new-account-invalid",
newaccountonly = true
},
raw = " .*(.)\1{10}.* <newaccountonly|errmsg=titleblacklist-forbidden-new-account-invalid> # Disallows eleven or more of the same character repeated in usernames",
regex = ".*(.)\1{10}.*",
version = 3
}
Clearing the cache
The contents of the blacklists are cached. Changes in blacklists configured at a URL or a file on the server are not applied immediately. To force clearing the cache, edit and save the page MediaWiki:Titleblacklist (even if you don't change anything). It doesn't matter if it's configured as a blacklist or not. See includes/Hooks.php.
Resources on regular expressions
- Brief Introduction to Regular Expressions
- The 30 Minute Regular Expression Tutorial
- PHP: PCRE regex syntax, the syntax of regular expressions used by PHP and therefore this extension
Siehe auch
Diese Erweiterung wird in einem oder mehreren Wikis von Wikimedia verwendet. Das bedeutet mit hoher Wahrscheinlichkeit, dass die Erweiterung stabil ist und gut genug funktioniert, um auf solch häufig besuchten Webseiten benutzt zu werden. Suche nach dem Erweiterungs-Namen in den Wikimedia CommonSettings.php und den InitialiseSettings.php-Konfigurations-Dateien, um nachzusehen, wo es installiert ist. Eine vollständige Liste der installierten Erweiterungen in einem bestimmten Wiki wird auf Special:Version im Wiki generiert und angezeigt. |
Diese Erweiterung ist in den folgenden Softwarepaketen enthalten und/oder wird von den folgenden Wiki-Farmen, bzw. Wiki-Hostern verwendet: Dies ist keine maßgebliche Liste. Softwarepakete und/oder Wiki-Farmen, bzw. Wiki-Hoster nutzen diese Erweiterung ggf., obwohl sie nicht in dieser Liste enthalten sind. Prüfe daher stets die Nutzung im verwendeten Softwarepaket und/oder bei der Wiki-Farm, bzw. dem Wiki-Hoster. |