Extension:AbuseFilter

From MediaWiki.org
Jump to navigation Jump to search
This page is a translated version of the page Extension:AbuseFilter and the translation is 54% complete.

Outdated translations are marked like this.
Other languages:
Deutsch • ‎English • ‎català • ‎dansk • ‎español • ‎français • ‎galego • ‎magyar • ‎polski • ‎português • ‎português do Brasil • ‎română • ‎sicilianu • ‎čeština • ‎български • ‎русский • ‎עברית • ‎سنڌي • ‎فارسی • ‎हिन्दी • ‎বাংলা • ‎中文 • ‎日本語 • ‎粵語 • ‎한국어
Manuel des extensions MediaWiki
OOjs UI icon advanced.svg
AbuseFilter
État de la version : stable
AbuseFilter-Management.png
Implémentation User activity , Special page , API
Description Permet de placer des restrictions spécifiques basées sur des comportements sur le wiki.
Auteur(s)
Compatibility policy release branches
MediaWiki 1.33+
PHP 5.4+ recommandé
Changements
base de données
Oui
Tables abuse_filter
abuse_filter_action
abuse_filter_history
abuse_filter_log
Licence GNU General Public License 2.0 or later
Téléchargement
  • $wgAbuseFilterActions
  • $wgAbuseFilterConditionLimit
  • $wgAbuseFilterEmergencyDisableThreshold
  • $wgAbuseFilterEmergencyDisableCount
  • $wgAbuseFilterEmergencyDisableAge
  • $wgAbuseFilterParserClass
  • $wgAbuseFilterRestrictions
  • $wgAbuseFilterNotifications
  • $wgAbuseFilterNotificationsPrivate
  • $wgAbuseFilterCentralDB
  • $wgAbuseFilterIsCentral
  • $wgAbuseFilterDisallowGlobalLocalBlocks
  • $wgAbuseFilterBlockDuration
  • $wgAbuseFilterAnonBlockDuration
  • $wgAbuseFilterCustomActionsHandler
  • $wgAbuseFilterValidGroups
  • $wgAbuseFilterDefaultWarningMessage
  • $wgAbuseFilterIPMaxAge
  • $wgAbuseFilterProfileActionsCap
  • $wgAbuseFilterLogPrivateDetailsAccess
  • $wgAbuseFilterPrivateDetailsForceReason
  • abusefilter-view
  • abusefilter-log
  • abusefilter-log-detail
  • abusefilter-revert
  • abusefilter-privatedetails
  • abusefilter-privatedetails-log
  • abusefilter-view-private
  • abusefilter-log-private
  • abusefilter-hidden-log
  • abusefilter-hide-log
  • abusefilter-modify
  • abusefilter-modify-restricted
  • abusefilter-modify-global
Traduisez l’extension AbuseFilter sur translatewiki.net
Vérifiez la matrice des utilisations et des versions.
Problèmes Tâches ouvertes · Signalez un bug

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.

Installation

  • Téléchargez et placez le(s) fichiers (s) dans un répertoire appelé AbuseFilter dans votre dossier extensions/.
  • Exécutez Composer pour installer les dépendances PHP, en entrant composer install --no-dev après vous être positionné dans le répertoire de l'extension. (Voir T173141 pour des complications potentielles.)
  • Ajoutez le code suivant à la fin de votre fichier LocalSettings.php :
    wfLoadExtension( 'AbuseFilter' );
    
  • Exécutez le script de mise à jour qui va créer automatiquement les tables de base de données dont cette extension a besoin.
  • Configure as required.
  • Yes Fait – Accédez à Special:Version sur votre wiki pour vérifier que l'extension a bien été installée.

Pour les utilisateurs de MediaWiki 1.26 ou précédents :

Les instructions ci-dessus décrivent la nouvelle procédure pour installer cette extension en utilisant wfLoadExtension(). Si vous avez besoin d'installer cette extension sur les précédentes versions de MediaWiki (1.26 ou antérieur), à la place de wfLoadExtension( 'AbuseFilter' );, vous devez utiliser :

require_once "$IP/extensions/AbuseFilter/AbuseFilter.php";

Configuration

Droits utilisateur

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

Droit Description
abusefilter-modify Modifier les filtres anti-abus
abusefilter-view Voir les filtres anti-abus
abusefilter-log Voir le journal des filtres anti-abus
abusefilter-log-detail Voir les entrées détaillées du journal anti-abus
abusefilter-privatedetails Voir les données privées dans le journal anti-abus
abusefilter-modify-restricted Modifier les filtres anti-abus qui ont des actions restreintes
abusefilter-modify-global Créer ou modifier les filtres globaux anti-abus
abusefilter-revert Révoquer toutes les modifications effectuées par un filtre anti-abus donné
abusefilter-view-private Voir les filtres anti-abus marqués comme privés
abusefilter-log-private Voir les entrées du journal des filtres anti-abus marqués comme privés
abusefilter-hide-log Masquer des entrées dans le journal anti-abus
abusefilter-hidden-log Voir les entrées masquées du journal anti-abus
abusefilter-privatedetails-log Afficher les détails confidentiels du journal d’accès de AbuseFilter

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

