Newsgroup: it.comp.www.php
Titolo: Protezione cartella sito web

Buongiorno a tutti, come posso fare per far sì che i miei clienti
possano accedere ad una cartella personale contenuta nel mio sito e
visualizzare una lista di file scaricabili? La cartella ed i relativi
file contenuti dovrebbe essere vista solo dal cliente interessato.
Ho visto qualche cosa tramite PHP per loggare un cliente ed accedere
ad una pagina riservata; si può fare qualche cosa di simile per una
intera cartella?
Grazie

 intera cartella?
Si, ma la domanda lascia intendere che non sapresti comunque come farlo.
Se il tuo server web è Apache potresti configurare l'accesso ad un 
percorso in .htaccess, forse è una soluzione più veloce.

 Si, ma la domanda lascia intendere che non sapresti comunque come farlo.
A parte l'autenticazione HTTP (in cui diciamo che PHP può anche 
restarne fuori) rendendo protetta una cartella, come faresti solo via 
php ciò che chiede mdg98? Oltre a includere in ogni pagina della 
cartella lo stesso script che richiede user e pass, non vedo 
alternative. :-)
--
rob4you

 alternative. :-)
Infatti farei proprio così.

 Infatti farei proprio così.
Ah ecco! :-)
E se nella cartella da proteggere ci fossero seicento file? Vatti a 
modificare a mano ognuno di quei seicento file per includergli la parte 
di autenticazione. :-)
Devo vedere, non ricordo, se esiste un modo per "autoincludere" in ogni 
file php un altro file, magari modificando il php.ini, senza che io 
vada a inserirlo manualmente in ogni file con "include".
Beh, se pur ci fosse un metodo, sorgerebbe il problema opposto :-) e 
cioè NON includere quel file nelle cartelle dove NON voglio che sia 
incluso.
Soluzione possibile: se si potesse fare in modo che un file da 
includere automaticamente sia incluso solo se è presente nella 
directory dove risiedono anche gli altri file (in modo appunto da 
essere incluso automaticamente SOLO in tutti i file di quella 
cartella), il problema sarebbe più o meno risolto. Vabbe...ci sarà da 
indagare....sempre che interessi a qualcuno. :-)
--
rob4you

Sicuramente mi sono spiegato male. Il mio problema è il seguente:
- ho una cartella all'interno della struttura del mio sito web che ha
il seguente percorso: 
http://www.miosito.it/download/cliente01
;
- all'interno di questa cartella ho 10 file .zip che vorrei far vedere
solo a determinati clienti.
La mia domanda è:
Come posso fare per fare in modo che se uno digita sul proprio browser
http://www.miosito.it/download/cliente01
 non riesca a vedere e
scaricare la lista dei 10 file .zip a meno di non procedere ad una
autenticazione tramite UID e PW?
Come certamente si evince dal mio primo post non conosco PHP ma
essendo riuscito ad applicare l'autenticazione tramite UID e PW ad una
pagina (
http://www.miosito.it/download/cliente01/listafile.htm
),
pensavo (nella mia ignoranza in materia), di poterlo fare anche per
http://miosito.it/download/cliente01
.
Per quanto riguarda il tipo di server, non so se è Apache, ma se serve
posso chiederlo al nostro provider.
Grazie
rob4you ha scritto:


 autenticazione tramite UID e PW?
Non è un problema di competenza di php.
Devi proteggere la cartella. Con Apache in soldoni ti serve ad esempio 
un file .htaccess all'interno della cartella da proteggere, in cui 
specifichi chi può accedervi.
In ogni caso, il contenuto della cartella non lo vedrai, a meno che 
(supponendo sempre apache come webserver) non hai attivato l'opzione 
"Indexes" (cosa che di solito proprio per motivi di tutela non viene 
fatta mai, salvo che in fase di testing).
--
rob4you

 posso chiederlo al nostro provider.
Dovresti poterlo leggere anche nelle risposte http.

 >
