Aide:AbuseFilter

Une page de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
En résumé : AbuseFilter est une extension de MediaWiki, qui permet de mettre en place des actions automatiques en réponse à certains types de modifications. Elle peut servir en particulier à proposer une aide ou à éviter des erreurs de débutant ou des vandalismes grossiers. Ces actions sont gérées par des « filtres », des micro-programmes qui se déclenchent en fonction d'une ou plusieurs conditions. Toutes les actions sont inscrites dans un journal permettant de contrôler a posteriori le bon fonctionnement d'AbuseFilter et de ses filtres.
Demandes et discussions : Requêtes · Bulletin · Faux positifs · Comment créer un filtre ?
Pages techniques : Gestion des filtres · Journal · Conditions · Balises · Messages · Documentation


Installation dans ce projet[modifier | modifier le code]

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[modifier | modifier le code]

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 si celui-ci s'est trompé.

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[modifier | modifier le code]

  • 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[modifier | modifier le code]

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 par défaut Groupe sur fr.wikipedia.org Description
abusefilter-log utilisateurs utilisateurs Permet de voir le journal d'AbuseFilter (filtre déclenché, page, modification et utilisateur concernés).
Voir le journal.
abusefilter-log-detail administrateurs autoconfirmed Permet de voir en détail chaque entrée du journal d'AbuseFilter.
Voir un exemple de détail du journal.
abusefilter-modify administrateurs abusefilter Permet de créer et de modifier des filtres.
abusefilter-modify-restricted Non activé Non activé Permet de créer et de modifier des filtres d'« action restreinte » (par défaut : bloquer ou retirer des droits).
abusefilter-view utilisateurs autoconfirmed Permet de voir le code-source de tout filtre paramétré comme public.
Voir un exemple de filtre public sur en: et un exemple de filtre privé sur en:.
abusefilter-view-private Non activé Non activé Permet de voir le code-source de tout filtre paramétré comme privé.
abusefilter-revert Non activé abusefilter et administrateurs Permet de révoquer toutes les modifications effectuées par un filtre.
abusefilter-private Non activé Non activé Journalise les IP des contributeurs. Non compatible avec la politique de confidentialité de la Wikimedia Foundation.
abusefilter-private-view Non activé Non activé Permet de voir le journal des IP. Non compatible avec la politique de confidentialité de la Wikimedia Foundation.
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.

Le groupe abusefilter[modifier | modifier le code]

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[modifier | modifier le code]

Actions possibles[modifier | modifier le code]

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.

Journalisation[modifier | modifier le code]

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é).

  1. 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
  2. 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)[modifier | modifier le code]

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[modifier | modifier le code]

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)[modifier | modifier le code]

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[modifier | modifier le code]

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.

Interdiction de l'accès automatique à un statut[modifier | modifier le code]

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.

Cette fonctionnalité n'est pas activée sur la Wikipédia francophone.

Blocage[modifier | modifier le code]

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.

Cette fonctionnalité n'est pas activée sur la Wikipédia francophone.

Retrait des statuts[modifier | modifier le code]

L'utilisateur se voit instantanément retirer ses statuts privilégiés (administrateur, bureaucrate, etc.)

Cette fonctionnalité n'est pas activée sur la Wikipédia francophone.

Blocage d'une plage d'adresses[modifier | modifier le code]

Par exemple, toute une plage d'adresses IP /16 est bloquée pendant 24 heures.

Actions restreintes[modifier | modifier le code]

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.

Publicité des filtres[modifier | modifier le code]

Lors de sa création ou de ses modifications ultérieures, le code et les paramètres d'un filtre peuvent être choisis 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[modifier | modifier le code]

Ci-dessous sont listées les variables utilisables seules ou en combinaison pour filtrer les modifications. Toutes les combinaisons de variables sont possibles.

Variable d'action Signification Valeurs possibles
action Action effectuée (édition, renommage, création de compte, suppression) edit, move, createaccount, delete
tor_exit_node Si l'action a été effectuée depuis un nœud de sortie Tor
sans doute inutile, puisque les nœuds de sortie de Tor sont automatiquement bloqués par MediaWiki lui-même
0 si non, 1 si oui
timestamp Timestamp UNIX de l'action
Variable d'utilisateur Signification
accountname Nom du compte (à sa création)
user_name Pseudonyme de l'utilisateur
user_groups Groupes auxquels appartient l'utilisateur
user_age Ancienneté du compte utilisateur
user_editcount Compteur d'éditions de l'utilisateur
user_emailconfirm Date et heure de confirmation de l'adresse courriel de l'utilisateur
Variable de page Signification
article_text Titre de la page (sans l'espace de nom, mais avec la liste de sous-pages)
article_prefixedtext Titre complet de la page
article_namespace Espace de nom de la page
article_articleid Numéro d'identification de la page
article_restrictions_edit Niveau de protection en modification de la page
article_restrictions_move Niveau de protection en renommage de la page
article_recent_contributors Liste des dix derniers utilisateurs ayant modifié la page
Variable de contenu Signification
added_lines Contenu des lignes ajoutées
removed_lines Contenu des lignes supprimées
edit_diff Diff de la modification (tout ce qui a été ajouté ou retiré)
edit_delta Taille de la modification
new_size Taille de la page après modification
old_size Taille de la page avant modification
summary Commentaire d'édition
minor_edit Si la modification a été indiquée comme mineure
added_links Les liens externes ajoutés
removed_links Les liens externes enlevés
all_links Les liens externes présents après la modification
old_wikitext Wikicode de la page avant la modification
new_wikitext Wikicode du nouveau texte
new_text Nouveau texte de la page, sans syntaxe HTML,
après passage par le parser de MediaWiki
new_html Nouveau texte de la page en HTML
Variable de renommage Signification
moved_from_articleid ID de la page d'où part la redirection (la page créée avec l'ancien nom)
moved_from_namespace Espace de nom de la page d'origine
moved_from_text Titre de la page d'origine
moved_from_prefixedtext Titre complet de la page d'origine
moved_to_articleid ID de la page de destination (celle qui conserve l'historique mais change de nom)
moved_to_namespace Espace de nom de la page de destination
moved_to_text Titre de la page de destination
moved_to_prefixedtext Titre complet de la page de destination

Expressions rationnelles[modifier | modifier le code]

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

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[modifier | modifier le code]

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 != ''
)
Vandalisme spécifique par deux plages d'IP /16 sur les articles Google et Orkut 
((article_text == "Google") | (article_text == "Orkut"))
& ( (user_name rlike "^189.70.")|(user_name rlike "^193.200."))
& (user_editcount < 50)
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_text)
& (user_name != moved_from_text)
& !("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

Notes et références[modifier | modifier le code]

  1. Historique des contributions de Salebot, première page

Voir aussi[modifier | modifier le code]