Come Cambiare l'URL dell'Admin di PrestaShop

390 visualizzazioni

Perché Dovresti Cambiare l'URL Admin Predefinito

Ogni installazione di PrestaShop crea una directory admin con un nome come admin1234 — le cifre vengono generate in modo casuale durante l'installazione. Questa directory è il punto di accesso al back office del tuo negozio. Sebbene il suffisso casuale fornisca una certa oscurità di base, non è una misura di sicurezza robusta. Bot automatizzati e malintenzionati scansionano regolarmente i pattern degli URL admin più comuni su migliaia di siti web. Cambiare il tuo URL admin con qualcosa di imprevedibile aggiunge un livello significativo di difesa.

La ragione principale per cambiare il nome della cartella admin è ridurre l'esposizione agli attacchi brute-force. Se un attaccante non riesce a trovare la tua pagina di login, non può tentare di indovinare la tua password. Questo non sostituisce le password robuste e le altre misure di sicurezza, ma è un primo passo efficace che non costa nulla e richiede solo pochi minuti per essere implementato.

Inoltre, un URL admin personalizzato rende il tuo negozio più professionale se dipendenti o clienti devono accedere al back office. Un URL come tuodominio.com/gestione-negozio/ è più facile da ricordare e comunicare rispetto a tuodominio.com/admin7382pqxz/.

Come Funzionano gli URL Admin di PrestaShop

La directory admin di PrestaShop è una cartella fisica sul tuo server. Quando digiti tuodominio.com/admin1234/ nel tuo browser, il server web cerca la directory admin1234 e serve il file index.php al suo interno. Questo significa che cambiare l'URL admin è principalmente una questione di rinominare la directory nel filesystem del server.

All'interno della directory admin, PrestaShop memorizza file controller, file template e configurazioni che fanno riferimento al percorso admin. In PrestaShop 1.7 e 8.x, la directory admin contiene anche i componenti di routing Symfony. La configurazione interna memorizza il nome della directory admin nel file app/config/parameters.php (o config/parameters.php nelle versioni precedenti) sotto la chiave ps_admin_dir. Questo valore deve corrispondere al nome effettivo della directory affinché il back office funzioni correttamente.

Passo dopo Passo: Rinominare la Directory Admin

Metodo 1: Via FTP o File Manager

Questo è il metodo più sicuro e diretto. Funziona su tutti i tipi di hosting e su tutte le versioni di PrestaShop dalla 1.6 fino alla 8.x e 9.x.

  1. Connettiti al tuo server via FTP (FileZilla, WinSCP) oppure usa il file manager del pannello di controllo del tuo hosting (cPanel, Plesk).
  2. Naviga nella directory principale di PrestaShop — è dove vedi cartelle come classes/, modules/, themes/ e la tua attuale cartella admin.
  3. Identifica la tua attuale cartella admin. Avrà un nome come admin1234 o admin-dev (sulle installazioni di sviluppo). Non confonderla con la cartella admin-dev/ se hai la versione con codice sorgente installata.
  4. Rinomina la cartella con il nome desiderato. Fai clic destro sulla cartella nel tuo client FTP e seleziona "Rinomina". Scegli un nome difficile da indovinare ma facile da ricordare. Buoni esempi: manage-xyz, backoffice-abc, control-2024. Evita nomi ovvi come admin, administrator, backend, dashboard o manage.
  5. Aggiorna il file di configurazione. Apri app/config/parameters.php in un editor di testo e trova la riga contenente ps_admin_dir. Cambia il valore in modo che corrisponda esattamente al nuovo nome della directory.
  6. Svuota la cache. Elimina il contenuto di var/cache/prod/ e var/cache/dev/ (se esiste). La vecchia cache contiene riferimenti al nome della directory admin precedente.
  7. Testa il nuovo URL. Apri il browser e naviga su tuodominio.com/nuovo-nome-admin/. Dovresti vedere la pagina di login di PrestaShop.

Metodo 2: Via SSH (Riga di Comando)

Se hai accesso SSH al tuo server, puoi rinominare la directory con un singolo comando:

cd /var/www/html/prestashop
mv admin1234 nuovo-nome

Poi aggiorna la configurazione:

