Installation dans ce projet modifier

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

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 modifier

  • 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

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 modifier

Actions possibles modifier

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 modifier

Journalisation modifier

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

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

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

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

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 modifier

Interdiction de l'accès automatique à un statut modifier

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 modifier

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 modifier

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

Actions restreintes modifier

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 modifier

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

Visualisation publique des filtres modifier

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 modifier

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, autocreateaccount, delete
upload, stashupload, new-post (flow), new-reply (flow), etc.
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
page_title Titre de la page (sans l'espace de nom, mais avec la liste de sous-pages)
page_prefixedtitle Titre complet de la page
page_namespace Espace de nom de la page
page_id Numéro d'identification de la page
page_restrictions_edit Niveau de protection en modification de la page
page_restrictions_move Niveau de protection en renommage de la page
page_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
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_title Titre de la page d'origine
moved_from_prefixedtitle Titre complet de la page d'origine
moved_to_id 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_title Titre de la page de destination
moved_to_prefixedtitle Titre complet de la page de destination

Expressions rationnelles modifier

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 modifier

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
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 modifier

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 modifier

La boîte d'édition des filtres peut être personnalisée. Voir Aide:AbuseFilter/Interface.

Notes et références modifier

  1. Historique des contributions de Salebot, première page
  2. « Configuration »
  3. phab:T309609
  4. 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 modifier