Estensione:CheckUser
![]() Stato della release: stabile |
|
---|---|
![]() |
|
Implementazione | Pagina speciale , Identità utente , API , Hook , Database |
Descrizione | La funzione di controlla utente permette a un utente, con i rispettivi permessi, di controllare quali indirizzi IP sono utilizzati da un determinato nome utente o quali nomi utente sono stati utilizzati da un determinato indirizzo IP, senza dovere eseguire consultazioni direttamente sul database a mano. |
Autore(i) | Tim Starling, Aaron Schulz, Dreamy Jazz |
Versione | 2.5 (continuous updates) |
Politica di compatibilità | Snapshots releases along with MediaWiki. Master is not backward compatible. |
MediaWiki | 1.39+ |
PHP | 7.4.3+ |
Modifiche al Database | Sì |
Virtual domain | virtual-checkuser-global |
Tabelle | cu_changes cu_log_event cu_private_event cu_log cu_useragent_clienthints cu_useragent_clienthints_map cu_useragent cuci_wiki_map cuci_temp_edit cuci_user |
Licenza | GNU General Public License 2.0 or later |
Scaricare | |
|
|
|
|
|
|
Quarterly downloads | 203 (Ranked 34th) |
Public wikis using | 9,118 (Ranked 13th) |
Traduci l'estensione CheckUser se è disponibile su translatewiki.net | |
Problemi | Compiti aperti · Riportare un bug |
- Questa pagina riguarda l'estensione stessa. Per la politica "Verifica utente" di Wikimedia Foundation, vedere m:CheckUser policy.
Verifica utente è un'estensione che consente a un utente (con il permesso checkuser
) di verificare quali indirizzi IP sono utilizzati da un dato nome utente e quali nomi utente sono utilizzati da un dato IP, senza dover eseguire query direttamente su il database a mano.
L'estensione è in esecuzione su tutti i wiki Wikimedia.
Gli aggiornamenti verranno effettuati in base alle esigenze dei wiki di Wikimedia Foundation; o dove vengono scoperte vulnerabilità critiche.
Installazione
- Download and move the extracted
CheckUser
folder to yourextensions/
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 - Solo durante l'installazione da git eseguire Composer per installare le dipendenze PHP, immettendo
composer install --no-dev
nella directory dell'estensione. (Vedere task T173141 per potenziali complicazioni.) - Aggiungi il seguente codice al tuo $LocalSettings (preferibilmente alla fine):
wfLoadExtension( 'CheckUser' );
- Esegui lo script di aggiornamento, che creerà automaticamente nel database le tavole necessarie a questa estensione.
- Configurare come richiesto.
- Done – Naviga in Special:Version nella tua wiki per verificare che l'estensione sia stata installata correttamente.
Utilizzo di MediaWiki-Docker
Segui i passaggi in MediaWiki-Docker/Extension/CheckUser per installare questa estensione all'interno di un'istanza Docker MediaWiki.
Configurazione
Questo strumento copia i dati delle modifiche recenti in tabelle separate e li aggiunge quando vengono aggiunte nuove voci.
Se $wgPutIPinRC
è impostato su false
, i dati copiati non conterranno l'indirizzo IP associato.
Tuttavia, le voci aggiunte dopo l'installazione di questa estensione conterranno l'indirizzo IP.
Dopo l'installazione di questa estensione, puoi ridurre $wgRCMaxAge
per ridurre le modifiche recenti senza influire sul checkuser.
Utilizza $wgCUDMaxAge
per impostare quanto indietro possono andare indietro i dati del checkuser, in secondi.
L'impostazione specifica di CheckUser $wgCheckUserCIDRLimit determina l'intervallo più ampio che può essere controllato in un singolo controllo.
Il suo formato è lo stesso di $wgBlockCIDRLimit .
Il limite predefinito è /32
per i controlli $2 e /16
per i controlli $4.
Per consentire a questo strumento di registrare i tentativi di accesso riusciti e non riusciti come le disconnessioni, impostare $wgCheckUserLogLogins
a true
.
Se hai account bot sulla tua wiki, setting $wgCheckUserLogSuccessfulBotLogins
a false
salterà la registrazione dei tentativi di accesso riusciti agli account bot.
Versione MediaWiki: | ≥ 1.43 |
If the extension is installed on a multi-wiki install, then you should set $wgVirtualDomainsMapping for the virtual-checkuser-global
to point to a central database table.
Setting this will ensure that the central index tables are actually on a central DB, and therefore the GlobalBlocking global autoblocks and GUC work.
After doing this, you will need to run update.php
to create the tables on the central wiki.
Concessione del diritto di utilizzare CheckUser
Per concedere il diritto di utilizzare Special:CheckUser, Special:Investigate e Special:CheckUserLog, un utente con gestione dei diritti utente deve andare su Special:UserRights e inserire il nome dell'utente nella casella, quindi selezionare l'opzione "checkuser". Una volta fatto ciò, le pagine speciali sopra menzionate verranno visualizzate nella pagina Special:SpecialPages per quell'utente.
Per consentire agli utenti di accedere agli indirizzi IP degli account temporanei, dovrebbe essere concesso loro il diritto di checkuser-temporary-account.
Per concedere agli amministratori tutti i diritti forniti da questa estensione, inserisci quanto segue in LocalSettings.php
:
$wgGroupPermissions['sysop']['checkuser'] = true;
$wgGroupPermissions['sysop']['checkuser-log'] = true;
$wgGroupPermissions['sysop']['investigate'] = true;
$wgGroupPermissions['sysop']['checkuser-temporary-account'] = true;
Per consentire solo l'aggiunta e la rimozione del permesso checkuser
, utilizzare invece quanto segue:
$wgAddGroups['sysop'][] = 'checkuser';
$wgRemoveGroups['sysop'][] = 'checkuser';
Configurazione
parametro | default | commento |
---|---|---|
$wgCUDMaxAge
|
7776000
|
Per quanto tempo conservare i dati CU (in secondi)? (predefinito = 3 mesi) |
$wgCheckUserMaxBlocks
|
200
|
Limiti del blocco di massa |
$wgCheckUserForceSummary
|
false
|
Impostalo su true se vuoi forzare i checkuser a fornire un motivo per ogni controllo effettuato tramite Special:CheckUser. (Non molto utile, dato che i checkusers potrebbero semplicemente fornire un riepilogo come "devono essere controllati" o "mi va" e il software non lo saprebbe.) |
$wgCheckUserCIDRLimit
|
[ 'IPv4' => 16, 'IPv6' => 19 ]
|
Il valore CIDR più piccolo che può essere utilizzato in qualsiasi controllo dell'intervallo individuale |
$wgCUPublicKey
|
''
|
Chiave pubblica per crittografare i dati privati che potrebbero dover essere letti in seguito. Genera una chiave pubblica con qualcosa del tipo:
Utilizzato con una chiave privata associata per crittografare determinati dati che non vengono mostrati ai CU ma archiviati nella tabella cu_changes o cu_private_event. Attualmente, questi sono solo i destinatari delle e-mail. Senza una chiave pubblica valida, i dati non verranno archiviati. |
$wgCheckUserCAMultiLock
|
false
|
Questo può essere utilizzato per aggiungere un collegamento a Special:MultiLock di CentralAuth al modulo di blocco di massa di Special:CheckUser Ciò richiede che l'estensione CentralAuth sia installata sulla wiki. Per abilitarlo, impostalo su un array con il nome del database di una wiki centrale e un array con il(i) nome(i) del(i) gruppo(i) globale(i) per cui aggiungere il collegamento. Per esempio:
$wgCheckUserCAMultiLock = [
'centralDB' => 'metawiki',
'groups' => [ 'steward' ]
];
|
$wgCheckUserCAtoollink
|
false
|
Dato che 77360f1cf1d2. Questo aggiunge un collegamento dalla pagina Special:CentralAuth della wiki centrale ai risultati "Ottieni utenti" di Special:CheckUser. Ciò richiede che l'estensione CentralAuth sia installata sulla wiki. Per abilitare questo, impostalo con il nome del database di una wiki centrale. Per esempio:
$wgCheckUserCAtoollink = 'metawiki';
|
$wgCheckUserGBtoollink
|
false
|
Dato che 77360f1cf1d2. Ciò aggiunge un collegamento dalla pagina Special:GlobalBlock della wiki locale o centrale ai risultati "Ottieni utenti" di Special:CheckUser. Ciò richiede che l'estensione GlobalBlocking sia installata sulla wiki. Per consentire questo, se è configurato un $wgConf impostalo su un array con il nome del database di un wiki centrale e su un array con il(i) nome (i) del gruppo (i) locale (o globale se hai installato CentralAuth ) per aggiungere il link. Per esempio:
$wgCheckUserGBtoollink = [
'centralDB' => 'metawiki',
'groups' => [ 'steward', 'staff' ]
];
|
$wgCheckUserEnableSpecialInvestigate (1.35-1.43)
|
false (<=1.39)true (1.40+)
|
Dato che 57dcfe46d2e4. Ciò abilita Special:Investigate, una versione aggiornata di Special:CheckUser che consente di verificare più account utente e indirizzi IP all'interno di un'indagine. |
$wgCheckUserLogLogins
|
false
|
Indica se CheckUser deve registrare i tentativi di login e di logout (sia riusciti che no). |
$wgCheckUserLogSuccessfulBotLogins
|
true
|
Indica se il CheckUser deve memorizzare i tentativi di accesso con successo degli account con il bot del gruppo di utenti se $wgCheckUserLogLogins è impostato a true . Si usa solo se $wgCheckUserLogLogins è true
|
$wgCheckUserMaximumRowCount
|
5000
|
Il numero massimo di risultati che possono essere restituiti da Special:CheckUser Prima della MediaWiki 1.39, Nelle pagine "Ottieni modifiche" e "Ottieni IP" i risultati con risultati superiori a 5 000 avrebbero restituito i risultati in un formato diverso. Da MediaWiki 1.39 questo è il numero massimo di risultati da mostrare per pagina e altri possono essere generati utilizzando i collegamenti di paginazione |
$wgCheckUserInvestigateMaximumRowCount
|
25000
|
Simile a $wgCheckUserMaximumRowCount, ma per indagare |
$wgCheckUserTemporaryAccountMaxAge (1.40+)
|
86400
|
Il numero di secondi per i quali la risposta API dell'account temporaneo è recente. |
$wgCheckUserEventTablesMigrationStage (1.40+)
|
3 (1.40)259 (1.41) 769 (1.42-1.43) 768 (1.43)
|
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
|
Utilizzato per controllare se i suggerimenti del client devono essere raccolti e visualizzati nei risultati da CheckUser |
$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" ]
|
L'elenco dei valori di "azione" nei parametri di query in cui verranno richiesti i suggerimenti del client. |
$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": "" }
|
L'elenco dei tipi di suggerimento del client che verranno richiesti. Le chiavi rappresentano i valori dei suggerimenti del client richiesti utilizzando l'intestazione Accept-CH. I valori rappresentano il nome equivalente quando vengono richiesti dall'API dei suggerimenti client lato client JS. |
$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.
|
Uso del Special:CheckUser
Interfaccia di base
- Vai a Special:CheckUser.
- Nel campo utente, digita il nome utente (senza il prefisso
User:
), l'indirizzo IP o l'intervallo CIDR.- IP: qualsiasi indirizzo IPv4 o IPv6.
- CIDR: puoi controllare un intervallo di indirizzi IP aggiungendo il prefisso CIDR. Il valore del prefisso CIDR per IPv4 può essere compreso tra 16 e 32 e il valore per IPv6 può essere compreso tra 19 e 128. Il numero più piccolo per entrambi gli intervalli può essere modificato utilizzando la variabile di configurazione $wgCheckUserCIDRLimit. Per la notazione, vedere Aiuto: Blocchi per intervalli di IP .
- XFF: puoi controllare l'indirizzo IP di un client fornito dalle intestazioni X-Forwarded-For aggiungendo
/xff
(ad esempio,127.0.0.1/xff
).
- Seleziona le informazioni che desideri recuperare.
- Ottieni indirizzi IP - restituisce gli indirizzi IP utilizzati da un utente registrato.
- Ottieni azioni - restituisce tutte le modifiche e le azioni registrate effettuate dagli utenti utilizzando un indirizzo IP o un intervallo specificato nel campo obiettivo o, se l'obiettivo è un utente, tutte le modifiche e le azioni registrate da quell'utente.
- Cerca utenti - restituisce gli account utente che hanno editato da un IP o da un intervallo.
- Nel campo "Motivo:", digita il motivo per cui stai accedendo ai dati riservati. Prova a riassumere brevemente la situazione (ad esempio, "spam cross-wiki"); questo verrà registrato in un registro visibile solo agli utenti con il permesso
checkuser-log
.
- Screenshots
-
Interfaccia CheckUser di base
-
Esempio di controllo del nome utente
-
Esempio di controllo IP
-
Esempio di controllo delle Ottieni modifiche
-
Esempio di Log
Informazioni restituite
Una voce tipica nei risultati CheckUser per un riepilogo utente ("get users") è la seguente:
- Example (talk | contribs | block) (Check) (20:11, 30 agosto 2024 -- 20:12, 30 agosto 2024) [5]
- 127.0.0.37 XFF: 127.0.0.1, 127.0.0.5
- Example user agent
Questa è formattata per inserire molte informazioni in un formato che può essere facilmente elencato e sfogliato, ma è difficile da leggere a meno che non si sappia quali siano le informazioni fornite. Le informazioni sono così disposte:
- nome utente (collegamenti utente) (periodo di tempo in cui hanno effettuato la modifica dall'IP o dall'intervallo specificato) [numero di edit dall'IP o dall'intervallo]
- Indirizzo IP dell'origine dell'edit XFF: Informazioni XFF fornite (possono essere falsificate)
È elencata ciascuna combinazione IP/XFF utilizzata per l'edit, in ordine di utilizzo.
Successivamente vengono elencati gli ultimi dieci user agent (browser, sistema operativo, lingua del sistema e versioni) per ciascun utente per gli edit fatti nell'IP o nell'intervallo.
Formato XFF
Le intestazioni XFF (X-Forwarded-For) indicano la serie di indirizzi IP utilizzati dal computer dell'utente (il primo) all'ultimo server proxy. Nel caso di Wikimedia, l'ultimo server proxy è uno dei proxy Wikimedia (elencato sotto $wgCdnServersNoPurge nel file di configurazione Wikimedia).
In questo esempio:
aaa.aaa.aaa.aaa XFF: 10.4.46.42, 127.0.0.1, aaa.aaa.aaa.aaa, 208.80.152.46
- i primi due indirizzi (
10.4.46.42
,127.0.0.1
) sono privati per la rete di origine e non possono essere raggiunti direttamente dall'Internet pubblica, - il terzo indirizzo (
aaa.aaa.aaa.aaa
) è la "faccia pubblico" dell'editore, solitamente un ISP a banda larga o dial-up, un gateway aziendale (ma possibilmente un anonimizzatore o un server compromesso da malware), - l'ultimo indirizzo (
208.80.152.46
) è uno dei squid di Wikimedia (sq36.wikimedia.org
).
Le impostazioni di configurazione di MediaWiki $wgUsePrivateIPs , $wgCdnServers , $wgCdnServersNoPurge e estensioni che utilizzano l'hook IsTrustedProxy (come Extension:TrustedXFF ) cambiano il modo in cui viene selezionato un indirizzo IP effettivo utilizzato per attribuire le modifiche.
Collegamenti agli strumenti personali
Quando ottieni risultati da Special:CheckUser puoi aggiungere collegamenti agli strumenti utente personali tramite i seguenti messaggi dell'interfaccia:
MediaWiki:checkuser-userlinks-ip
per gli indirizzi IP (ad esempio m:MediaWiki:checkuser-userlinks-ip)MediaWiki:Checkuser-userlinks
per gli utenti registrati (ad esempio m:MediaWiki:Checkuser-userlinks)MediaWiki:checkuser-toollinks
per gli IP nel tipo di controllo "Ottieni indirizzi IP" (ad esempio m:MediaWiki:checkuser-toollinks)MediaWiki:Checkuser-cidr-tool-links
per gli intervalli IP prodotti dal calcolatore CIDR presente in fondo a tutte le pagine Special:CheckUser. Messaggio di interfaccia aggiunto nella 1.41.
Utilizzo del Special:Investigate
Utilizzo di base
- Vai a Special:Investigate.
- Nel campo Nomi utente o indirizzi IP, digita fino a 10 obiettivi, che possono essere nomi utente (senza il prefisso
User:
), indirizzi IP o intervalli CIDR. - Nel campo Motivo, inserisci il motivo per cui stai accedendo ai dati riservati, come descritto nelle istruzioni Special:CheckUser sopra; questo verrà registrato in un registro visibile solo agli utenti con l'autorizzazione checkuser-log.
- Screenshots
-
Maschera di inserimento
-
Scheda Informazioni sull'account
-
Scheda IP e user agent
-
Scheda Cronologia
Per l'utilizzo avanzato delle funzionalità, consulta Aiuto:Special Investigate.
Personalizzazione dei collegamenti degli strumenti
Come per Special:CheckUser, i collegamenti agli strumenti esterni possono essere personalizzati.
I collegamenti sono definiti nel messaggio checkuser-investigate-compare-toollinks
.
Questo messaggio viene analizzato per trovare collegamenti che vengono aggiunti al menu nella scheda IP e user agent.
Visualizzazione degli IP per gli account temporanei
Versione MediaWiki: | ≥ 1.40 |
L'estensione CheckUser mostrerà a partire da MediaWiki 1.40 un pulsante che viene visualizzato accanto ai collegamenti degli account utente temporanei che consente di rivelare il loro indirizzo IP.
Questa funzionalità è disponibile esclusivamente per gli utenti con il diritto checkuser-temporary-account
, garantendogli la possibilità di visualizzare gli indirizzi IP collegati ad account temporanei.
Per accedere a queste informazioni, la funzione Abilita la rivelazione degli indirizzi IP per gli account temporanei deve essere abilitata sulla pagina Special:Preferences dell'utente.
Questi pulsanti appariranno ovunque vengano mostrati i collegamenti utente per un account temporaneo, ad esempio quando si visualizzano le cronologie delle pagine o in Speciale:Contributi. Tuttavia, questi non verranno mostrati su Special:CheckUser, Special:Investigate o Special:InvestigateBlock.
API
API CheckUser e CheckUserLog
CheckUser fornisce una API che consente l'accesso alle informazioni mostrate su Special:CheckUser e Special:CheckUserLog.
Queste due API funzionano in modo abbastanza simile alle pagine speciali, ma il motivo di un controllo utilizzando l'API checkuser
ha il prefisso "API:" per indicare che sono state effettuate utilizzando l'API.
Di seguito sono riportati esempi di utilizzo di queste API.
- API CheckUser
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 CheckUserLog
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
Versione MediaWiki: | ≥ 1.40 |
L'utilizzo
La classe TemporaryAccountHandler offre endpoint API per recuperare gli indirizzi IP associati agli account utente temporanei. Per accedere a queste informazioni, la funzione Abilita la rivelazione degli indirizzi IP per gli account temporanei deve essere abilitata sulla pagina Special:Preferences dell'utente.
API endpoint
GET /rest.php/checkuser/v0/temporaryaccount/{name}
dove {name}
è il nome utente che desideri cercare
Risposta
Se la richiesta ha esito positivo, l'API risponderà con un oggetto JSON contenente i seguenti campi:
Nome | Tipo | Descrizione |
---|---|---|
ips
|
string[]
|
Gli IP dell'account temporaneo specificato |
Se la richiesta fallisce, l'API risponderà con un codice di errore e un messaggio appropriati.
Richiesta di esempio
GET /rest.php/checkuser/v0/temporaryaccount/*Unregistered%202
Risposta di esempio
{"ips": [ "114.127.69.62" , "212.47.235.82" , "212.47.235.81" ]}
TemporaryAccountRevisionHandler
La classe TemporaryAccountRevisionHandler offre endpoint API per visualizzare l'IP associato a una revisione per gli account temporanei. È possibile specificare uno o più ID di revisione nella stringa di query.
API endpoint
GET /rest.php/checkuser/v0/temporaryaccount/*Unregistered%203/revisions/{revisionId}
dove {revisionId}
è(sono) l'(gli) ID di revisione che desideri cercare separato(i) dal carattere |
.
Risposta
Se la richiesta ha esito positivo, l'API risponderà con un oggetto JSON contenente i seguenti campi:
Name | Type | Description |
---|---|---|
ips
|
dictionary
|
L'ID di revisione come chiave e l'indirizzo IP associato come valore. |
Se la richiesta fallisce, l'API risponderà con un codice di errore e un messaggio appropriati.
Richiesta di esempio
GET /rest.php/checkuser/v0/temporaryaccount/*Unregistered%203/revisions/31
Risposta di esempio
{"ips":{"31":"40.175.36.227"}}
Richiesta di esempio con più revisioni
GET /w/rest.php/checkuser/v0/temporaryaccount/*Unregistered%205/revisions/194|193
Risposta di esempio
{"ips":{"194":"40.175.36.227","193":"1.2.3.4"}}
Questa estensione viene utilizzata su uno o più progetti Wikimedia. Ciò probabilmente significa che l'estensione è stabile e funziona abbastanza bene da essere utilizzata da siti Web ad alto traffico. Cerca il nome di questa estensione nei file di configurazione CommonSettings.php e InitialiseSettings.php di Wikimedia per vedere dove è installato. Un elenco completo delle estensioni installate su un particolare wiki può essere visto sulla pagina Special:Version del wiki. |
This extension is included in the following wiki farms/hosts and/or packages: This is not an authoritative list. Some wiki farms/hosts and/or packages may contain this extension even if they are not listed here. Always check with your wiki farms/hosts or bundle to confirm. |