Extension:TitleBlacklist
TitleBlacklist État de la version : stable |
|
---|---|
Implémentation | Droits utilisateur , API |
Description | Bloque la création des pages qui correspondent à l'expression régulière d'une liste noire |
Auteur(s) | Victor Vasiliev (VasilievVVdiscussion) |
Dernière version | 1.5.0 (Mises à jour continues) |
Politique de compatibilité | Versions ponctuelles alignées avec MediaWiki. Le master n'est pas compatible arrière. |
MediaWiki | 1.35+ |
PHP | 7.0+ |
Licence | Licence publique générale GNU v2.0 ou supérieur |
Téléchargement | |
|
|
|
|
Téléchargements trimestriels | 54 (Ranked 82nd) |
Traduire l’extension TitleBlacklist sur translatewiki.net si elle y est disponible | |
Problèmes | Tâches ouvertes · Signaler un bogue |
L'extension TitleBlacklist permet aux administrateurs de wiki de bloquer la création, le déplacement et le téléchargement de pages, dont le titre correspond à une ou plusieurs expressions régulières, ainsi que de bloquer la création des comptes dont les noms d'utilisateur correspondent.
Installation
- Téléchargez et placez le(s) fichier(s) dans un répertoire appelé
TitleBlacklist
dans votre dossierextensions/
.
Les développeurs et les contributeurs au code doivent à la place installer l'extension à partir de Git en utilisant:cd extensions/
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/TitleBlacklist - Ajoutez le code suivant à la fin de votre fichier LocalSettings.php :
wfLoadExtension( 'TitleBlacklist' );
- Configurez les sources des listes de blocage (voir ci-dessous)
- Fait – Accédez à Special:Version sur votre wiki pour vérifier que l'extension a bien été installée.
$wgGroupPermissions['sysop']['tboverride'] = false;
.Configuration
$wgTitleBlacklistSources
- Tableau des sources des titres en liste noire.
- Doit être au format tableau (nom => description de la source). Tableau vide par défaut.
$wgTitleBlacklistUsernameSources
- Définit les sources qui peuvent fonctionner comme un filtre sur les noms d'utilisateurs.
- «
*
» est pour tous ;false
désactive tout. - Si vous voulez le limiter à des sources particulières, utilisez array (nom de source 1, nom de source 2). Cela peut être utile lorsque vous avez partagé le système de création de compte afin d'éviter la fragmentation de la liste noire.
$wgTitleBlacklistLogHits
- Lorsque la valeur est
true
, les tentatives de création de comptes locaux correspondant aux listes de blocage sont consignées dans Special:Log/titleblacklist. Par défautfalse
. Notez que même désactivé, le journal sera toujours visible pour les groupes d'utilisateurs avec le droittitleblacklistlog
. $wgTitleBlacklistCaching
- ?
$wgTitleBlacklistBlockAutoAccountCreation
- Bloque également les comptes créés automatiquement qui correspondent aux listes de blocage. Par défaut
true
.
- Plusieurs sources de listes de blocage
La liste des blocages du titre peut être collectée à partir de plusieurs sources en dehors du message local. Pour configurer les sources de liste de blocage, utilisez le code suivant :
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',
]
];
Voir tâche T113864 pour plus d'informations.
Utilisation
Liste de Blocage
La liste des titres bloqués se trouve sur la page MediaWiki:Titleblacklist.
Cette page se compose d'expressions régulières, chacune figurant sur une ligne distincte. Chacune d'elles interdit la création de pages dont le titre vérifie la correspondance.
Chaque entrée peut également contenir des attributs facultatifs, inclus dans $1 et séparés par $2.
The list of attributes must be enclosed in <>
and separated with |
.
The possible attributes are:
autoconfirmed
- allow autoconfirmed users to bypass the restrictioncasesensitive
- only apply the restriction when the letter case exactly matches the entrynoedit
- interdire aussi la modification de la page (quand elle existe déjà)moveonly
- only forbid page moves to matching titles, allowing ordinary page creationsnewaccountonly
- only forbid matching account creations, allowing other actionsreupload
- allow uploading new versions of matching files that already existerrmsg=X
- when an action is prevented, display the error message with the nameX
instead of the standard message
Si l'extension AntiSpoof est installée, vous pouvez également utiliser l'attribut antispoof
.
Par exemple :
Foo <autoconfirmed|noedit|errmsg=blacklisted-testpage> # Ce nom de page n'est pas autorisé. [Bb]ar # Personne ne devrait créer d'article à son propos .*pandora.* # Ce mot n'est pas autorisé quelque soit la partie du nom de la page
Ce que l'on appelle ici des expressions régulières ne sont pas des expressions régulières à proprement parler mais plutôt des sous-modèles insérés dans une expression régulière codée en dur. Par exemple le sous-motif Foo ci-dessus peut créer une expression régulière comme /^Foo$/usi.
Les traits de soulignement (« _
») dans les expressions régulières seront convertis en espaces par l'extension, car les titres sont comparé sous leur format textuel (« Page title » au lieu de « Page_title »).
Liste sécurisée
Il y a aussi une liste de sécurité sur MediaWiki:Titlewhitelist.
La liste de blocage est appliquée en premier, puis la liste de sécurité.
Ainsi, les entrées utilisateur qui correspondent à une entrée de la liste de blocage sont bloquées, sauf si elles correspondent à une entrée de la liste de sécurité.
Vous n'avez pas à configurer quoi que ce soit dans LocalSettings.php
pour utiliser la liste de sécurité.
Certains des attributs facultatifs énumérés ci-dessus, pour la liste de blocage, fonctionnent également pour la liste de sécurité, par exemple casesensitive.
Personnalisation
- Messages d'avertissement
Lorsque la création de page est bloquée parce que le titre figure dans la liste de blocage, un message d'avertissement est affiché à l'utilisateur. Il peut être adapté via les messages système suivants définis dans l'espace de noms Mediawiki: :
- MediaWiki:Titleblacklist-forbidden-edit — pour les créations et modifications de pages,
- MediaWiki:Titleblacklist-forbidden-move — pour le renommage des pages,
- MediaWiki:Titleblacklist-forbidden-upload — pour le téléversement d'images,
- MediaWiki:Titleblacklist-forbidden-new-account — pour les nouveaux comptes.
Les messages personnalisés peuvent être définis à l'aide de l'attribut errmsg
.
Exemple : utilisation de TitleBlacklist pour contrôler la création de compte utilisateur
Présentation conceptuelle
Le nom d'utilisateur pour les nouveaux comptes sera considéré par cette extension différemment de la façon dont elle considère les nouveaux articles.
Cette extension va ajouter "User :" (ou son équivalent localisé) à la chaîne qu'un utilisateur saisit dans Username
sur la page de création du compte.
Ainsi, lorsque cette extension effectue les correspondances avec votre expression régulière, comme trouvé sur MediaWiki:Titleblacklist ou MediaWiki:Titlewhitelist, elle détectera "User:" + <entrée utilisateur>.
Par exemple, imaginez que vous voulez bloquer "jill" en tant que nouvel utilisateur. Imaginez que vous disposiez d'une expression régulière dans la liste de blocage : "jill.* <newaccountonly>" et qu'un utilisateur entre "jill" comme nom d'utilisateur sur la page de création de compte. Cela passera car la comparaison que fera cette extension sera entre "jill.*" (l'expression régulière) et "User:jill" (la chaîne d'entrée construite). Ceux-ci ne correspondent pas et donc "jill" est autorisé (et vous n'aviez probablement pas l'intention d'obtenir cela). Pour appliquer le blocage voulu, utilisez une expression régulière telle que ".*jill.* <newaccountonly>" ou "User:jill.* <newaccountonly>" sur MediaWiki:Titleblacklist.
Si vous voulez bloquer tous les utilisateurs sauf ceux qui correspondent à une expression régulière, bloquez tous les utilisateurs dans MediaWiki:Titleblacklist et écrivez l'expression des autorisés dans le MediaWiki:Titlewhitelist.
Comment faire
Si vous souhaitez forcer que tous les noms d'utilisateur lors de la création du compte, se composent exactement de deux noms, séparés par une espace, avec chaque nom en majuscules, procédez comme suit :
1. Installez TitleBlacklist.
2. Ajoutez ce qui suit à vos LocalSettings.php
wfLoadExtension( 'TitleBlacklist' );
$wgGroupPermissions['sysop']['tboverride'] = false;
$wgTitleBlacklistSources = [
[
'type' => 'localpage',
'src' => 'MediaWiki:Titleblacklist'
]
];
3. Dans https://www.example.com/mywiki/MediaWiki:Titleblacklist ajouter
# Bloquer tous les comptes utilisateur, et n'autoriser que ceux qui correspondent à MediaWiki:Titlewhitelistregex
.* <newaccountonly>
4. Dans https://www.example.com/mywiki/MediaWiki:Titlewhitelist ajouter
# N'autorise que deux noms, séparés par une espace, dont chacun commence par une majuscule, comme « Fred Mew » OK, « Fred mew » échec, « Fredmew » échec.
# Dépend de .* <newaccountonly> dans la liste de blocage
User:[A-Z][a-z]+\s[A-Z][a-z]+ <casesensitive>
5. En https://www.example.com/mywiki/MediaWiki:Titleblacklist-forbidden-new-account edit
Le nom d'utilisateur « $2 » a été bloqué pour la création. Il vérifie l'entrée suivante dans la liste de blocage : <code>$1</code>. Veuillez utiliser un vrai nom pour le nom d'utilisateur. Les noms d'utilisateur doivent être formés de deux noms séparés par une espace. Chacun d'eux doit commencer par une majuscule. Par exemple : * "Mary Smith". OK. * "MarySmith". Non valide. * "Mary smith". Non valide. * "marysmith". Non valide.
Les règles de blocage de la création des noms d'utilisateurs (et de la création d'articles) sont contrôlées par MediaWiki:Titleblacklist et MediaWiki:Titlewhitelist. Ce message peut être personnalisé à MediaWiki:Titleblacklist-forbidden-new-account
Test des correspondances
Le module API action=titleblacklist peut être utilisé pour tester un titre et une action (par exemple, modifier, créer, nouveau compte) par rapport à la liste de blocage.
Les utilisateurs ayant le droit 'tboverride' doivent être sûrs de fournir le paramètre tbnooverride
.
Par exemple, si la liste de blocage contenait le filtre:
.*(.)\1{10}.* <newaccountonly|errmsg=titleblacklist-forbidden-new-account-invalid> # Détecte la répétition du même caractère onze fois ou plus dans les noms d'utilisateur
vous pouvez utiliser une requête API comme
Résultat |
---|
{
"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"
}
}
|
Si Scribunto est installé, cette extension permet de tester si des titres et des actions spécifiques correspondent à une entrée de la liste de blocage à l'aide de la fonction mw.ext.TitleBlacklist.test
.
Si une correspondance est trouvée, les détails de l'entrée correspondante sont renvoyés.
Par exemple, si la liste de blocage contenait le filtre :
.*(.)\1{10}.* <newaccountonly|errmsg=titleblacklist-forbidden-new-account-invalid> # Détecte la répétition du même caractère onze fois ou plus dans les noms d'utilisateur
exécution de la fonction :
mw.ext.TitleBlacklist.test("new-account", "AAAAAAAAAAA")
renverrait la table suivante contenant les détails de l'entrée correspondante :
{
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> # Détecte la répétition du même caractère onze fois ou plus dans les noms d'utilisateur",
regex = ".*(.)\1{10}.*",
version = 3
}
Purger le cache
Le contenu des listes de blocage est mis en cache. Les modifications faites sur le serveur à propos des listes de blocage sur une URL ou un fichier, ne sont pas appliquées immédiatement. Pour forcer le nettoyage du cache, modifiez et sauvegardez la page MediaWiki:Titleblacklist (même si vous n'y faites aucune modification). Cela n'a pas d'importance s'il est configuré comme liste de blocage ou pas. Voir includes/Hooks.php.
Ressources sur les expressions régulières
- Courte introduction sur les expressions régulières
- Tutoriel de 30 minutes sur les expressions régulières
- PHP : syntaxe des expressions régulières PCRE, la syntaxe des expressions régulières utilisées par PHP et donc par cette extension
Voir aussi
Cette extension est utilisée par au moins un des projets Wikimédia. Cela signifie probablement que l’extension est assez stable et fonctionnelle pour être utilisée sur des sites à fort trafic. Recherchez le nom de cette extension dans le CommonSettings.php de Wikimédia et dans le fichier de configuration InitialiseSettings.php pour situer les endroits où elle est installée. Une liste complète des extensions installées sur un Wiki donné peut être visualisée sur la page Special:Version de ce wiki. |
Cette extension est incluse dans les fermes de wikis ou les hôtes suivants et / ou les paquets : Cette liste ne fait pas autorité. Certaines fermes de wikis ou hôtes et / ou paquets peuvent contenir cette extension même s'ils ne sont pas listés ici. Vérifiez toujours cela avec votre ferme de wikis ou votre hôte ou votre paquet avant de confirmer. |