Protezione di un server condiviso



Tutte le applicazioni PHP girano (a meno di installazioni particolari) col medesimo utente (quello di Apache) e, per quanto siano limitati i suoi permessi all'interno del filesystem, è pur vero questi medesimi permessi sono uguali per tutte le applicazioni stesse.  Di conseguenza, una tra esse potrebbe "sbirciare" i file dell'altra, compresi file di password e sessione.

In tali casi, nell'ottica di una corretta configurazione e ponendo che ciascun programma Web faccia capo ad un distinto virtual host, si devono differenziare:

  • le directory cui ogni programma può accedere;
  • le directory su cui i programmi scrivono i file di sessione;
  • il cookie_path di ognuno.

Per ottenere ciò si utilizzano le relative direttive PHP in dipendenza, appunto, dei vari virtual host gestiti da Apache.

Per proteggere i file di sessione interapplicazioni è da preferire, in ogni modo, il loro salvataggio su database ad opera degli script. Esistono classi già confezionate e molto semplici da usare per lo scopo. Vediamo qualche esempio.

Esempio di configurazione di Apache2 (file in sites-enabled/) relativo ad un virtual host name-based:

[VirtualHost 192.168.0.200] 
    ServerName blablabla_url
    DocumentRoot /var/www/blablabla_app/
    php_admin_value open_basedir /var/www/blablabla_app/
    php_admin_value [...]

    [...]
[/VirtualHost] 

Il programma PHP che risponde ad http://blablabla_url potrà ora vedere solamente /var/www/blablabla_app/ e relative sottodirectory. Ulteriori virtual host seguiranno tale logica.

Altre direttive

Ogni estensione non usata dall'applicazione PHP deve essere rimossa anche (e soprattutto) da qui. In altre parole, se PostgreSQL non viene usato è bene eliminare la direttiva extension=pgsql.so.

Al termine della modifica al file di configurazione, riavviare Apache:

/etc/init.d/apache2 restart

Ultimi articoli Sicurezza

Nmap: tecniche per evadere un firewall

Vediamo come sfuggire ai controlli di un firewall utilizzando Nmap.

Sfruttare vulnerabilità XSS con BeEF

Usiamo BeEF per automatizzare lo sfruttamento di vulnerabilità Cross...

Trojan Flashback: rimuoverlo da Mac OS X

Individuiamo e rimuoviamo il trojan Flashback da Mac OS X

Individuare vulnerabilità in Joomla con JoomScan

Usiamo JoomScan per verificare la sicurezza di Joomla e la presenza...

XSS: attacchi avanzati

Approfondiamo le vulnerabilità Cross Site Scripting analizzando...

Altri articoli

Guide Sicurezza

Guida SQL Injection con Sqlmap

Scopriamo se le nostre applicazioni web sono vulnerabili alle SQL...

Guida sicurezza applicazioni Web

Le tecniche di attacco più comuni, i metodi per verificare la...

Guida Sicurezza wireless

Quali sono i pericoli di sicurezza di una rete senza filo e quali...

Altre guide

Newsletter @Sicurezza

Ogni lunedì, direttamente nella tua e-mail: approfondimenti e bollettini su virus, vulnerabilità e sicurezza informatica.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Amministratore di Reti Windows Server 2008

11 Giugno 2012 a Milano
Disponibilità: 5 Posti

Nessun corso previsto