====== MediaWiki abuso di CreateAccount ====== Il software **[[https://www.mediawiki.org/wiki/MediaWiki|MediaWiki]]**, per impostazione predefinita, consente la **creazione di account** senza particolari formalità. È sufficiente visitare la pagina **Speciale:CreaUtenza** (in inglese **Special:CreateAccount**), non è neanche necessario fornire un indirizzo email valido. Questo in generale causa la **registrazione di account fasulli** che eventualmente verranno usati per **vandalizzare** le pagine del sito. Qui vediamo alcune tecniche utili per rimuovere gli account fraudolenti e alcune impostazioni per limitarne la registrazione. ===== Registri ===== Anzitutto è necessario scoprire quali account sono stati creati. Nella pagina **Speciale:Utenti** (Elenco degli utenti) è possibile chiedere l'elenco ordinato per data di creazione in senso decrescente. L'opzione //Mostra solo utenti con dei contributi// consente di verificare rapidamente se qualcuno dei nuovi utenti ha vandalizzato qualche pagina. Anche la pagina **Speciale:Registri** è utile a verificare le attività più recenti sul wiki. È possibile rimuovere tutti i filtri e impostare solo la data limite (vengono cercati tutti gli eventi più vecchi). Ogni registrazione utente viene mostrata come: 20:23, 26 gen 2021 L'utenza MariePirrie15686 (discussione | contributi) è stata creata ===== Estensione ConfirmAccount ===== Normalmente il wiki presenta in alto a destra il link **Registrati** che rimanda alla pagina **Speciale:CreaUtenza**. La procedura è libera **non presenta alcun tipo di controllo**. È utile installare l'estensione **[[https://www.mediawiki.org/wiki/Extension:ConfirmAccount|ConfirmAccount]]**; in questo modo il link in alto a destra diventerà **Richiesta account** e porterà alla pagina **Speciale:RichiediUtenza** (in inglese **Special:RequestAccount**). La compilazione della richiesta genera l'invio di una mail all'indirizzo che deve essere specificato nella form. Dopo che l'utente avrà visitato il **link di conferma** incluso nella mail, il sysop vedrà la sua richiesta nella pagina **Speciale:ConfermaUtenza** (in inglese **Special:ConfirmAccounts**) con la scritta **confermato** accanto all'indirizzo email. :!: **ATTENZIONE** Sebbene il link **Registrati** in alto a destra venga sostituito dal link **Richiesta account**, in realtà la pagina **Speciale:CreaUtenza** è ancora funzionante: basta digitare esplicitamente l'URL! È necessario quindi attivare una restrizione per **togliere la facoltà di creare utenti** a chi non è sysop (vedere avanti). Pare che questo sia un bug ancora non risolto (risalente al 20 settembre 2020), come riportato dalla [[https://www.mediawiki.org/wiki/Extension:ConfirmAccount|pagina wiki dell'estensione]]. ==== Installazione dell'estensione ==== Dopo aver scompattato l'archivio nella directory **extensions/** è necessario attivarlo aggiungendo a **LocalSettings.php**: // Enable page Special:RequestAccount which requires email verification. wfLoadExtension('ConfirmAccount'); Si può visitare la pagina **Speciale:Versione** (in inglese **Special:Version**) per accertarsi che l'estensione sia installata. La documentazione dell'estensione dice di eseguire anche l'**[[https://www.mediawiki.org/wiki/Manual:Update.php|update.php]]**, che deve essere eseguito in generale dopo l'aggiornamento di MediaWiki o l'installazione di estensioni. Da riga di comando: cd maintenance/ php update.php ===== Impostazione restrizioni ===== Come spiegato sopra, l'installazione dell'estensione **ConfirmAccount** non impedisce la creazione di un account da parte di un utente non registrato. È necessario aggiungere questa riga al file di configurazione **LocalSettings.php**: // Disable page Special:CreateAccount for all users, except sysops. $wgGroupPermissions['*']['createaccount'] = false; In questo modo la pagina **Speciale:CreaUtenza** (in inglese **Special:CreateAccount**) che generalmente produce la form **Registrati**, diventa inaccessibile ai normali utenti e a chi non ha effettuato il login. Se viene richiesta la pagina si ottiene il messaggio **Permessi non sufficienti**. Si può essere ancora più restrittivi aggiungere anche la riga: // Disable page Special:CreateAccount even for sysops. // Page Special:ConfirmAccounts will be useless. $wgGroupPermissions['sysop']['createaccount'] = false; in questo modo anche all'amministratore verrà impedito di creare un nuovo account, in **Pagine speciali** scompare il link **Speciale:CreaUtenza** che normalmente compare sotto la scritta **Registrati**. Eventuali richieste di iscrizione pendenti potranno essere ancora viste di sysop nella pagina **Speciale:ConfermaUtenza** (in inglese **Special:ConfirmAccounts**) raggiungibile dal link **Richieste conferma account**, ma non sarà possibile completare l'operazione che richiede accesso alla pagina inibita ''Speciale:CreaUtenza''. Tutte le operazioni viste sopra non disabilitano tuttavia la pagina **Speciale:RichiediUtenza** (in inglese **Special:RequestAccount**), quindi sarà sempre possibile chiedere l'attivazione di un nuovo account compilando il form in questione. Tale azione genera **l'invio di una mail** all'indirizzo specificato, questo meccanismo potrebbe essere abusato per inviare numerose mail non desiderate. Per disabilitare definitivamente anche la pagina di richiesta account è possibile aggiungere la riga di configurazione: // Disable page Special:RequestAccount to prevent sending of confirmation email. wgSpecialPages['RequestAccount'] = DisabledSpecialPage::getCallback('RequestAccount'); Questa impostazione sostituisce la pagina **Speciale:RichiediUtenza** con un messaggio esplicito: **Questa pagina è stata disabilitata da un amministratore di sistema**.