$wgGroupPermissions['sysop']['abusefilter-modify'] = true;
$wgGroupPermissions['*']['abusefilter-log-detail'] = true;
$wgGroupPermissions['*']['abusefilter-view'] = true;
$wgGroupPermissions['*']['abusefilter-log'] = true;
$wgGroupPermissions['sysop']['abusefilter-private'] = true;
$wgGroupPermissions['sysop']['abusefilter-modify-restricted'] = true;
$wgGroupPermissions['sysop']['abusefilter-revert'] = true;
Les filtres marqués comme privés ne peuvent être vus que par les utilisateurs ayant le droit abusefilter-modify ou abusefilter-view-private.

Parameters

Nom de la variable Valeur par défaut Description
$wgAbuseFilterActions
[
    'throttle' => true,
    'warn' => true,
    'disallow' => true,
    'blockautopromote' => true,
    'block' => true,
    'rangeblock' => false,
    'degroup' => true,
    'tag' => true
]
Les actions possibles que peuvent utiliser les filtres anti-abus. Lors de l'ajout d'une nouvelle action, vérifiez si elle est restreinte dans $wgAbuseFilterRestrictions et, si c'est le cas, n'oubliez pas d'ajouter le droit abusefilter-modify-restricted Groupes d'utilisateurs.
$wgAbuseFilterConditionLimit
1000
Le nombre maximum de 'conditions' qui peuvent être utilisées à chaque fois que les filtres sont exécutés à propos d’une modification. (Les filtres les plus complexes demandent plus de 'conditions'.)
$wgAbuseFilterValidGroups
[
    'default'
]
La liste des "groupes" dans lesquels les filtres peuvent être classés. Par défaut il n'y en a qu'un. D'autres extensions peuvent ajouter des groupes supplémentaires.
$wgAbuseFilterEmergencyDisableThreshold
[
    'default' => 0.05
]
Désactiver les filtres s’ils sont actionnés sur plus de X modifications, constituant plus de Y % des Z dernières modifications, s’ils ont été changés dans les S dernières secondes. See emergency throttling.
$wgAbuseFilterEmergencyDisableCount
[
    'default' => 2
]
$wgAbuseFilterEmergencyDisableAge
[
    'default' => 86400
]
$wgAbuseFilterParserClass
'AbuseFilterParser'
Nom de la classe du parseur du filtre anti-abus.
$wgAbuseFilterRestrictions
[
    'block' => true,
    'degroup' => true,
    'blockautopromote' => true,
    'rangeblock' => true
]
Les utilisateurs doivent avoir le droit utilisateur "abusefilter-modify-restricted" ainsi que "abusefilter-modify" pour pouvoir créer ou modifier les filtres que supposent ces actions.
$wgAbuseFilterNotifications
false
Il permet configurer l'extension pour envoyer faire-part de coincidencias à Spécial:CambiosRecientes ou à UDP. Options disponibles: rc, udp, rcandudp
$wgAbuseFilterNotificationsPrivate
false
Autoriser les notifications pour les filtres privés.
$wgAbuseFilterCentralDB
null
Nom de la base de données où les filtres anti-abus sont stockés (supporté uniquement dans la dernière version de développement).
$wgAbuseFilterIsCentral
false
Positionnez cette variable à true (vrai) pour le wiki où les filtres anti-abus sont stockés (supporté uniquement dans la dernière version de développement).
$wgAbuseFilterDisallowGlobalLocalBlocks
false
Ne permettre que les filtres centralisés réalisent accciones que bloquent, qu'ils éliminent des utilisateurs d'un groupe, ou qu'ils révoquent des permissions de forme locale.
$wgAbuseFilterBlockDuration
'indefinite'
Durée des blocages faits par le filtre anti-abus.
à partir de 1.31.0-wmf.25, des durées de bloc peuvent être spécifiées pour chaque filtre et remplacent cette variable. Cette variable est uniquement utilisée lors de l'activation du bloc afin de présélectionner une durée par défaut.
$wgAbuseFilterAnonBlockDuration
null
Durée des blocages instaurés par AbuseFilter pour des utilisateurs anonymes. Sinon il s'indique une valeur, il s'usera la valeur de $wgAbuseFilterBlockDuration.
à partir de 1.31.0-wmf.25, des durées de bloc peuvent être spécifiées pour chaque filtre et remplacent cette variable. Cette variable est uniquement utilisée lors de l'activation du bloc afin de présélectionner une durée par défaut.
$wgAbuseFilterCustomActionsHandlers
[ ]
Fonctions d'appel de tour pour des actions personnalisées.
$wgAbuseFilterDefaultWarningMessage
[
    'default' => 'abusefilter-warning'
]
Messages d'avis predeterminados, par groupe de filtres.
$wgAbuseFilterLogIPMaxAge
3 * 30 * 24 * 3600
Temps pendant lequel ils peuvent s'allonger les registres avant d'éliminer vieille information de registres de IP. De forme predeterminada sont 3 mois. Le script d'entretien purgeoldlogipdata.php use cette valeur.
$wgAbuseFilterProfileActionsCap
10000
Nombre d'actions qui déterminent quand réinitialiser les statistiques de profilage.
$wgAbuseFilterLogPrivateDetailsAccess
false
Whether accessing private information from a filter log entry is logged.
$wgAbuseFilterPrivateDetailsForceReason
false
Whether users are forced to provide a reason for accessing private information from a filter log entry.

