Newsgroup: it.comp.www.php
Titolo: Server promiscuo e spionaggio script...

Salve,
Avrei un piccolo quesito da porre di cui non ho trovato una soluzione
immediata (ma forse mi sbaglio):
Situazione:
.Web server apache 1.3.x, x>=19 + mod_php; con uid:httpd gid:httpd
.due utenti che possono collegarsi solo via ftp e non possono uscire
dalla propria home
.unico linguaggio di scripting: php 4.0.y y>=4
dirs:
drwxr-S--- utente1 httpd /home/utente1/htdocs
drwxr-S--- utente2 httpd /home/utente2/htdocs
/usr/local/apache/htdocs/utente1 -> /home/utente1/htdocs (symlink)
/usr/local/apache/htdocs/utente2 -> /home/utente2/htdocs (symlink)
in httpd.conf nei virtual host:
www.utente1.com
 punta a /usr/local/apache/htdocs/utente1
www.utente2.com
 punta a /usr/local/apache/htdocs/utente2
Il mio problema e'questo:
come faccio ad evitare che un utente legga il contenuto delle altre
home con uno script creato ad hoc (che usa fopen,``,system o altro) ?
Grazie in anticipo x le risposte.
Ciao, MaRcO
================================================================
"Take My hand, I'll lead You to the promised Land ...", I.Maiden

 con uno script creato ad hoc (che usa fopen,``,system o altro) ?
Leggiti del Safe Mode.
A risentirci
\  Davide G. Borin
\\ !!Scudo anti-spam attivo!! Togliere le x e "eliminami" dall'indirizzo
\\\_____________________________________________________________________

Anche io ho avuto lo stesso problema su un server gratuito
il sito è 
http://ebiz.com.pk/massimo71
Posted by 
http://www.phpitalia.com

 Leggiti del Safe Mode.
Ok, ma il safe_mode controlla l'esecuzione di system calls o script esterni
ma non la brutale lettura di un file di un altro user...

Leggiti del Safe Mode.
Ok, ma il safe_mode controlla l'esecuzione di system calls o script
esterni ma non la brutale lettura di un file di un altro user...


 esterni ma non la brutale lettura di un file di un altro user...
Leggi meglio e studiati i permessi UNIX! 8-)


Leggi meglio e studiati i permessi UNIX! 8-)
Uhmm penso di aver risolto in questo modo:
in apache in ogni virtual host associato ad una home /home/user?/php
setto:
php_admin_flag safe_mode on
php_admin_value doc_root /home/user?/php
php_admin_value open_basedir /user?/php
php_admin_value safe_mode_exec_dir /user?/safe_bin
[? jolly char]
ed in safe_bin ci piazzo i bin controllando che non escano da
/home/user?/php
Puo' andare o c'e' un metodo migliore o + raffinato ?


php_admin_value safe_mode_exec_dir /user?/safe_bin
Anche qui: php_admin_value safe_mode_exec_dir /home/user?/safe_bin


 home con uno script creato ad hoc (che usa fopen,``,system o altro) ?
L'unico modo sicuro e' usare la funzionalita' SUEXEC di Apache:
* i CGI degli utenti sono eseguiti con l'identita' dell'utente;
* i programmi CGI potranno avere permessi u=rwx,go= sicche' non
saranno leggibili o copiabili dagli altri utenti;
* l'utente mettera' i dati sensibili in una dir. accessibile solo
da lui (chmod u=rwx,go= nomedir);
* l'accesso ai DB (come PostgreSQL) e' gia' autenticato dall'identita'
del CGI che lo invoca;
* l'utente puo' usare il linguaggio per i CGI che piu' gli aggrada.
Ciao,
         Umberto


Gia', pero' temo non sia applicabile al php compilato come modulo
apache...
