Extension:CheckUser

From mediawiki.org
This page is a translated version of the page Extension:CheckUser and the translation is 100% complete.
Manuel des extensions MediaWiki
CheckUser
État de la version : stable
Implémentation Page spéciale , Identité de l'utilisateur , API , Accroche , Base de données
Description La fonction CheckUser permet à un utilisateur ayant les droits, de vérifier des quelles adresses IP sont utilisées par un nom d'utilisateur donné, et quels sont les noms d'utilisateurs qui utilisent une adresse IP donnée, sans avoir à lancer manuellement des requêtes dans la base de données.
Auteur(s) Tim Starling, Aaron Schulz, Dreamy Jazz
Dernière version 2.5 (continuous updates)
Politique de compatibilité Versions ponctuelles alignées avec MediaWiki. Le master n'est pas compatible arrière.
MediaWiki 1.35+
PHP 7.4.3+
Modifie la base
de données
Oui
Tables cu_changes
cu_log_event
cu_private_event
cu_log
cu_useragent_clienthints
cu_useragent_clienthints_map
Licence Licence publique générale GNU v2.0 ou supérieur
Téléchargement
  • $wgCheckUserGBtoollink
  • $wgCheckUserClientHintsSpecialPages
  • $wgCheckUserCAMultiLock
  • $wgCheckUserLogSuccessfulBotLogins
  • $wgCheckUserLogLogins
  • $wgCUPublicKey
  • $wgCheckUserCAtoollink
  • $wgCheckUserClientHintsRestApiMaxTimeLag
  • $wgCheckUserDeveloperMode
  • $wgCheckUserClientHintsForDisplay
  • $wgCUDMaxAge
  • $wgCheckUserCIDRLimit
  • $wgCheckUserMaxBlocks
  • $wgCheckUserPurgeOldClientHintsData
  • $wgCheckUserDisplayClientHints
  • $wgCheckUserClientHintsUnsetHeaderWhenPossible
  • $wgCheckUserForceSummary
  • $wgCheckUserEnableSpecialInvestigate
  • $wgCheckUserLogAdditionalRights
  • $wgCheckUserCollapseCheckUserHelperByDefault
  • $wgCheckUserClientHintsValuesToHide
  • $wgCheckUserClientHintsEnabled
  • $wgCheckUserMaximumRowCount
  • $wgCheckUserInvestigateMaximumRowCount
  • $wgCheckUserTemporaryAccountMaxAge
  • $wgCheckUserEventTablesMigrationStage
  • $wgCheckUserClientHintsHeaders

  • checkuser
  • checkuser-log
  • checkuser-temporary-account
  • investigate
Téléchargements trimestriels 253 (Ranked 29th)
Utilisé par les wikis publics 9,118 (Ranked 13th)
Traduire l’extension CheckUser sur translatewiki.net si elle y est disponible
Problèmes Tâches ouvertes · Signaler un bogue
Cette page est dédiée entièrement à l'extension CheckUser. Pour consulter la politique de vérification des utilisateurs de la Fondation Wikimedia, voir CheckUser policy.

CheckUser est une extension qui permet à un utilisateur (ayant les droits checkuser) de vérifier quelles adresses IP sont utilisées par un nom d'utilisateur donné, et quels sont les noms d'utilisateurs qui utilisent une adresse IP donnée, sans avoir à lancer manuellement des requêtes dans la base de données. L'extension est toujours active sur tous les wikis Wikimedia.

Les mises à jour se feront en fonction des besoins des wikis de la Fondation Wikimedia, ou lorsque des vulnérabilités critiques seront découvertes.

Installation

  • Téléchargez et placez le(s) fichier(s) dans un répertoire appelé CheckUser dans votre dossier extensions/.
    Les développeurs et les contributeurs au code doivent à la place installer l'extension à partir de Git en utilisant:cd extensions/
    git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/CheckUser
  • Seulement lorsque vous installez à partir de Git, 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 tâche T173141 pour des complications potentielles.)
  • Ajoutez le code suivant à la fin de votre fichier LocalSettings.php  :
    wfLoadExtension( 'CheckUser' );
    
  • Exécutez le script de mise à jour qui va créer automatiquement les tables de base de données dont cette extension a besoin.
  • Configurer si nécessaire.
  • Yes Fait – Accédez à Special:Version sur votre wiki pour vérifier que l'extension a bien été installée.

