Se il DocumentRoot del tuo GLPI non punta alla cartella public, i tuoi dati sono a rischio. Questa è la configurazione di sicurezza più importante di GLPI in produzione.
Perché esiste la cartella public
GLPI 10+ ha separato i file web (accessibili dal browser) dai file interni (config, dati, logica). La cartella public contiene solo:
- index.php (router principale)
- .htaccess (regole Apache)
- File statici (CSS, JS, immagini)
Tutto il resto (configurazione del database, classi PHP, dati sensibili) rimane al di fuori del webroot.
Apache
<VirtualHost *:443>
ServerName glpi.suaempresa.com
DocumentRoot /var/www/glpi/public
<Directory /var/www/glpi/public>
AllowOverride All
Require all granted
</Directory>
SSLEngine On
SSLCertificateFile /etc/ssl/certs/glpi.crt
SSLCertificateKeyFile /etc/ssl/private/glpi.key
</VirtualHost>Nginx
server {
listen 443 ssl http2;
server_name glpi.suaempresa.com;
root /var/www/glpi/public;
index index.php;
location / {
try_files $uri /index.php$is_args$args;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}Verifica
Dopo la configurazione, testa accedendo a URL che NON dovrebbero funzionare:
/config/config_db.php→ deve restituire 404/src/→ deve restituire 404/vendor/→ deve restituire 404/install/install.php→ deve restituire 404 (dopo la rimozione)
Se una qualsiasi di esse restituisce contenuto, il DocumentRoot è configurato in modo errato.