sed -i "s/admin1234/nuovo-nome/g" app/config/parameters.php

E svuota la cache:

rm -rf var/cache/prod/* var/cache/dev/*

Questo metodo è più veloce e meno soggetto a errori rispetto all'uso di FTP, specialmente se il nome della directory appare in più punti nel file di configurazione.

Differenze tra le Versioni di PrestaShop

PrestaShop 1.6

In PrestaShop 1.6, il nome della directory admin è memorizzato in config/settings.inc.php anziché in app/config/parameters.php. Cerca una riga come:

define('_PS_ADMIN_DIR_', '/var/www/html/prestashop/admin1234');

Cambia il percorso in modo che corrisponda al nuovo nome della directory. La struttura della directory app/ non esiste nella 1.6 perché precede l'integrazione con Symfony. Per il resto, il processo di rinominazione della directory è identico.

PrestaShop 1.7

PrestaShop 1.7 ha introdotto il framework Symfony, aggiungendo il file app/config/parameters.php. Tuttavia, la 1.7 mantiene ancora la compatibilità con il routing admin legacy. Dopo la rinominazione, svuota sia la cache Smarty (var/cache/) sia la cache Symfony. Il nome della directory admin è memorizzato in parameters.php all'interno dell'array parameters:

'parameters' => array(
    // ...
    'ps_admin_dir' => 'nuovo-nome',
    // ...
)

PrestaShop 8.x

PrestaShop 8.x continua l'architettura della 1.7 con un'integrazione Symfony più profonda. Il processo è lo stesso della 1.7, ma il file parameters.php potrebbe utilizzare la configurazione basata su YAML di Symfony in alcune configurazioni. Controlla sia app/config/parameters.php che app/config/parameters.yml se presente. Dopo la rinominazione, svuota sempre la cache completamente.

PrestaShop 9.x

PrestaShop 9.x perfeziona ulteriormente l'integrazione con Symfony. Il concetto di directory admin rimane, ma il routing è maggiormente basato su Symfony. Il file parameters.php o parameters.yml contiene ancora il riferimento alla directory admin. Il processo di rinominazione non cambia, ma presta particolare attenzione allo svuotamento di tutti i livelli di cache, poiché la cache di routing Symfony è più aggressiva nella 9.x.

Aggiornamento di .htaccess Dopo la Rinominazione

Nella maggior parte dei casi, non è necessario modificare il file .htaccess nella directory principale di PrestaShop dopo aver rinominato la cartella admin. Le regole .htaccess di PrestaShop tipicamente non fanno riferimento alla directory admin per nome. Le regole di riscrittura gestiscono il front office (URL rivolte ai clienti) e la directory admin è accessibile direttamente senza riscrittura.

Tuttavia, ci sono eccezioni. Se hai aggiunto regole di sicurezza personalizzate al .htaccess che fanno riferimento al vecchio nome della directory admin, devi aggiornare quelle regole. Ad esempio, se hai precedentemente aggiunto il whitelisting degli IP per l'area admin:

# Vecchia regola
<Directory /var/www/html/prestashop/admin1234>
    Order Deny,Allow
    Deny from all
    Allow from 203.0.113.50
</Directory>

Questa deve essere aggiornata per fare riferimento al nuovo nome della directory. Allo stesso modo, controlla eventuali plugin di sicurezza (come le regole mod_security) o configurazioni CDN (regole di pagina Cloudflare) che potrebbero fare riferimento al vecchio percorso admin.

Controlla anche il file .htaccess all'interno della directory admin stessa. PrestaShop ne posiziona uno per il routing interno. Questo file generalmente non necessita di modifiche perché utilizza percorsi relativi, ma verificalo dopo la rinominazione per assicurarti che nulla sia compromesso.

Errori Comuni e Cosa NON Fare

Non Usare Symlink come Scorciatoia

Alcuni amministratori creano un link simbolico da un nuovo nome alla vecchia directory admin invece di rinominarla effettivamente. Questo vanifica completamente lo scopo perché la vecchia directory esiste ancora ed è accessibile. Esegui sempre una rinominazione effettiva, non un symlink.

Non Dimenticare di Aggiornare parameters.php

L'errore più comune in assoluto è rinominare la directory ma dimenticare di aggiornare il file di configurazione. Quando questo accade, vedrai una pagina bianca o un errore 500 quando tenti di accedere al pannello admin. PrestaShop internamente fa riferimento al nome della directory admin dalla configurazione, e una discrepanza causa un fallimento immediato.

Non Scegliere Nomi Ovvi

Rinominare la directory admin da admin1234 a admin o administrator è controproducente. Gli scanner automatizzati controllano prima questi nomi ovvi. Scegli qualcosa che combini parole e numeri in un modo non facilmente indovinabile: store-mgmt-7x9, bo-access-42 o anche una stringa completamente casuale come kx9m4p2q.

Non Rinominare Mentre gli Utenti Sono Connessi

Le sessioni del back office attive si interromperanno immediatamente quando rinomini la directory. Qualsiasi utente admin attualmente connesso vedrà un errore e perderà il lavoro non salvato. Effettua la rinominazione durante un periodo di basso traffico e avvisa qualsiasi membro dello staff che utilizza il back office.

Non Dimenticare Segnalibri e Link Salvati

Dopo la rinominazione, aggiorna tutti i segnalibri, le password salvate nel browser, le voci del gestore di password e la documentazione che fanno riferimento al vecchio URL admin. Avvisa tutti i membri dello staff che accedono al back office riguardo al nuovo URL.

Non Usare Caratteri Speciali o Spazi

Il nome della directory admin deve essere un componente di percorso URL valido. Usa solo lettere minuscole, numeri e trattini. Evita spazi, underscore (anche se funzionano, i trattini sono più puliti), caratteri accentati e qualsiasi carattere speciale.

Conflitti dei Moduli e Considerazioni su Terze Parti

La maggior parte dei moduli PrestaShop ben scritti utilizza le funzioni interne di PrestaShop per determinare il percorso della directory admin piuttosto che codificarlo direttamente. Questi moduli continueranno a funzionare dopo la rinominazione senza alcun intervento. Tuttavia, alcuni moduli scritti in modo inadeguato potrebbero codificare direttamente il percorso admin nei loro file di configurazione, JavaScript o endpoint AJAX.

Dopo aver rinominato la directory admin, testa quanto segue nel back office:

  • Tutti i moduli installati — apri la pagina di configurazione di ciascun modulo
  • Qualsiasi modulo che usa chiamate AJAX (controlla la console del browser per errori 404)
  • Callback e webhook dei moduli di pagamento
  • Qualsiasi integrazione personalizzata o connessione ERP che fa riferimento all'URL admin
  • Cron job che chiamano script lato admin

Se un modulo smette di funzionare dopo la rinominazione, controlla i suoi file di configurazione per percorsi admin codificati direttamente. Molti moduli memorizzano le impostazioni nella tabella del database ps_configuration, e alcuni di questi valori potrebbero contenere il vecchio nome della directory admin.

Per cercare nel database i riferimenti alla vecchia directory admin:

SELECT * FROM ps_configuration WHERE value LIKE '%admin1234%';

Sostituisci admin1234 con il tuo vecchio nome della directory e ps_ con il prefisso effettivo del database.

Misure di Sicurezza Aggiuntive per l'Area Admin

Rinominare la directory admin è un buon primo passo, ma dovrebbe far parte di una strategia di sicurezza completa. Considera queste misure aggiuntive:

Whitelisting degli Indirizzi IP

Se tu e il tuo team accedete sempre al back office da indirizzi IP fissi, puoi limitare l'accesso a livello di server web. Per Apache, aggiungi al .htaccess della tua directory admin:

Order Deny,Allow
Deny from all
Allow from 203.0.113.50
Allow from 198.51.100.25

Per Nginx, aggiungi al tuo blocco server:

location /nome-admin/ {
    allow 203.0.113.50;
    allow 198.51.100.25;
    deny all;
}

Questo è estremamente efficace perché anche se un attaccante scopre il tuo URL admin, non può accedere alla pagina di login da un indirizzo IP non autorizzato.

Autenticazione a Due Fattori (2FA)

PrestaShop 8.x non include il 2FA integrato, ma diversi moduli forniscono questa funzionalità. L'autenticazione a due fattori richiede un secondo passaggio di verifica (tipicamente un codice da un'app mobile come Google Authenticator) oltre alla password. Questo rende gli attacchi brute-force essenzialmente impossibili anche se l'attaccante conosce sia l'URL admin che la password.

Certificato SSL/TLS

Accedi sempre al tuo pannello admin tramite HTTPS. Questo cripta le credenziali di login durante il transito, prevenendo gli attacchi man-in-the-middle. La maggior parte dei provider di hosting offre certificati SSL gratuiti tramite Let's Encrypt. Il back office di PrestaShop dovrebbe essere configurato per forzare SSL in Parametri del Negozio > Generali > Abilita SSL e Abilita SSL su tutte le pagine.

Limitazione dei Tentativi di Login

PrestaShop include una protezione brute-force di base che blocca gli indirizzi IP dopo un certo numero di tentativi di login falliti. Assicurati che sia abilitata nelle impostazioni di sicurezza. Puoi anche implementare il rate limiting a livello di server web usando moduli come mod_evasive per Apache o limit_req per Nginx.

Rotazione Regolare delle Password

Assicurati che tutti gli account admin utilizzino password robuste e uniche. Una buona password è di almeno 16 caratteri e include un mix di lettere, numeri e simboli. Usa un gestore di password per generare e memorizzare queste password. Ruota le password periodicamente, specialmente quando un dipendente lascia l'azienda o si verifica un incidente di sicurezza.

Audit degli Account Admin

Rivedi regolarmente l'elenco degli account admin in Parametri Avanzati > Team > Dipendenti. Rimuovi o disabilita gli account dei dipendenti che non necessitano più dell'accesso. Ogni persona dovrebbe avere il proprio account anziché condividere le credenziali, il che rende possibile tracciare chi ha effettuato quali modifiche.

Cosa Fare Se Perdi l'Accesso

Se rinomini la directory admin e non riesci ad accedere al back office, non farti prendere dal panico. Connettiti al server via FTP o SSH e rinomina la directory con il suo nome originale oppure controlla il file parameters.php per assicurarti che il nome della directory corrisponda. Se hai perso traccia sia del nome della directory che della configurazione, guarda l'elenco delle directory sul server — la directory admin è quella che contiene file come ajax-tab.php, init.php e una sottodirectory themes/ con il tema del back office.

Puoi anche trovare il nome della directory admin nel database:

SELECT value FROM ps_configuration WHERE name = 'PS_ADMIN_DIR';

Tuttavia, nota che non tutte le versioni di PrestaShop memorizzano questo valore nella tabella di configurazione. Il file parameters.php è la fonte autorevole.

Automatizzare i Cambiamenti dell'URL Admin con uno Script

Se gestisci più installazioni di PrestaShop, puoi creare un semplice script shell per automatizzare il processo di rinominazione:

#!/bin/bash
OLD_NAME="$1"
NEW_NAME="$2"
PS_ROOT="/var/www/html/prestashop"

if [ -z "$OLD_NAME" ] || [ -z "$NEW_NAME" ]; then
    echo "Uso: $0 vecchio-nome-admin nuovo-nome-admin"
    exit 1
fi

mv "$PS_ROOT/$OLD_NAME" "$PS_ROOT/$NEW_NAME"
sed -i "s/$OLD_NAME/$NEW_NAME/g" "$PS_ROOT/app/config/parameters.php"
rm -rf "$PS_ROOT/var/cache/prod/*" "$PS_ROOT/var/cache/dev/*"
echo "Directory admin rinominata da $OLD_NAME a $NEW_NAME"
echo "Verifica l'accesso su: tuodominio.com/$NEW_NAME/"

Salva questo come rename-admin.sh, rendilo eseguibile con chmod +x rename-admin.sh e avvialo con i vecchi e nuovi nomi della directory come argomenti. Testa sempre il nuovo URL immediatamente dopo aver eseguito lo strumento.

Seguendo questi passaggi e combinando il cambio dell'URL admin con misure di sicurezza aggiuntive, riduci significativamente la superficie di attacco del back office del tuo negozio PrestaShop.

Questa risposta ti è stata utile?

Hai ancora domande?

Can't find what you're looking for? Send us your question and we'll get back to you quickly.

Loading...
Back to top