Installation dans ce projet
Une fois l'extension installée en mars 2010, la mise au point des filtres et leur maintenance doivent se déployer progressivement sur le reste de l'année. Voir la liste des filtres et AbuseFilter/Premiers pas pour l'état des lieux ou encore les pages du modèle navigation filtres.
Différences entre AbuseFilter et Salebot
Utilisateur:Salebot est un robot, c'est-à-dire un compte contrôlé par un programme informatique écrit par Utilisateur:Gribeco. Salebot assure la protection des contenus de Wikipédia en révoquant les modifications récentes qu'il considère comme suspectes suivant un ensemble de critères ; il avertit les utilisateurs révoqués et inscrit dans un journal chacune de ses actions. Dans une très large mesure, les rôles et la façon de fonctionner de AbuseFilter et de Salebot sont donc similaires. Il existe néanmoins plusieurs différences.
Avantages de Salebot :
- c'est un programme « intelligent », c'est-à-dire qu'il fait évoluer ses règles en fonction du comportement de l'ensemble des utilisateurs. Par exemple, Salebot modifie son comportement si un utilisateur a déjà été révoqué par un autre ou au contraire si un utilisateur voit ses contributions marquées comme relues (voir Aide:Patrouille) ;
- Salebot fonctionne depuis octobre 2007[1] et possède un ensemble de règles très développé ;
- N'importe quel contributeur peut annuler une action de Salebot, que celui-ci se soit trompé ou non.
Avantages de AbuseFilter :
- c'est une extension de MediaWiki, logiciel qui fait fonctionner Wikipédia : a priori, si Wikipédia fonctionne, AbuseFilter fonctionne, il y a peu de risques de panne ;
- AbuseFilter peut afficher un message explicatif, une aide ou un avertissement, au-dessus de la fenêtre d'édition et avant la publication de la modification : cela permet d'aider ou de prévenir les nouveaux contributeurs qui feraient une erreur ;
- AbuseFilter peut interdire une modification avant la publication : cela évite de voir l'historique pollué par un vandalisme et par la révocation de ce vandalisme ; cela décourage le vandale dont le vandalisme n'est jamais mis en ligne ;
- AbuseFilter peut empêcher la création ou le renommage d'une page ;
- AbuseFilter peut agir sur le statut des utilisateurs ou bloquer des comptes vandales (cette fonctionnalité n'est pas activée sur la Wikipédia francophone) ;
- AbuseFilter peut filtrer à partir du résumé de modification (par exemple pour une contribution correcte mais avec une insulte en commentaire).
Exemples de filtre
- baliser une modification en cas de gros ajout par un débutant ;
- baliser une modification qui supprime une référence ou une note ;
- afficher un message d'aide ou d'avertissement au-dessus de la fenêtre d'édition si un utilisateur insère ~~~~ dans un article ;
- interdire un blanchiment d'article par une IP ;
- interdire l'ajout de trois liens externes à la fois par un utilisateur ayant moins de 3 mois et 4 jours d'ancienneté et moins de 173 modifications ;
- empêcher de créer un compte utilisateur dont le nom comprend « Sarkozy » ;
- bloquer un utilisateur qui renomme une page en ajoutant « on wheels » au nom (cette fonctionnalité n'est pas activée sur la Wikipédia francophone) ;
- bloquer un utilisateur qui ajoute des liens externes sur au moins 11 pages différentes en moins de 28 minutes (cette fonctionnalité n'est pas activée sur la Wikipédia francophone) ;
- envoyer un message de félicitations à un utilisateur qui vient de faire sa 1000e modification ;
- empêcher un renommage de page utilisateur par un compte ayant moins de 3 semaines d'ancienneté.
Groupes d'utilisateurs
Remarque préalable : lors de l'installation de AbuseFilter, il est possible de créer un nouveau groupe d'utilisateurs appelé abusefilter
. Ceci permet d'affecter des droits utilisateurs autrement qu'avec les groupes utilisateurs classiques (administrateur, utilisateur enregistré, etc.). Ce groupe a été créé par la version anglophone mais pas par la germanophone.
La création d'un groupe abusefilter a été décidée par la prise de décision de janvier 2010 qui a approuvé l'installation de l'extension sur Wikipédia fr :
Droit | Groupe | Description |
---|---|---|
abusefilter-log | Tous | Permet de voir le journal d'AbuseFilter (filtre déclenché, page, modification et utilisateur concernés). Voir le journal. |
abusefilter-log-detail | Autoconfirmé | Permet de voir en détail chaque entrée du journal d'AbuseFilter. Voir un détail du journal. |
abusefilter-log-private | Autoconfirmé | Voir les entrées du journal des filtres anti-erreur marqués comme privés. |
abusefilter-hide-log | Masqueur de modifications | Masquer des entrées dans le journal anti-erreur |
abusefilter-hidden-log | Masqueur de modifications | Voir les entrées masquées du journal anti-erreur |
abusefilter-modify | Modificateur de filtre anti-erreur | Permet de créer et de modifier des filtres. |
abusefilter-modify-restricted | Administrateur | Permet de créer et de modifier des filtres d'« action restreinte » (par défaut : bloquer ou retirer des droits). |
abusefilter-view | Autoconfirmé | Permet de voir le code source de tout filtre paramétré comme public. Exemple de filtre public |
abusefilter-view-private | Modificateur de filtre anti-erreur | Permet de voir le code source de tout filtre paramétré comme privé. Exemple de filtre privé. |
abusefilter-revert | Administrateur | Permet de révoquer toutes les modifications effectuées par un filtre. |
abusefilter-privatedetails | Vérificateur d’utilisateurs | Permet de voir les IP des contributeurs dans le journal d'AbuseFilter. |
abusefilter-privatedetails-log | Vérificateur d’utilisateurs | Permet de voir le journal des accès aux IP dans le journal d'AbuseFilter. |
- Pour connaître les droits utilisateur choisis par les autres wikis de la Wikimedia Foundation ayant installé AbuseFilter, voir meta:AbuseFilter
- Pour connaître les différents groupes utilisateurs et leurs droits actuels sur fr.wikidepia.org, voir Aide:Statuts des utilisateurs et Spécial:Liste des droits de groupe.
- Actions restreintes
- Parmi les actions possibles d'AbuseFilter, certaines peuvent être qualifiées de restreintes, parce qu'elles ne peuvent être introduites dans le code-source d'un filtre que par un groupe d'utilisateurs spécifique.
L'existence d'un groupe d'utilisateurs abusefilter permet de faire abstraction des autres statuts - surtout celui d'administrateur - pour l'attribution de certains droits (comme la création de filtres par exemple).
La Liste des modificateurs de filtre a été ouverte le jour de l'installation de l'extension le 16 mars 2010.
Le but de ce groupe est de créer, adapter et gérer les filtres de l'extension, en fonction :
- des besoins exprimés par l'ensemble du projet ;
- des demandes et remarques provenant d'utilisateurs ne faisant pas partie du groupe ;
- des difficultés éventuelles, quelles qu'elles soient.
Le groupe veille également à sa bonne gestion interne, à l'accueil de nouveaux membres et à la maintenance de toutes les pages utiles au fonctionnement de l'extension AbuseFilter.
Options de configuration d'AbuseFilter
Option | Valeurs par défaut | Description |
---|---|---|
Actions que peut entreprendre AbuseFilter sur le wiki | journaliser / throttle / avertir / interdire / interdire l'autopromotion / bloquer / bloquer une plage d'adresses IP / retirer des droits / marquer | Chacune de ces actions peut être activée ou désactivée sur un wiki donné |
AbuseFilterConditionLimit | 2000[3] | Nombre limite de conditions qui peuvent être combinées dans un même filtre. Cette limite évite de créer des filtres dont le temps d'exécution serait démesuré et créerait une gêne au bon fonctionnement de Wikipédia. |
Pourcentage d'arrêt d'urgence des filtres | 0.05 | Désactive les filtres changés ou créés récemment si trop de modifications correspondent aux critères du filtre ; la valeur est le % des modifications récentes qui correspondent aux critères du filtre |
Compteur d'arrêt d'urgence | 2 | Désactive les filtres changés ou créés récemment si trop de modifications correspondent aux critères du filtre ; la valeur est le nombre des modifications récentes qui correspondent aux critères du filtre |
Délai d'arrêt d'urgence | 86 400 | Désactive les filtres changés ou créés récemment si trop de modifications correspondent aux critères du filtre ; la valeur est la durée en secondes retenue par AbuseFilter pour calculer le pourcentage et le compteur des modifications récentes qui correspondent aux critères du filtre (voir paramètres précédents) |
$wgAbuseFilterParserClass | 'AbuseFilterParser'
|
Name of AbuseFilter's parser class. |
$wgAbuseFilterStyleVersion | Like $wgStyleVersion, but only for this extension. Developers should bump this number every time they change any of the .css/.js files. | |
Actions restreintes | bloquer / retirer des droits | Les utilisateurs doivent avoir des droits spécifiques pour modifier ou créer des filtres qui engendrent ces actions |
$wgAbuseFilterUDPPrefix | 'abusefilter:'
|
Like $wgRC2UDPPrefix, but only for AbuseFilter? |
$wgAbuseFilterUDPAddress | null
|
Like $wgRC2UDPAddress, but only for AbuseFilter? |
$wgAbuseFilterUDPPort | null
|
Like $wgRC2UDPPort, but only for AbuseFilter? |
$wgAbuseFilterCentralDB | null
|
Nom de la base de données où seront stockés les filtres globaux contrant les abus. |
$wgAbuseFilterIsCentral | false
|
Mettre à true si des filtres globaux sont utilisés.
|
Durée des blocages de AbuseFilter | indéfini
|
La durée de blocage peut être modifiée sur chaque wiki mais est ensuite la même pour tous les blocages entrepris par AbuseFilter |
Actions possibles
AbuseFilter est capable d'effectuer les actions présentées ci-dessous, sous réserve que l'extension soit configurée avec les paramètres par défaut, une ou plusieurs pouvant être inutiles ou non souhaitées sur un wiki.
Ces actions sont sélectionnées, combinées et paramétrées lors de la mise au point de chaque filtre en fonction de son but.
Il est également possible de créer un groupe d'actions restreintes, c'est-à-dire d'actions que peut effectuer AbuseFilter mais qui ne peuvent être introduites dans la définition d'un filtre que par un groupe restreint d'utilisateurs.
Actions activées sur la Wikipédia francophone
Journalisation
Toutes les modifications qui déclenchent un filtre (c'est-à-dire qui correspondent à un ensemble de critères) sont inscrites dans un journal, même si aucune action n'est entreprise par AbuseFilter suite au déclenchement du filtre. Cela permet le contrôle a posteriori des actions mais rend également possible de tester la pertinence des filtres avant leur mise en application concrète.
Il existe deux niveaux de journalisation (simple et détaillé).
- date, compte utilisateur, filtre déclenché, action déclenchante (modifier, renommer, etc.), page concernée. Ce journal est visible par tous les utilisateurs ayant les droits « Voir le journal » (
abusefilter-log
). Voir par exemple le journal de la Wikipédia en anglais : en:Special:AbuseLog - ensemble des paramètres de la modification qui a déclenché le filtre, appelés « détails du journal » ; les détails du journal sont visibles par tous les utilisateurs ayant les droits « Voir les détails du journal de AbuseFilter » (
abusefilter-log-detail
). Voir par exemple une entrée détaillée du journal de la Wikipédia en anglais : en:Special:AbuseLog&details.
Par ailleurs, totalement indépendamment de cette journalisation, chaque filtre possède un paramètre qui définit si son code-source (règles de fonctionnement) est public ou privé : voir Publicité des filtres.
Marquage (balisage)
La modification est indiquée avec une marque (un petit message) qui est visible sur les modifications récentes, la liste des contributions de l'utilisateur, les journaux, les nouvelles pages, l'historique, etc. Il est possible de définir le style et la couleur des marques. Cela permet de laisser à la communauté la charge de vérifier elle-même si la modification nécessite une action.
- Voir par exemple les balises utilisées sur la Wikipédia en anglais : en:Special:Tags.
Avertissement
L'utilisateur est averti qu'une partie de sa modification a déclenché un filtre et il lui est donné la possibilité de la corriger avant de retenter de publier. Un message spécifique peut être défini pour chaque filtre.
Seuils de déclenchement (throttling)
Il s'agit de déclencher une action (avertir, marquer, etc.) de la part de AbuseFilter lorsque des filtres sont déclenchés un certain nombre de fois pendant une durée donnée. C'est un effet de seuil qui permet de supposer la bonne foi ou de donner le droit à l'erreur, mais d'empêcher les modifications ou actions erronées de façon répétée.
Le seuil peut être défini par exemple par type de contributeurs, par page ou pour le site en entier. On peut ainsi demander à AbuseFilter une action A si le filtre F est déclenché X fois pendant la durée T par le compte utilisateur C sur la page P.
La liste des paramètres pour la définition des seuils :
- ip — adresse IP
- user — compte utilisateur
- range — plage d'adresses d'IP (/16).
- page — Page
- site — le site entier
- creationdate — date de création du compte
- editcount — nombre d'éditions — (astuce permettant de déterminer s'il s'agit du même utilisateur ou non)
Interdiction
Interdit la publication de la modification qui a déclenché le filtre, et affiche un message d'erreur explicatif. Un message différent peut être défini pour chaque filtre.
Actions non activées sur la Wikipédia francophone
Interdiction de l'accès automatique à un statut
Quatre jours après sa création, un compte utilisateur accède automatiquement au statut autoconfirmed : il n'a plus à remplir le captcha, n'est plus forcé de prévisualiser avant de publier et peut renommer des pages. Suite au déclenchement d'un filtre, l'utilisateur peut se voir interdire l'accès à ce statut autoconfirmed
.
Blocage
L'utilisateur est bloqué avec un message d'explication. La durée du blocage est choisie une fois, pour tous les filtres, lors de l'installation de l'extension.
Retrait des statuts
L'utilisateur se voit instantanément retirer ses statuts privilégiés (administrateur, bureaucrate, etc.)
Actions restreintes
Il est possible, si cette option est activée, de créer à partir de la liste précédente un ensemble d'actions restreintes qui ne peuvent être introduites dans la définition d'un filtre que par un groupe précis d'utilisateurs : ceux qui ont les droits « Modifier/créer des filtres de AbuseFilter engendrant une action restreinte » (abusefilter-modify-restricted). Si l'option est activée, cette liste restreinte contient par défaut : bloquer et retirer des droits.
Blocage d'une plage d'adresses
Par exemple, toute une plage d'adresses IP /16 est bloquée pendant 24 heures.
Visualisation publique des filtres
Lors de sa création ou de ses modifications ultérieures, le code et les paramètres d'un filtre peuvent être choisis comme publics ou privés. Il ne s'agit pas d'une option technique de l'extension, mais d'un choix du créateur/modificateur du filtre qui est effectué localement pour chaque filtre en cochant ou décochant la case « Cacher les détails de ce filtre à la vue publique ».
- Filtre à détails publics : le code complet et les paramètres du filtre peuvent être vus par les groupes ayant les droits
abusefilter-view
; - Filtre à détails privés : l'examen de l'intégralité du filtre est réservé aux groupes ayant les droits de modification du filtre (
abusefilter-modify
) ou ayant le droit spécifique concernant les filtres à détails privés (abusefilter-view-private)
.
Variables utilisables dans les filtres
La liste des variables peut être consultée sur mediawikiwiki:Extension:AbuseFilter/Rules format.
Expressions rationnelles
Les filtres peuvent contenir des expressions rationnelles, avec une syntaxe glob (en utilisant variable like "<motif glob>"
) PCRE (en utilisant variable regex "<expression rationnelle PCRE>"
ou son équivalent variable rlike "<expression rationnelle PCRE>"
).
Manuel de PCRE et Regular Expressions for Perl.
Opérateur | Exemple |
---|---|
==
|
article_namespace == 0
|
< <=
|
article_namespace >= 0
|
contains
|
user_name contains "Vandale"
|
like
|
user_name like "ab?d*"
|
rlike
|
user_name rlike "^ab.d.*$"
|
Fonction | |
length
|
length("test") → 4
|
lcase
|
lcase("VANdaLe") → "vandale"
|
count
|
count("t", "test") → 2
|
norm
|
norm("!!ω..ɨ..ƙ..ɩ..ᑭᑭ..Ɛ.Ɖ@@l%%α!!") → "W1K1PED1A"
|
Exemples de filtres
- Redirection vide
new_wikitext contains ("#Redirect \[\[\]\]")
- Grosses tables pleines de <td> qui font planter Internet Explorer
edit_delta >= 7500 & count('<td',lcase(ADDED_LINES)) >= 300
- Répétition d'un caractère 30 fois
added_lines like '.{30,}'
- Autobiographies de jeunes chanteurs avec une adresse de courriel dans l'article
user_editcount < 300 & ( user_name = article_prefixedtext | ( lcase(new_text) contains 'né' & new_text regex '19[89]\d' & ( rmwhitespace(new_text) like (rmwhitespace(article_text)+'*') | lcase(new_text) contains 'chanteur' ) ) | lcase(new_text) regex '\S+\@(hotmail|gmail|yahoo)' & article_namespace != '' )
page_title == "Google|Okrut" & user_editcount < 50 & user_name rlike "^(189\.70\.|^193\.200\.)"
- Renommage de la page utilisateur ou de la page de discussion d'une autre personne
action=="move" & (moved_from_namespace==2 | moved_from_namespace==3) & !("/" in moved_from_title) & (user_name != moved_from_title) & !("sysop" in user_groups)
- Renommage d'une page utilisateur (en autorisant les renommages vers l'espace de nom principal pour ceux qui ont un certain nombre d'éditions, par exemple pour placer un brouillon en sous-page personnelle vers l'espace encyclopédique)
action == "move" & !(moved_to_text contains "/") & moved_from_namespace = 2 & moved_to_namespace = 0 & user_editcount <= 100
Outils de débogage
La page Spécial:Filtre antiabus/test permet de vérifier la partie détection d'un filtre[4].
Il est possible d'y construire le filtre ou d'importer un filtre déjà existant.
Le test concerne au plus 100 modifications : il est possible de se limiter à un contributeur, une plage de temps et un article.
Pour étudier a posteriori une modification déjà filtrée, utiliser le lien « examiner » présent sur chaque entrée du journal des filtrages.
Personnalisation de la boîte d'édition
La boîte d'édition des filtres peut être personnalisée. Voir Aide:AbuseFilter/Interface.
Notes et références
- Historique des contributions de Salebot, première page
- « Configuration »
- phab:T309609
- Certains examens d'actions passées échoueront (ils n'identifient pas certaines révisions comme positives alors qu'elles le sont) parce que le filtre utilise des variables construites pour d'autres extensions (Flow, Tor, MobileApp, etc.). Voir T102944.
Voir aussi
- (en) Description de l'extension AbuseFilter
- (en) Format des règles
- (en) Type de mesures que peut prendre AbuseFilter
- Liste des wikis de la WMF ayant activé AbuseFilter avec leurs options
- Liste des demandes concernant AbuseFilter sur Bugzilla (uniquement technique)
- (en) L'aide disponible sur la Wikipedia anglophone