Jump to content

Extension:CheckUser: Difference between revisions

From mediawiki.org
Content deleted Content added
Undo revision 2705972 by 190.77.207.73 (talk)
Tag: Undo
and logged actions
Line 246: Line 246:
# Select the information you want to retrieve.
# Select the information you want to retrieve.
#* ''Get IPs'': returns IP addresses used by a registered user.
#* ''Get IPs'': returns IP addresses used by a registered user.
#* ''Get edits from IP:'' returns all edits made by a user (registered or anonymous) from an IP address or range.
#* ''Get edits from IP:'' returns all edits and logged actions made by a user (registered or anonymous) from an IP address or range.
#* ''Get users'': returns user accounts that have edited from an IP or range.
#* ''Get users'': returns user accounts that have edited from an IP or range.
# In the ''reason'' field, type in the reason you are accessing the confidential data. Try to succinctly summarise the situation (for example, "cross-wiki spam"); this will be logged in a log visible only to users with the checkuser-log permission.
# In the ''reason'' field, type in the reason you are accessing the confidential data. Try to succinctly summarise the situation (for example, "cross-wiki spam"); this will be logged in a log visible only to users with the checkuser-log permission.

Revision as of 20:07, 17 February 2018

MediaWiki extensions manual
CheckUser
Release status: stable
Implementation Special page , User identity
Description CheckUser function allows a user with permissions to check which IPs are used by a given username and which usernames are used by a given IP, without having to run queries directly against the database by hand.
Author(s) Tim Starling, Aaron Schulz
Latest version 2.4 (continuous updates)
Compatibility policy Snapshots releases along with MediaWiki. Master is not backward compatible.
MediaWiki 1.27+
PHP 5.4+
Database changes Yes
Tables cu_changes
cu_log
License GNU General Public License 2.0 or later
Download
  • $wgCheckUserGBtoollink
  • $wgCheckUserClientHintsSpecialPages
  • $wgCheckUserCAMultiLock
  • $wgCheckUserLogSuccessfulBotLogins
  • $wgCheckUserSpecialPagesWithoutIPRevealButtons
  • $wgCheckUserLogLogins
  • $wgCUPublicKey
  • $wgCheckUserCAtoollink
  • $wgCheckUserCuciUserRandomChanceDebounceCutoff
  • $wgCheckUserClientHintsRestApiMaxTimeLag
  • $wgCheckUserDeveloperMode
  • $wgCheckUserWriteToCentralIndex
  • $wgCheckUserCentralIndexRangesToExclude
  • $wgCUDMaxAge
  • $wgCheckUserCIDRLimit
  • $wgCheckUserMaxBlocks
  • $wgCheckUserCentralIndexGroupsToExclude
  • $wgCheckUserDisplayClientHints
  • $wgCheckUserGlobalContributionsCentralWikiId
  • $wgCheckUserForceSummary
  • $wgCheckUserInvestigateMaximumRowCount
  • $wgCheckUserMaximumIPsToAutoblock
  • $wgCheckUserClientHintsForDisplay
  • $wgCheckUserClientHintsValuesToHide
  • $wgCheckUserClientHintsUnsetHeaderWhenPossible
  • $wgCheckUserCollapseCheckUserHelperByDefault
  • $wgCheckUserClientHintsEnabled
  • $wgCheckUserTemporaryAccountMaxAge
  • $wgCheckUserMaximumRowCount
  • $wgCheckUserClientHintsHeaders
checkuser
checkuser-log
Quarterly downloads 227 (Ranked 25th)
Public wikis using 9,118 (Ranked 13th)
Translate the CheckUser extension if it is available at translatewiki.net
Issues Open tasks · Report a bug
This page is about the extension itself. For the Wikimedia Foundation CheckUser policy, see m:CheckUser policy.

CheckUser is an extension that allows a user (with the checkuser permission) to check which IPs are used by a given username and which usernames are used by a given IP, without having to run queries directly against the database by hand. The extension is running live on all Wikimedia wikis.

Download

The extension can be retrieved directly from Git [?]:

  • Browse code
  • Some extensions have tags for stable releases.
  • Each branch is associated with a past MediaWiki release. There is also a "master" branch containing the latest alpha version (might require an alpha version of MediaWiki).

Extract the snapshot and place it in the extensions/CheckUser/ directory of your MediaWiki installation.

If you are familiar with Git and have shell access to your server, you can also obtain the extension as follows:

cd extensions/ git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/CheckUser.git

Installation

The extension is released under the GNU General Public License 2.0 or later. The software is provided as-is. Updates will be made according to the needs of Wikimedia wikis; or where critical vulnerabilities are discovered.

On an existing wiki