http://www.miosito.it/download/cliente01non
 riesca a vedere e


 e' di 170 euro il costo annuale e' 130 euro"
Ti dispiacerebbe segnalare quale è il tuo fornitore? E che tipo di 
piano hai?
--
rob4you


E' un provider locale.
Il nostro 'piano' consiste in 50 euro mensili per l'ADSL 4 Mb con IP
fisso e 230 euro l'anno per 25 caselle postali senza limite e 2 domini
di secondo livello. Ma perchè lo vuoi sapere?
In base alle risposte che mi avete dato ne deduco che il mio problema
lo può risolvere solo il provider. E' corretto?
Grazie

 Grazie
Ma no, dai.
Non serve agire sul web server.
La cartella con i file la escludi dall'albero http.
Es.:
cartella del web: /www/httpdoc/
cartella dei file: /miei/file/nascosti/
I permessi sui file li puoi gestire tramite un solo file TXT o meglio,
una tabella di mysql.
Condisci tutto con le normalissime funzioni da filesystem.
opendir() ecc. ecc.
ed alla richiesta dell'utente del file, lo rimandi ad una pagina php dal
nome
scaricati_sto_file.php?filedascaricare=questoqua
Che dopo le opportune verifiche legge il file dalla posizione non
accessibile da web e lo spara a video con gli opportuni headers.
-- 
Cordialmente.
Melus.
dal mio e-mail togli i simboli di Zorro.

 Ma perchè lo vuoi sapere?
Perché, se ti hanno chiesto 170 + 130 euro sono davvero dei ladri. :-)
Come ti ha risposto Melus, proteggere una cartella è una cosa imediata: 
basta eliminarla dal percorso del serverweb.
Se non puoi fare ciò, ti basta editare il file .htaccess con i permessi 
di chi può vedere cosa. E poi usi interamente la procedura descritta da 
Melus. Magari potresti "md5-are" il nome del file per renderne più 
difficile la corrispondenza, o trucchetti di questo genere.
Ma quello che ti hanno detto i fornitori del tuo servizio proprio NO! 
:-)
--
rob4you

> > autenticazione tramite UID e PW?
SE e' esattamente questo quello che vuoi, e ti contenti di amministrare
user e password (nonche' i file in download!) via FTP, allora - ammesso
che tu usi Apache - basta cambiare due righe, nella configurazione, una
volta per tutte.
Direi che dieci euro sia un prezzo giusto.
Prima pero' proverei a uploadare i file .htaccess e .htpasswd, e vedere
se per caso la configurazione e' gia' presente. In quel caso avresti la
funzionalita' gia' di serie.
Leonardo
-- 
There is nothing makes a man suspect much, more than to know little,
and therefore men should remedy suspicion by procuring to know more,
and not keep their suspicions in smother.            (Francis Bacon)

 accessibile da web e lo spara a video con gli opportuni headers.
Non sono sicuro di seguire.
Come li "spara" a video con gli headers se i file non sono in webroot ?

 and not keep their suspicions in smother.            (Francis Bacon)
Ti ringrazio molto (e ringrazio anche tutti gli altri), ho provato ad
uploadare i file .htaccess e .htpassword ed ho verificato che la
funzionalità è attivata. Poi ho utilizzato HTAdminLite 0.92 beta (che
consiglio caldamente per chi dovesse avere le mie stesse necessità) ed
ho attivato una serie di cartelle perfettamente (spero) protette da
userID e password.
Grazie ancora a tutti

funzionalità è attivata.
Questo LOL s'ha da fare.


 funzionalità è attivata. 
300 euro risparmiati, però occhio al quoting.

 Come li "spara" a video con gli headers se i file non sono in webroot ?
Il php è in grado di vedere tutto il file sistem, indipendentemente da
come hai impostato il webserver.


 come hai impostato il webserver.
Avevo male interpretato, con "spara a video con gli opportuni headers.
" credevo intenndessi volessi usare un "Location:".