Emergency throttling

AbuseFilter comes with a feature that automatically throttles (disable) filters that have been edited recently and match a certain theresold of the latest actions.

This is done to prevent harmful edits on the filters to block every user that performs an action on the wiki or similar.

The condition to disable the filter depend on those variables:

  • $wgAbuseFilterEmergencyDisableThreshold - Percent of matches over the total amount of actions in the observed period.
  • $wgAbuseFilterEmergencyDisableCount - Count of matches of the filter in the observed period.
  • $wgAbuseFilterEmergencyDisableAge - Age of the filter to take it into account. If the last edit of the filter is older than this number of seconds, the filter won't be throttled, unless it's already throttled.
  • $wgAbuseFilterProfileActionsCap - Maximum number of recent actions to count against the threshold. Note that each action increments a counter, and once this counter reaches this configured value, this counter and the number of recent actions that matches all filters are reset to 0.

Throttled filters can be identified in the list of filters (Special:AbuseFilter) with the state Enabled, throttled. Throttling happens silently, and there's no way to see when a filter got throttled.

When a filter gets throttled, it doesn't perform any dangerous action (the ones specified in $wgAbuseFilterRestrictions), and only "safe" actions are allowed. Throttled filters don't get enabled automatically. To disable the throttling, you need to edit the filter. Note that you need to actually change something from the filter: changing somethin from the filter's notes is sufficient.

Note that editing the filter updates its age, and can cause it to be disabled if it reaches again the conditions to be throttled in a short period since the last edit, leading to a unusable filter if your wiki has more abuse edits than legitimate ones. Filters can also get randomly throttled if the action count reaches $wgAbuseFilterProfileActionsCap, causing all filter matches count to reset to 0, and then someone repeatedly makes a filter to hit.

Créer et gérer des 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.

API

Le filtre anti-abus ajoute deux modules dans l’API, 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
  • abfstartid : l’identifiant du filtre où commencer l’énumération
  • abfendid : l’identifiant du filtre où terminer l’énumération
  • abfdir : la direction dans laquelle se fait l’énumération (older, newer = vers le plus vieux, vers le plus récent)
  • abfshow : ne montrer que les filtres qui répondent à ces critères (enabled|!enabled|deleted|!deleted|private|!private = activé|!activé|effacé|!effacé|privé|!privé)
  • abflimit : le nombre maximum de filtres dans la liste
  • abfprop : 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é):
  • abfstartid - The filter id to start enumerating from
  • abfendid - The filter id to stop enumerating at
  • abfdir - The direction in which to enumerate (older, newer)
  • abfshow - Show only filters which meet these criteria (enabled|!enabled|deleted|!deleted|private|!private)
  • abflimit - The maximum number of filters to list
  • abfprop - Which properties to get (id|description|pattern|actions|hits|comments|lasteditor|lastedittime|status|private)

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

;Exemples

Liste les filtres anti-abus non-privés

list = abuselog

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

; Paramètres
  • aflstart : l’identifiant du filtre où commencer l’énumération
  • aflend : l’identifiant du filtre où terminer l’énumération
  • afldir : la direction dans laquelle se fait l’énumération (older, newer = vers le plus vieux, vers le plus récent)
  • afluser : ne montrer que les entrées où l’action est testée pour un utilisateur ou une IP donné.
  • afltitle : ne montrer que les entrées où l’action est testée pour une page donnée.
  • aflfilter : ne montrer que les entrées actionnées par un identifiant de filtre donné
  • afllimit : le nombre maximum d’entrées dans la liste
  • aflprop : quelles propriétés afficher (ids|user|title|action|result|timestamp|details = identifiant|utilisateur|titre|résultat|date|détails):
  • aflstart - The timestamp to start enumerating from
  • aflend - The timestamp to stop enumerating at
  • afldir - The direction in which to enumerate (older, newer)
  • afluser - Show only entries where the action was attempted by a given user or IP address.
  • afltitle - Show only entries where the action involved a given page.
  • aflfilter - Show only entries that triggered a given filter ID
  • afllimit - The maximum number of entries to list
  • aflprop - Which properties to get (ids|user|title|action|result|timestamp|details)
;Exemple

Liste les instance où le filtre anti-abus a été actionné en réponse aux actions de l’utilisateur « SineBot »

Possible errors

  • Some users might experience that creating new filters or modifying old filters fail and the user just gets redirected to the original page. If the Wiki is using SSL certificates, this error could possibly be because of the $wgServer value, which might be using "http://" instead of "https://". An indication of this error will be, the browser giving https warning for Special:AbuseFilter pages. (Topic:T23dyyih0ofjada5)

Voir aussi