Utilisation de MediaWiki-Docker

Suivre les étapes de MediaWiki-Docker/Extension/CheckUser pour installer cette extension dans une instance de MediaWiki Docker.

Configuration

Cet outil copie les données des modifications récentes dans des tables séparées, et les actualise au fur et à mesure des nouvelles entrées. Si $wgPutIPinRC vaut false, les données copiées ne contiendront pas l'adresse IP associée. Toutefois, les entrées ajoutées après l'installation de cette extension contiendront l'adresse IP.

Après avoir installé cette extension, vous pouvez réduire $wgRCMaxAge pour rendre les modifications récentes moins longues, sans perturber checkuser. Utilisez $wgCUDMaxAge pour indiquer en nombre de secondes, jusqu'à quand les données checkuser peuvent remonter au plus loin dans le temps.

Le paramètre $wgCheckUserCIDRLimit spécifique à CheckUser détermine le plus grand intervalle pouvant être vérifié en une seule passe. Son format est le même que celui de $wgBlockCIDRLimit . La limite par défaut est de /32 pour les vérifications de IPv6 et de /16 pour les vérifications de IPv4.

Pour permettre à cet outil d'enregistrer les tentatives de connexion réussie et celles qui ont échoué ainsi que les sorties, définissez $wgCheckUserLogLogins à true. Si vous avez des comptes associés aux robots de votre wiki, initialiser $wgCheckUserLogSuccessfulBotLogins à false évitera d'enregistrer les tentatives de connexion réussies de ces comptes de robot.

Attribuer les droits pour utiliser CheckUser

Pour attribuer les droits d'utilisation de Special:CheckUser, Special:Investigate et Special:CheckUserLog, les utilisateurs ayant la possibilité de gérer les droits utilisateur doivent aller sur Special:UserRights et saisir le nom de l'utilisateur dans la boîte, puis sélectionner l'option « checkuser » . Une fois ceci réalisé, les pages spéciales mentionnées précédemment apparaîtront sur la page Special:SpecialPages pour cet utilisateur.

Pour permettre aux utilisateurs d'accéder aux adresses IP des comptes temporaires, ils doivent posséder les droits checkuser-temporary-account.

Pour fournir aux administrateurs système (sysops) tous les droits que cette extension fournit, ajoutez ceci dans votre fichier LocalSettings.php :

$wgGroupPermissions['sysop']['checkuser'] = true;
$wgGroupPermissions['sysop']['checkuser-log'] = true;
$wgGroupPermissions['sysop']['investigate'] = true;
$wgGroupPermissions['sysop']['checkuser-temporary-account'] = true;

Par contre pour permettre uniquement l'ajout ou la suppression des droits checkuser, utilisez ceci :

$wgAddGroups['sysop'][] = 'checkuser';
$wgRemoveGroups['sysop'][] = 'checkuser';

Configuration

Paramètres de configuration dans extension.json
paramètre par défaut commentaire
$wgCUDMaxAge 7776000 Pendant combien de temps faut-il garder les données de CheckUser (en secondes) ? (par défaut 3 mois)
$wgCheckUserMaxBlocks 200 Limites des blocs de masse
$wgCheckUserForceSummary false Mettre à true si vous voulez que les utilisateurs checkusers fournissent un motif pour chaque contrôle qu'ils font via Special:CheckUser. (ce qui n'est pas très utile étant donné que checkusers peut renvoyer simplement un résumé commme « ils doivent être vérifiés » ou « Je suis de son avis » et le logiciel n'en saura pas davantage).
$wgCheckUserCIDRLimit [ 'IPv4' => 16, 'IPv6' => 19 ] Les limites les plus courtes du CIDR (Classless Inter-Domain Routing) peuvent être vérifiées dans tout contrôle d'intervalle individuel
$wgCUPublicKey '' Clé publique pour encoder les données privées qui pourraient être lues ultérieurement. Vous pouvez générer une clé publique de la manière suivante :

