Manager SQL PrestaShop

PrestaShop utilizza un sistema di prefissi per le tabelle del database (ad esempio, ps_) per identificare le tabelle che appartengono alla sua installazione. Questo prefisso viene definito durante la configurazione iniziale di PrestaShop ed è personalizzabile dall’utente.

Perché PrestaShop usa un prefisso per le tabelle?

L’uso del prefisso ha diversi vantaggi, tra cui:

  1. Sicurezza:
    Il prefisso delle tabelle contribuisce a migliorare la sicurezza contro gli attacchi SQL Injection. Un attaccante che tenta di sfruttare una vulnerabilità potrebbe non conoscere il prefisso specifico utilizzato nella tua installazione, rendendo più difficile l'individuazione delle tabelle del database.

  2. Multi-installazione sullo stesso database:
    Se più siti PrestaShop condividono lo stesso database, ogni installazione può utilizzare un prefisso diverso per evitare conflitti tra le tabelle.

  3. Personalizzazione e organizzazione:
    L'uso del prefisso consente agli amministratori di distinguere facilmente le tabelle di PrestaShop da quelle di altre applicazioni o sistemi che condividono lo stesso database.

Come funziona il prefisso?

Durante l'installazione, PrestaShop permette di specificare un prefisso personalizzato. Per impostazione predefinita, il prefisso è ps_, ma può essere cambiato (ad esempio in shop_, mystore_, ecc.).

Esempio:

  • Una tabella standard con il prefisso predefinito potrebbe essere ps_stock_available.
  • Se si sceglie un altro prefisso, come mystore_, la tabella sarà mystore_stock_available.

Adattare le query al prefisso

oiché il prefisso delle tabelle può variare tra le installazioni, nelle query SQL è necessario sostituire manualmente il placeholder [PREFIX] con il prefisso effettivamente utilizzato nella propria configurazione.

Esempio di query con prefisso personalizzato

Se il prefisso è mystore_ e vuoi controllare la quantità di un prodotto, devi modificare la query da:

[code=language-sql] SELECT quantity FROM [PREFIX]stock_available WHERE id_product = 123 AND id_product_attribute = 0; [/code]

a:

[code=language-sql] SELECT quantity FROM mystore_stock_available WHERE id_product = 123 AND id_product_attribute = 0; [/code]

Come verificare il prefisso utilizzato?

Se non conosci il prefisso usato nella tua installazione, puoi verificarlo facilmente:

  • Controllando il file di configurazione:
    Apri il file app/config/parameters.php della tua installazione PrestaShop. Cerca la riga: 'database_prefix' => 'ps_',

  • Guardando direttamente nel database:
    Accedi al database tramite uno strumento come phpMyAdmin e verifica i nomi delle tabelle: tutte inizieranno con il prefisso utilizzato.

Consigli per la sicurezza

  • Usa un prefisso personalizzato e complesso durante l’installazione (es. myshop123_ anziché ps_) per aumentare la sicurezza contro attacchi mirati.
  • Evita di usare prefissi troppo semplici o facilmente prevedibili.

In conclusione, il prefisso è un elemento essenziale per la gestione delle tabelle in PrestaShop, e la sua personalizzazione offre vantaggi sia in termini di sicurezza che di flessibilità. Assicurati di sostituire [PREFIX] nelle query con il prefisso effettivo del tuo sistema!

Autore: Loris Modena

Loris Modena

SENIOR DEVELOPER

Per Ind Loris Modena titolare di Arte e Informatica, inizia a lavorare nel settore informatico nel 1989 quale sistemista addetto alla manutenzione e installazione di sistemi informatici. Inizia a programmare per il web nel 1997 occupandosi di programmazione CGI in PERL e successivamente passando alla programmazione in PHP e JavaScript. In questo periodo si avvicina al mondo Open source e alla gestione di server Linux. 

prodotto aggiunto alla lista