Basic

  • If you have installed other extensions without running php maintenance/update.php, run that first.
  • Download and move the extracted CheckUser folder to your extensions/ directory.
    Developers and code contributors should install the extension from Git instead, using:cd extensions/
    git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/CheckUser
  • Add the following code at the bottom of your LocalSettings.php file:
    wfLoadExtension( 'CheckUser' );
    
  • To users running MediaWiki 1.27 or earlier:
Using a telnet/ssh client program such as PuTTY, navigate to the extensions/CheckUser folder and run php install.php. Ensure that you are running a PHP version 5.x install, otherwise this script will not run. If install.php is not present then run php maintenance/update.php again. The result will be something similar to this:
...cu_changes table added.
...doing rc_id from 368856 to 368955....
...
...cu_changes table added and populated.
...cu_log added
...logging disabled, skipping log import.
  • Yes Done – Navigate to Special:Version on your wiki to verify that the extension is successfully installed.
Installing without command prompt access

Many hosting providers don't allow direct shell access, but allow creation of cron jobs (e.g. via cPanel web interface). For those hosting providers a temporary cron job can be used to run php /path/to/install.php (naturally /path/to should be replaced with real full path to install.php). If you are using a remote server and do not have command prompt access (nor cron job solution is suitable for you), but do have access through phpMyAdmin, substitute these steps for step #2 above:

  1. Download cu_changes.sql and cu_log.sql
  2. In phpMyAdmin, click the database you're using for mediawiki along the left side
  3. On the next screen, click the "Import" tab at the top.
  4. At "Location of the text file", choose one of the files, select compression "None", and click the bottom "Go" button.
    If your phpMyAdmin screen has only a text field and no text file chooser, click the "SQL" button in the left-side column, under the phpMyAdmin logo, and click the "import files" tab in the new window that opens.
  5. Repeat for the second file

On a new wiki

Follow step 1 as above, then run the MediaWiki installation. The MediaWiki installer will automatically perform the installation tasks if you select the checkbox for CheckUser when prompted for which extensions to install.

Configuration

This tool migrates recent changes data to a separate cu_changes table, and adds to that when new entries are added. If $wgPutIPinRC was previously set to false, there will be no initial data to search but new edits will fill in as soon as the extension is set up.

After you run the queries, you can reduce $wgRCMaxAge to make recentchanges shorter, without affecting checkuser. Use $wgCUDMaxAge to set how far back checkuser data can go, in seconds.

In versions for MediaWiki 1.22 and later, the CheckUser-specific setting $wgCheckUserCIDRLimit determines the largest range that can be checked in a single check. Its format is the same as $wgBlockCIDRLimit . Otherwise, the default limit (for all versions) is /32 for IPv6 checks and /16 for IPv4 checks.

CheckUsers using Mozilla Firefox can add this JS script to their .js file. It makes retrieving IP WHOIS data easier. It requires applets.codebase.principle support (about:config) enabled. (This can be signed.applets.codebase_principle_support in Firefox 3)

Granting right to use CheckUser

To grant the right to use the Check User function, a user with user rights management must go to Special:UserRights and enter the user's name in the box, then select the option "Check User". Once this is done, the Check User option will show up on the Special pages page for that user.

To turn on user rights management for sysops, put the following into LocalSettings.php:

$wgGroupPermissions['sysop']['checkuser'] = true;

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

To only allow the adding and removing of the checkuser permission, use the following instead:

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

Configuration

Configuration settings in CheckUser.php
parameter default comment
$wgCUDMaxAge 7776000 How long to keep CU data (in seconds)? (default = 3 months)
$wgCheckUserMaxBlocks 200 Mass block limits
$wgCheckUserForceSummary false Set this to true if you want to force checkusers into giving a reason for each check they do through Special:CheckUser. (Not very useful, given that checkusers could simply give a summary such as "they need to be checked" or "I feel like it" and the software would not know.)
$wgCheckUserCIDRLimit [ 'IPv4' => 16, 'IPv6' => 32 ] Shortest CIDR limits that can be checked in any individual range check
$wgCUPublicKey Public key to encrypt private data that may need to be read later. Generate a public key with something like:

`openssl genrsa -out cu.key 2048; openssl rsa -in cu.key -pubout > cu.pub` and paste the contents of cu.pub here