openssl genrsa -out cu.key 2048; openssl rsa -in cu.key -pubout > cu.pub et collez le contenu de cu.pub ici

Utilisé avec une clé privée associée pour crypter certaines données qui ne sont pas affichées aux utilisateurs vérifiés mais stockées dans les tables cu_changes ou cu_private_event Actuellement il s'agit des destinataires des courriels. Sans clé publique valide, les données ne seront pas stockées.

$wgCheckUserCAMultiLock false Ceci peut être utilisé pour ajouter un lien à Special:MultiLock par CentralAuth au formulaire de blocage en masse de Special:CheckUser. Ceci nécessite que l'extension CentralAuth soit installée sur le wiki. Pour permettre cela, initialisez la valeur avec un tableau comportant un nom de base de données du wiki central, et un tableau avec les noms des groupes globaux pour lesquels vous voulez ajouter un lien. Par exemple :
$wgCheckUserCAMultiLock = [
    'centralDB' => 'metawiki',
    'groups' => [ 'steward' ]
];
$wgCheckUserCAtoollink false Depuis 77360f1cf1d2. Ceci ajoute un lien au Special:CentralAuth du wiki central vers les résultats « Get users » de Special:CheckUser. Ceci nécessite que l'extension CentralAuth soit installée sur le wiki. Pour activer ceci, utilisez le nom d'une base de données wiki centrale. Par exemple :
$wgCheckUserCAtoollink = 'metawiki';
$wgCheckUserGBtoollink false Depuis 77360f1cf1d2. Ceci ajoute un lien au Special:GlobalBlock du wiki local ou central vers les résultats « Get users » de Special:CheckUser. Ceci nécessite que l'extension GlobalBlocking soit installée sur le wiki. Pour permettre cela, si un $wgConf est configuré, initialisez la valeur avec un tableau comportant un nom de base de données du wiki central, et un tableau avec les noms des groupes locaux (ou globaux si vous avez intallé CentralAuth ) pour lesquels vous voulez ajouter un lien. Par exemple :
$wgCheckUserGBtoollink = [
	'centralDB' => 'metawiki',
	'groups' => [ 'steward', 'staff' ]
];
$wgCheckUserEnableSpecialInvestigate false (<=1.39)
true (1.40+)
Depuis 57dcfe46d2e4. Cela active Special:Investigate, une version mise à jour de Special:CheckUser qui permet de vérifier plusieurs comptes utilisateurs et des adresses IP par une requête.
$wgCheckUserLogLogins false Indique si CheckUser doit enregistrer les tentatives de connexion et de déconnexion (à la fois réussies et non).
$wgCheckUserLogSuccessfulBotLogins true Si $wgCheckUserLogLogins vaut true, indique si CheckUser doit stocker les tentatives de connexion réussie aux comptes pour le groupe utilisateur des robots. Utilisé seulement si $wgCheckUserLogLogins vaut true
$wgCheckUserMaximumRowCount 5000 Nombre maximum de résultats pouvant être renvoyés par Special:CheckUser. Avant MediaWiki 1.39, les résultats des modifications (Get edits) et des adresses IP(Get IPs) qui avaient plus de 5 000 éléments renvoyaient ces résultats dans un format différent. A partir de MediaWiki 1.39 c'est le nombre maximum de résultats à afficher par page et les résultats suivants peuvent être récupérés en utilisant les liens de page
$wgCheckUserInvestigateMaximumRowCount 25000 Similaire à $wgCheckUserMaximumRowCount, mais pour Investigate
$wgCheckUserTemporaryAccountMaxAge (1.40+) 86400 Nombre de secondes pendant lequel la réponse de l'API du compte temporaire est vraie.
$wgCheckUserEventTablesMigrationStage (1.40+) 3 Used to control the migration stage of log events stored in cu_changes to the new cu_log_event and cu_private_event tables. Is temporary and will be removed once migration is complete.
$wgCheckUserClientHintsEnabled (1.41+) true Utilisé pour contrôler si les tentatives du client doivent être recueillies et affichées par CheckUser dans les résultats.
$wgCheckUserClientHintsSpecialPages (1.41+) [ "CreateAccount", "Emailuser", "PasswordReset", "Userlogin", "Userlogout" ] The list of SpecialPages where CheckUser will request client hints if $wgCheckUserClientHintsEnabled is true.
$wgCheckUserClientHintsActionQueryParameter (1.41+) [ "history" ] Liste des valeurs de action dans les paramètres de requête où l'activité du client sera demandée.
$wgCheckUserClientHintsHeaders (1.41+) { "Sec-CH-UA": "", "Sec-CH-UA-Arch": "architecture", "Sec-CH-UA-Bitness": "bitness", "": "brands", "Sec-CH-UA-Form-Factor": "", "Sec-CH-UA-Full-Version-List": "fullVersionList", "Sec-CH-UA-Mobile": "mobile", "Sec-CH-UA-Model": "model", "Sec-CH-UA-Platform": "platform", "Sec-CH-UA-Platform-Version": "platformVersion", "Sec-CH-UA-WoW64": ""} Liste des types d'actions client qui seront demandés. Les clés représentent les valeurs des activités client demandées à l'aide de l'en-tête Accept-CH. Les valeurs représentent le nom équivalent quand elles sont demandées à l'API des statistiques client du JavaScript côté client.
$wgCheckUserClientHintsUnsetHeaderWhenPossible (1.41+) true If true, the server will send an empty Accept-CH header when the user is viewing a page which does not need client hints data.


