Newsgroup: it.comp.www.php
Titolo: autorizzazioni per il download di files.

Ciao a tutti
Buon natale.
dovrei fare uno script per il download.
una lista con vari files e il link per il download.
Ogni utente può scaricare solo files propri.
quindi ho creato un sistema in cui le cartelle sono divise in utenti
ex:
pippo/file1.txt
pluto/file2.txt
il problema è che se do un semplice link al file ex: pippo/file1.txt
non posso controllare che un utente registrato malintenzionato possa
scaricare files appartenenti ad altri ex: indovinando il file
pluto/file2.txt
ecco le possibili soluzioni:
sposto il file desiderato in una cartella ex: common/file1.txt così
controllo quando un file deve essere disponibile,
così facendo do l'autorizzazione in lettura solo a quella cartella
ma risolvo solo parzialmente il problema. (porta molti problemi di vario
genere ex:la copia costa in termini di prestazioni)
oppure un campo submit per ogni file con come target il file stesso.
però anche li visualizzando il sorgente html posso vedere dove punta e
indovinare un file di un altro utente.
il fatto che in termini di sicurezza a meno di usare files htaccess con
password devo dare autorizzazione pubblica ai files nell'archivio
per poterli linkare su browser per essere scaricati
cosa mi consigliate? quale approccio usate?
molte grazie e buon natale!

 Ogni utente può scaricare solo files propri. [...]
Se parli di "utenti" vuol dire che essi li hai registrati da qualche parte.
Assegna loro una password: pippo/xyzt
Mi vengono in mente queste alternative:
a) Proponi all'utente la solita richiesta di login, e usa nome e password
per comporre il nome della dir reale "pippo-xyzt/files", oppure
"pippo/xyzt/files". Ovviamente, nome di login e password vanno passati
come parametri della query o come cookies.
b) Crea una dir. per ogni utente e mettici dentro il solito file .htaccess.
Mantieni nomi di login e relative password su di un file, e creati uno
scriptino che generi automaticamente la struttura delle dir. e la tanga
sincronizzata (senno' ti incasini subito).
c) Soliti sistemi basati su DB, ecc. ecc.
Ciao,
 ___ 
/_|_\  Umberto Salsi
\/_\/  
www.icosaedro.it

 indovinare un file di un altro utente.
Puoi fare un form di login con user e pass (avendo tutti gli utenti in un
db).
Dopodichè in base al nome dell'utente entri nel suo direttorio e visualizzi
l'elenco dei suoi file. Un malintenzionato non può visualizzare i file non
suoi perchè lo script richiede un login, con i dati passati via post.
Ad ogni file associ una form con user e pass come campi nascosti (magari
criptati se vuoi).
L'action non deve essere il nome del file ma uno script php che ti fa
partire il download del file.
L'altra soluzione potrebbe essere quella di usare l'autenticazione di
apache, come ti hanno già risposto.
Ciao
Marco
+-----------------------------+
| Marco <no private messages> |
|                             |
| Software is like sex...     |
| It's better when it's free. |
+-----------------------------+

 ha scritto nel messaggio
news:xQPN9.2393$lj5....@tornado.fastwebnet.it...


 ha scritto nel messaggio
news:CK_N9.2687$lj5....@tornado.fastwebnet.it...


 > ex
CUT
quante probabilita ho di beccare 2 file con lo stessa dimensione e lo stesso
md5
ovviamente con contenuti differenti ?