MediaWiki, bloccare accesso alle Special Pages (Pagine speciali)

Schermata 2013-09-20 alle 12.17.42

Se utilizzate il wiki in ambiente privato (quindi con accesso consentito solo agli utenti registrati) avrete notato che le Pagine Speciali sono accessibili da chiunque, anche agli utenti non registrati. Queste pagine contengono una serie di informazioni (tra cui elenco utenti, categorie, ecc.) molto importanti e sensibili che è bene proteggere!

Per fare questo basta aggiungere questo piccolo code snippet di MarkAHershberger nel vostro file di configurazione LocalSettings.php. Se come me utilizzate il wiki in ambiente privato però sarà necessario comunque abilitare agli utenti l’accesso alla Login Page, fondamentale direi. A questo punto resta da aggiungere una sola riga al suddetto codice.

Ecco il codice completo da utilizzare:

function disableAllSpecialPages(&$list) {
global $wgUser;
if(!$wgUser-> isLoggedIn()) {
$list = array();
// Enable Login page
$list['Userlogin'] = "LoginForm";
}
return true;
}
$wgHooks['SpecialPage_initList'][]='disableAllSpecialPages';

Testato e verificato sulla versione 1.21.2.