Utilisation de Special:CheckUser

Interface de base

  1. Allez sur Special:CheckUser.
  2. Dans le champ user, entrez le nom de l'utilisateur (username) (sans le préfixe User:), son adresse IP, ou l'intervalle CIDR.
    • IP: toute adresse IPv4 ou IPv6.
    • CIDR : vous pouvez vérifier un intervalle d'adresses IP en ajoutant le préfixe CIDR. La valeur du préfixe CIDR pour IPv4 peut être comprise entre 16 et 32 et la valeur pour IPv6 peut être comprise entre 19 et 128. Le plus petit nombre des deux intervalles peut être modifié en utilisant la variable de configuration $wgCheckUserCIDRLimit. Pour la notation, voir les Aide:Intervalles d'adresses de blocage .
    • XFF: vous pouvez vérifier l'adresse IP d'un client fournie par les entêtes « X-Forwarded-For » en ajoutant /xff (par exemple 127.0.0.1/xff).
  3. Choisissez l'information que vous voulez récupérer.
    • Obtenir les adresses IP - renvoie les adresses IP utilisées par un contributeur enregistré.
    • ⧼checkuser-edits⧽ - fournit toutes les modifications et les actions journalisées faites par les utilisateurs anonymes (utilisant une adresse IP ou un intervalle d'adresses spécifié dans le champ cible), et si la cible est un utilisateur donné, toutes les modifications et les actions journalisées liées à cet utilisateur.
    • Obtenir les utilisateurs - renvoie les comptes des utilisateurs ayant fait des modifications, à partir d'une adresse IP ou d'un intervalle d'adresses.
  4. Dans le champ Motif :, saisissez le motif pour lequel vous accédez aux données confidentielles. Essayez de résumer brièvement la situation (par exemple « pourriel inter wiki » ) ; ceci sera journalisé dans une trace visible seulement des utilisateurs ayant les droits checkuser-log sur le journal.


Informations rendues

Une entrée typique parmi les résultats de CheckUser pour un résumé d'utilisateur (get users) se présente ainsi :


  1. Example user agent

Elle est présentée pour contenir un maximum d'informations dans un format qui peut être facilement listé et exploité, mais qui reste difficile à lire, à moins de savoir quelles sont les informations présentes. L'information se présente ainsi :

  • nom d'utilisateur (liens de l'utilisateur) (période de temps écoulée depuis la modification faite à partir de l'adresse IP ou de l'intervalle d'adresses) [nombre de modifications faites à partir de l'adresse IP ou d'un intervalle d'adresses]
    1. Adresse IP de laquelle la modification a été faite XFF: Information XFF fournie (peut être usurpé)