$wgCheckUserCAMultiLock false This can be used to add a link to Special:MultiLock by CentralAuth to the Special:CheckUser's mass block form. This requires the CentralAuth extension to be installed on the wiki. To enable this, set this to an array with a central wiki's database name and an array with the name(s) of the global group(s) to add the link for. For Example:
$wgCheckUserCAMultiLock = [
    'centralDB' => 'metawiki',
    'groups' => [ 'steward' ]
];
$wgCheckUserCAtoollink false Since 77360f1cf1d2. This adds a link to central wiki Special:CentralAuth to the Special:CheckUser's "Get users" results. This requires the CentralAuth extension to be installed on the wiki. To enable this, set this with a central wiki's database name. For example:
$wgCheckUserCAtoollink = 'metawiki';
$wgCheckUserGBtoollink false Since 77360f1cf1d2. This adds a link to local or central wiki Special:GlobalBlock to the Special:CheckUser's "Get users" results. This requires the GlobalBlocking extension to be installed on the wiki. To enable this, if a $wgConf is configured, set this to an array with a central wiki's database name and an array with the name(s) of the local (or global if you have CentralAuth installed) group(s) to add the link for. For example:
$wgCheckUserGBtoollink = [
	'centralDB' => 'metawiki',
	'groups' => [ 'steward', 'staff' ]
];

Usage

Basic interface

  1. Go to Special:CheckUser.
  2. In the user field, type in the username (without the 'user:' prefix), IP address, or CIDR range.
    • IP: any IPv4 or IPv6 address.
    • CIDR: you can check a range of IP addresses by appending the CIDR prefix (by default, up to /16 for IPv4 (65,536 addresses), up to /64 for IPv6 (~1.8446*1019 addresses) before revision 7352, up to /48 for IPv6 (~1.2089*1024 addresses or 65536 /64s - controlled by $wgCheckUserCIDRLimit in the latest version) after revision 7352, and up to /32 (65536 /48's) after revision rECHU9d7c239bf88866eca577f3241194d440f94fa014). For notation, see Range blocks.
    • XFF: you can check a client IP address provided by X-Forwarded-For headers by appending /xff (for example, 127.0.0.1/xff).
  3. Select the information you want to retrieve.
    • Get IPs: returns IP addresses used by a registered user.
    • Get edits from IP: returns all edits and logged actions made by a user (registered or anonymous) from an IP address or range.
    • Get users: returns user accounts that have edited from an IP or range.
  4. In the reason field, type in the reason you are accessing the confidential data. Try to succinctly summarise the situation (for example, "cross-wiki spam"); this will be logged in a log visible only to users with the checkuser-log permission.

Information returned

A typical entry in the CheckUser results for a user summary ("get users") is as follows:

  • Example (Talk | contribs) (20:11, 05 January 2025 -- 20:12, 05 January 2025) [5]
    1. 127.0.0.37 XFF: 127.0.0.1, 127.0.0.5

This is formatted to fit a lot of information into a format that can very easily be listed and skimmed, but is difficult to read unless you know what the information provided is. The information is laid out as follows:

  • username (user links) (time period when they edited from the given IP or range) [number of edits from the IP or range]
    1. IP address edited from XFF: XFF information provided (can be spoofed)

Each IP/XFF combination used to edit is listed, in order of use.

The last ten user agents (browser, operating system, system language, and versions) for each user for edits made in the IP or range are listed afterwards.

XFF Format

XFF (X-Forwarded-For) headers indicate the series of IP addresses used from the user's computer (first) to the last proxy server. In case of Wikimedia, the last proxy server is one of the Wikimedia proxies (listed under $wgSquidServersNoPurge in the Wikimedia configuration file).

In this example:

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

  • the first two addresses (10.4.46.42, 127.0.0.1) are private to the originating network and can't be reached directly from the public Internet,
  • the third address (aaa.aaa.aaa.aaa) is the "public face" of the editor, usually a broadband or dialup ISP, a company gateway, (but possibly an anonymizer or a malware-compromised server),
  • the last address (208.80.152.46) is one of the Wikimedia squids (sq36.wikimedia.org).

MediaWiki configuration settings $wgUsePrivateIPs, $wgSquidServers, $wgSquidServersNoPurge and extensions using the IsTrustedProxy hook (such as Extension:TrustedXFF) change the way an actual IP address used to attribute edits is selected.

When you gets results from Special:CheckUser you can add personal user tool links via two interface messages:

Error messages

database query syntax error

If you receive an error message like this when you try to save a page:

A database query syntax error has occurred. This may indicate a bug in the software. The last attempted database query was:

(SQL query hidden)

from within function "efUpdateCheckUserData". Database returned error "1146: Table 'cu_changes' doesn't exist (localhost)".

This means that CheckUser has not been installed correctly. In this case you forgot to create the necessary cu_changes table in your database.

API

CheckUser also provides an 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
api.php?action=query&list=checkuserlog&culuser=WikiSysop&cullimit=25
api.php?action=query&list=checkuserlog&cultarget=127.0.0.1&culfrom=20111015230000
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy