WallPapers

Amazon Books

Driver Image Banner 728 x 90

Indice articoli

 

 

PHP installato come modulo Apache

Quando il PHP è usato come un modulo Apache eredita i permessi dello user di Apache (tipicamente quelli dello user nobody). Questo ha molti impatti sulla sicurezza ed autorizzazioni.

Per esempio, se voi usate il PHP per accedere ad un database, a meno che il database non abbia un sistema di autorizzazioni proprio (come di solito è), voi dovete consentire l'accesso al database per lo user nobody.

Questo significa che degli script "malintenzionati" possono accedere e modificare il database anche senza username e password.

E' certamente possibile che un web spider possa inciampare nella pagina web dell'amministratore del database e possa cancellare tutti i vostri archivi.

Voi vi potete proteggere da questo con un'autorizzazione Apache, oppure potete progettare il vostro modello di accesso con LDAP, file .htaccess, etc. ed includere questo codice nei vostri script PHP.

Spesso una volta prese le opportune misure di sicurezza, dove l'utente PHP (e quindi quello Apache) corrono veramente pochi rischi, si scopre che il PHP non può più scrivere sui files della directory dello user. O forse non ha più la possibilità di accedere e modificare i databases. Insomma il sistema è così sicuro che non ci permette di scrivere ne i files buoni che quelli cattivi e non ci consente di effettuare transazioni nel database ne buone ne cattive.

Un errore che si fa frequentemente a questo punto è quello di dare ad Apache i permessi di root, o di far crescere i permessi di Apache in qualche modo.

Aumentare i permessi di Apache a quelli di root è estremamente pericoloso e può compromettere l'intero sistema, questa soluzione può essere considerata solo da non professionisti.

Ci sono delle soluzioni più semplici. Utilizzando l'opzione open_basedir è possibile controllare e delimitare quali sono le directory in cui l'uso del PHP è consentito. E' possibile anche impostare un area apache-only, per limitare tutte le attività web a dei files non di sistema o non user.