Chaque combinaision IP/XFF utilisée pour modifier est listée, par ordre d'utilisation.

Les dix derniers agents utilisateur (navigateur, système d'exploitation, langue du système, et versions) de chaque utilisateur ayant modifié depuis l'adresse IP ou de l'intervalle d'adresses, sont ensuite listés.

Format XFF

Les entêtes XFF (X-Forwarded-For) indiquent les séries d'adresse IP utilisées à partir de l'ordinateur de l'utilisateur (en premier) jusqu'au dernier serveur mandataire rencontré. Dans le cas de Wikimedia, les dernier serveur mandataire (proxy) est l'un des proxy Wikimedia (listés sous $wgCdnServersNoPurge dans le fichier de configuration Wikimedia).

Dans cet exemple :

aaa.aaa.aaa.aaa XFF: 10.4.46.42, 127.0.0.1, aaa.aaa.aaa.aaa, 208.80.152.46

  • les deux premières adresses (10.4.46.42, 127.0.0.1) sont privées dans le réseau d'origine et ne peuvent pas être accédées directement à partir de l'Internet publique,
  • la troisième adresse (aaa.aaa.aaa.aaa) est l'adresse du contributeur visible du public, habituellement un fournisseur de service internet large bande ou de numérotation, une passerelle d'entreprise, (mais aussi celle d'une anonymisation ou d'un serveur contrefait de malware),
  • la dernière adresse (208.80.152.46) correspond à l'un des logiciels Wikimedia (sq36.wikimedia.org).

Les paramètres de configuration MediaWiki $wgUsePrivateIPs , $wgCdnServers , $wgCdnServersNoPurge et les extensions qui utilisent l'accroche IsTrustedProxy (telles que Extension:TrustedXFF ) modifient la manière dont une adresse IP actuelle est sélectionnée pour attribuer les modifications.

Liens vers les outils personnels

Lorsque vous obtenez les résultats de Special:CheckUser vous pouvez ajouter des liens personnels vers des outils utilisateur via les messages d'interface suivants :

  • MediaWiki:checkuser-userlinks-ip pour les addresses IP (par exemple m:MediaWiki:checkuser-userlinks-ip)
  • MediaWiki:Checkuser-userlinks pour les utilisateurs enregistrés (par exemple m:MediaWiki:Checkuser-userlinks)
  • MediaWiki:checkuser-toollinks pour les adresses IP du type de vérification Obtenir les adresses IP (par exemple m:MediaWiki:checkuser-toollinks)
  • MediaWiki:Checkuser-cidr-tool-links pour les intervalles d'adresses IP produits par la calculatrice CIDR située en bas de toutes les pages Special:CheckUser. Message d'interface ajouté dans 1.41.


Utilisation de Special:Investigate

Utilisation de base

  1. Aller à Special:Investigate.
  2. Dans le champ Noms d’utilisateur et adresses IP saisir jusqu'à 10 cibles, qui peuvent être des noms d'utilisateur (sans le préfixe User:), des adresses IP ou des intervalles CIDR.
  3. Dans le champ Motif entrez la raison pour laquelle vous accédez aux données confidentielles, comme décrit dans les instructions Special:CheckUser ci-dessus; cela sera enregistré dans un journal visible uniquement aux utilisateurs ayant les droits checkuser-log.

Pour l'utilisation avancée de la fonctionnalité, voir Special Investigate.

Personnalisation des liens vers les outils

Comme pour Special:CheckUser, les liens vers des outils externes peuvent être personnalisés.

Les liens sont définis dans le message checkuser-investigate-compare-toollinks. Ce message est analysé pour trouver les liens ajoutés au menu de l'onglet Adresses IP et agents utilisateur.


Affichage des adresses IP pour les comptes temporaires

Version de MediaWiki :
1.40

L'extension CheckUser affiche depuis MediaWiki 1.40 un bouton à côté des liens du compte utilisateur temporaire permettant de révéler l'adresse IP.

Cette fonctionnalité est disponible exclusivement pour les utilisateurs ayant les droits checkuser-temporary-account, leur permettant de visualiser les adresses IP liées à des comptes temporaires. Pour accéder à ces informations, la fonctionnalité Enable revealing IP addresses for temporary accounts pour révéler l'adresses IP des comptes temporaires doit être activée sur la page Special:Preferences de l'utilisateur.

Ces boutons apparaîtront partout où les liens utilisateur sont affichés pour un compte temporaire, par exemple lors de la visualisation de l'historique des pages, ou dans Special:Contributions. Cependant, ces données ne seront pas affichées sur Special:CheckUser, Special:Investigate ou Special:InvestigateBlock.

API

API CheckUser et CheckUserLog

CheckUser fournit une API qui permet d'accéder aux informations affichées sur Special:CheckUser et Special:CheckUserLog. Ces deux API fonctionnent assez similairement aux pages spéciales, mais la raison d'une vérification utilisant l'API checkuser est préfixée avec API: pour indiquer qu'elles ont été faites avec l'API. Les exemples d'utilisation de ces APIs sont donnés ci-dessous.

CheckUser API
api.php?action=query&list=checkuser&curequest=userips&cutarget=Jimbo_Wales
api.php?action=query&list=checkuser&curequest=edits&cutarget=127.0.0.1/16&xff=1&cureason=Some_check
CheckUserLog API
api.php?action=query&list=checkuserlog&culuser=WikiSysop&cullimit=25
api.php?action=query&list=checkuserlog&cultarget=127.0.0.1&culfrom=20111015230000

Temporary Account Reveal API

Version de MediaWiki :
1.40

Utilisation

La classe TemporaryAccountHandler offre les points d'accès de l'API pour récupérer les adresses IP associées aux comptes utilisateurs temporaires. Pour accéder à ces informations, la fonctionnalité Enable revealing IP addresses for temporary accounts pour révéler l'adresses IP des comptes temporaires doit être activée sur la page Special:Preferences de l'utilisateur.

Point d'accès de l'API

GET /rest.php/checkuser/v0/temporaryaccount/{name}{name} est le nom d'utilisateur que vous voulez rechercher

Réponse

Si la demande est réussie, l'API répondra avec un objet JSON contenant les champs suivants :

Nom Type Description
ips string[] Adresse IP du compte temporaire donné

Si la demande échoue, l'API répondra avec un code d'erreur et un message appropriés.

Exemple de requête

GET /rest.php/checkuser/v0/temporaryaccount/*Unregistered%202

Exemple de réponse

{"ips": [ "114.127.69.62" , "212.47.235.82" , "212.47.235.81" ]}

TemporaryAccountRevisionHandler

La classe TemporaryAccountRevisionHandler offre des points d'accès à l'API pour afficher l'adresse IP associée à une révision pour les comptes temporaires. Vous pouvez spécifier un ou plusieurs identifiants de révision dans la chaîne de requête.

Point d'accès de l'API

GET /rest.php/checkuser/v0/temporaryaccount/*Unregistered%203/revisions/{revisionId}{revisionId} est l'ID de révision que vous voulez rechercher séparé par le caractère |.

Réponse

Si la demande est réussie, l'API répondra avec un objet JSON contenant les champs suivants :

Name Type Description
ips dictionary Identifiant de révision en tant que clé et adresse IP associée en tant que valeur.

Si la demande échoue, l'API répondra avec un code d'erreur et un message appropriés.

Exemple de requête

GET /rest.php/checkuser/v0/temporaryaccount/*Unregistered%203/revisions/31

Exemple de réponse

{"ips":{"31":"40.175.36.227"}}

Exemple de requête avec plusieurs révisions

GET /w/rest.php/checkuser/v0/temporaryaccount/*Unregistered%205/revisions/194|193

Exemple de réponse

{"ips":{"194":"40.175.36.227","193":"1.2.3.4"}}