Estensione:CheckUser

From mediawiki.org
This page is a translated version of the page Extension:CheckUser and the translation is 100% complete.
Manuale sulle Estensioni MediaWiki
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.35+
PHP 7.4.3+
Modifiche al Database
Tabelle cu_changes
cu_log_event
cu_private_event
cu_log
cu_useragent_clienthints
cu_useragent_clienthints_map
Licenza GNU General Public License 2.0 or later
Scaricare
  • $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
Quarterly downloads 253 (Ranked 29th)
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 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
  • 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.
  • Yes 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 IPv6 e /16 per i controlli IPv4.

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.

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

Configura le impostazione in extension.json
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:

openssl genrsa -out cu.key 2048; openssl rsa -in cu.key -pubout > cu.pub e incolla qui il contenuto di cu.pub

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 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 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

  1. Vai a Special:CheckUser.
  2. 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).
  3. Seleziona le informazioni che desideri recuperare.
    • Ottieni indirizzi IP - restituisce gli indirizzi IP utilizzati da un utente registrato.
    • ⧼checkuser-edits⧽ - 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.
  4. 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.


Informazioni restituite

Una voce tipica nei risultati CheckUser per un riepilogo utente ("get users") è la seguente:


  1. 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]
    1. 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

  1. Vai a Special:Investigate.
  2. 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.
  3. 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.

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"}}