Extension:AbuseFilter/fr

L’extension AbuseFilter (filtre anti-abus) permet aux utilisateurs privilégiés de positionner des contrôles spécifiques sur les actions des utilisateurs tels que les contributions et de créer des réactions automatiques pour certains comportements.

Par exemple, un filtre peut être créé pour empêcher que certains utilisateurs anonymes n'ajoutent des liens externes, ou pour bloquer un utilisateur qui supprime plus de 2000 caractères.

Configuration


Droits utilisateur
Une fois que vous avez installé l’extension, vous devez paramétrer les droits utilisateur dans "LocalSettings.php".

Par exemple, la configuration d’exemple suivante permet aux sysops de faire tout ce qu’ils veulent avec AbuseFilter, et tout le monde peut voir les journaux et les paramètres publics du filtre :

Paramètres


Limitation d'urgence
AbuseFilter est livré avec une fonctionnalité qui limite automatiquement (désactive) les filtres qui ont été dernièrement modifiés et qui vérifient un certain seuil d'actions récentes.

Ceci est fait pour empêcher les modifications nuisibles sur les filtres, pour bloquer chaque utilisateur réalisant une action sur le wiki ou similaire.

La condition pour désactiver le filtre dépend de ces variables :
 * - Pourcentage de déclenchements du filtre sur le nombre total d'actions durant la période d'observation.
 * - compte le nombre de fois où le filtre s'est déclenché pendant la période d'observation.
 * - Age du filtre pour le prendre en compte. Si la dernière modification du filtre est plus ancienne que ce nombre de secondes, le filtre ne sera pas limité - à moins qu'il ne le soit déjà.
 * - Nombre maximum d'actions récentes à prendre en compte par rapport au seuil. Notez que chaque action incrémente un compteur, et une fois que ce compteur est égal à la valeur de ce paramètre de configuration, le compteur ainsi que le nombre total d'actions récentes ayant déclenché tous les filtres, sont remis à 0.

Les filtres de limitation peuvent être identifiés dans la liste des filtres (Special:AbuseFilter) avec l'état,. La limitation se fait silencieusement, et il n'est pas possible de voir quand un filtre est limité.

Lorsqu'un filtre est limité, il n'exécute aucune action dangereuse (actions généralement limitées à des droits spéciaux comme le blocage de l'utilisateur ou sa suppression de groupes, contrôlés par $wgAbuseFilterActionRestrictions), et seules les actions "sûres" sont autorisées (celles qui peuvent avertir ou empêcher l'action en cours). Les filtres de limitation ne sont pas activés automatiquement. Pour désactiver la limitation, vous devez modifier les filtres. Notez que vous devez modifier actuellement quelque chose dans le filtre : mettre à jour ses commentaires est suffisant.

Notez que si vous modifiez le filtre, vous modifiez également son age, et vous pourrez provoquer éventuellement sa désactivation s'il satisfait aux conditions pour être limité durant une courte période depuis la dernière modification, ce qui en fait un filtre non utilisable si votre wiki reçoit davantage de modifications abusives que de modifications légitimes.



Créer et gérer les filtres
Une fois l’extension installée, les filtres peuvent être créés, testés, changés, effacés, et on peut accéder aux journaux depuis la page de gestion du filtre anti-abus Special:AbuseFilter.


 * Le format des règles - les bases sur la manière d'écrire un filtre
 * Actions
 * Règles globales
 * Guide pour optimiser l'utilisation des conditions aux limites
 * Pour importer des filtres depuis Wikipédia : lorsque vous avez installé l’extension, allez sur Special:AbuseFilter, choisissez un filtre (par exemple Special:AbuseFilter/3), cliquez sur «  Exporter ce filtre vers un autre wiki  », copiez le texte, allez sur « Special:AbuseFilter/import » sur votre wiki et collez le texte.
 * m:Small wiki toolkits/Starter kit/AbuseFilter - Un guide pour les petites communautés wiki sur metawiki

API
Le filtre anti-abus ajoute deux modules dans l’API list, un relatif aux détails du filtre anti-abus (abusefilters) et un relatif au journal des filtrages puisque celui-ci est séparé des autres journaux MediaWiki (abuselog). Il n’est pas possible de créer ou de modifier des filtres anti-abus à partir de l’API.

list = abusefilters
Liste les informations sur les filtres


 * Paramètres:
 * - identifiant du filtre où commencer l’énumération
 * - identifiant du filtre où terminer l’énumération
 * - direction dans laquelle se fait l’énumération (older, newer = vers le plus ancien, vers le plus récent)
 * - ne montrer que les filtres qui répondent à ces critères (enabled|!enabled|deleted|!deleted|private|!private = activé|!activé|effacé|!effacé|privé|!privé)
 * - nombre maximum de filtres dans la liste
 * - quelles propriétés afficher (id|description|pattern|actions|hits|comments|lasteditor|lastedittime|status|private = identifiant|description|motif|actions|nombre d’activations|commentaires|dernier contributeur|date de dernière modification|statut|privé)

Quand les filtres sont privés, quelques-unes des propriétés spécifiées avec  seront manquantes à moins que vous n’ayez les droits utilisateur appropriés.


 * Exemples:

list = abuselog
Liste les instances où des actions ont actionné un filtre anti-abus.


 * Paramètres:
 * - identifiant du filtre où commencer l’énumération
 * - identifiant du filtre où terminer l’énumération
 * - direction dans laquelle se fait l’énumération (older, newer = vers le plus vieux, vers le plus récent)
 * - ne montrer que les entrées où l’action est testée pour un utilisateur ou une IP donné.
 * - ne montrer que les entrées où l’action est testée pour une page donnée.
 * - ne montrer que les entrées actionnées par un identifiant de filtre donné
 * - nombre maximum d’entrées dans la liste
 * - quelles propriétés afficher: (ids|filter|user|ip|title|action|details|result|timestamp|hidden|revid|wiki)


 * Exemple:



Erreurs potentielles

 * Certains utilisateurs peuvent s'apercevoir que créer de nouveaux filtres ou en modifier des anciens ne fonctionne pas et ils sont redirigés simplement vers la page d'origine. Si le wiki utilise des certificats SSL, cette erreur peut être éventuellement dûe à la valeur de, qui peut utiliser « http:// » au lieu de « https:// » .  Une indication de cette erreur sera que le navigateur affichera un avertissement https pour les pages Special:AbuseFilter. (Topic:T23dyyih0ofjada5)



Integration avec d'autres extensions
Vous pouvez intégrer AbuseFilter avec d'autres extensions de différentes manières.



Ajouter des variables pour le filtrage
Il est possible d'ajouter de nouvelles variables à utiliser dans les filtres anti-abus. Une liste d'exemples. Pour faire cela, vous devez :


 * Ajoutez un gestionnaire pour l'accroche . Pour ajouter une variable, vous devez utiliser, où   est le nom de la variable, et   est le fragment d'une clé i18n. La clé complète sera.
 * Ajouter les messages i18n que vous avez choisis à l'étape précédente.
 * Choisissez un gestionnaire d'accroche pour lequel la variable sera calculée. En fonction de votre cas d'utilisation, vous pouvez :
 * Implémente l'accroche ; ceci est fait particulièrement pour les variables relatives aux pages;
 * Implémente l'accroche ; ceci est fait particulièrement pour les variables relatives aux  utilisateurs;
 * Implémenter l’accroche (cela sert pour les variables non liées à une page spécifique ou à un utilisateur) ;
 * Implémentez l'accroche ; ceci est un peu plus flexible que les autres accroches, mais il a un inconvénient : votre variable ne sera pas disponible lorsque vous examinerez les dernière entrées des modifications récentes réalisées. Si vous voulez implémenter cette fonctionnalité (et il est recommandé de le faire), vous devez utiliser l'une des accroches décrites ci-dessus, et son troisième paramètre.
 * A l'intérieur du gestionnaire associé à l'accroche, il existe deux façons d'ajouter une variable :
 * La manière directe est d'appeler . Ceci est l'idéal uniquement quand la valeur est facile et rapide à évaluer : la valeur est évaluée même si aucun filtre actif ne l'utilise.
 * La manière paresseuse est d'appeler . Ici, 'method_name' est un identifiant (unique) qui sera utilisé pour évaluer la variable (il est recommandé de le préfixer en lui ajoutant le nom de votre extension). Pour enregistrer la méthode, vous devez ajouter un gestionnaire à l'accroche ; de là vous devez contrôler si la $method passée correspond à  'method_name' et si c'est le cas, vous évaluez la variable. Enfin, $params est un tableau de paramètres dont vous aurez besoin pour évaluer la variable; ceux-ci sont passés au gestionnaire de l'accroche  . Pour un exemple de ceci, voyez le   de CentralAuth.



Ajouter des actions personnalisées
Vous pouvez ajouter des gestionnaires d’actions personnalisées, afin que les filtres puissent effectuer d’autres actions. Pour ce faire, choisissez un nom pour votre action (« my-action » ici), puis :


 * Créez une classe nommé par ex. MyAction, qui doit hériter de \MediaWiki\Extension\AbuseFilter\Consequence et qui peut implémenter HookAborterConsequence ou ConsequencesDisablerConsequence.
 * Enregistrez une fonction à l’accroche AbuseFilterCustomActions ; la fonction doit fournir, comme indiqué dans la documentation de l’accroche, un callback qui renvoie une instance de la classe créée ci-dessus. Par exemple :

Ensuite, vous devez ajouter les messages i18n suivants. Vous pouvez remplacer « my_action » avec par exemple « block » afin de voir à quoi servent ces messages.





Ajouter des groupes de règles
Vous pouvez aussi ajouter des groupes de règles supplémentaires, qui peuvent être utilisés pour regrouper les filtres anti-abus existants. Notez qu'actuellement, chaque filtre ne peut se trouver que dans un seul groupe à la fois (T116642). Actuellement, le seul consommateur connu de cette fonctionnalité sont les. Pour faire cela vous devez :


 * Ajouter le nom du groupe à
 * Ajouter du code pour exécuter les filtres avec votre groupe. Notez que AbuseFilter ne fera pas cela tout seul. Pour cela, vous devez construire un objet  en lui passant le nom de votre groupe.



Voir aussi

 * Nombreux wikis WMF où il est activé (et avec quelle configuration)