View Full Version : [php/html/web] proteggere le immagini
gaglioppo
09-12-2005, 11:28
ciao amici,
ho fatto un sito in cui solo i membri registrati possono accedere alle immagini (foto), in php tutto funziona, ho creato una pagina dal nome "visualizza.php" a cui viene passato l'id della foto e il sistema verifica se l'utente è registrato (db+session) e da o meno il consenso alla visualizzazione.
Ho notato però che se faccio una ricerca per immagini su google le foto me le trova con il relativo percorso, sicuramente perchè il mio sito è stato indicizzato PRIMA che realizzassi il sistema di login.
Uso altervista.
Ho visto che posso mettere una password sulla cartella "foto", ma ogni volta che un utente deve visualizzare una foto (essendosi loggato correttamente) il sistema richiede la password di altervista.
Si può evitare questo?
GRazie
Basta mettere le foto in una cartella non accessibile dalla gerarchia del server web...
Basta mettere le foto in una cartella non accessibile dalla gerarchia del server web...
:confused:
Mi sfugge il passaggio...
Se la metti in una cartella non accessibile, come puoi farla visualizzare a chi ne ha diritto? Fai un codice PHP che legga il file e lo butti nello stream verso il browser?
Fai un codice PHP che legga il file e lo butti nello stream verso il browser?
Esatto ;)
Basta inviare il giusto Content-Type nell'header, controlli le credenziali dell'utente (nella sessione o nei cookie) e poi prendi il file pari pari e lo metti nello stream di uscita con readfile...
Esatto ;)
Basta inviare il giusto Content-Type nell'header, controlli le credenziali dell'utente (nella sessione o nei cookie) e poi prendi il file pari pari e lo metti nello stream di uscita con readfile...
Grazie !
E' praticamente la stessa cosa che faccio in Java per i PDF, non mi ero mai posto il problema per le immagini ;)
gaglioppo
09-12-2005, 22:47
fermi tutti, che qui mi sono perso.
In pratica dovrei mettere le immagini in una cartella protetta? se no cosa vuol dire "...una cartella non accessibile dalla gerarchia del server web..." ?
Provo a inserire un elemento che può far luce: se scrivo l'url:
http://nomesito.altervista.org/images/photo
non si vede la "directory" con tutti i file della cartella photo, basta questo?
Punto secondo, cosa vuol dire "...prendi il file pari pari e lo metti nello stream di uscita con readfile....."?
Sarebbe che esistono comandi che mi permettono di caricare in qualche modo il file in una struttura php e poi ritrasformarla in immagine?
in termini di codice di programmazione?
Scusate tantissimo, ma su questi aspetti sono veramente agli inizi, grazie
Non c'è alcun bisogno di "trasormarlo" in immagine...basta impostare il Content-Type giusto (rispetto al tipo dell'immagine) con la funzione header...
Poi dopo bata mandare in output il file relativo all'immagine, così come, preso per intero dal disco...
Un cartella come questa:
http://nomesito.altervista.org/images/photo
sarebbe troppo banale... Basta guardare il parametro passato ad image.php (il file php che carica le immagini) e aggiungerlo al path sopra per accedere alle immagini... L'ideale sarebbe avere una cartella non accessibile dal web (se il server web ha la sua directory base in /usr/tuonome/htdocs/, l'ideale sarebbe avere a disposizione le immagini in /usr/tuonome/images/), ma solitamente non è disponibile una cartella del genere negli hosting free, ma anche a pagamento (per alcuni c'è una cartella cgi-bin su cui il server web non può accedere direttamente ai file in lettura)...
A questo punto serve una strategia diversa... Crei una cartella con un nome molto complesso: /h5432dfasdf543/ e metti le immagini lì dentro...
A questo punto serve una strategia diversa... Crei una cartella con un nome molto complesso: /h5432dfasdf543/ e metti le immagini lì dentro...
In effetti, in questo modo, solo il codice PHP (che non viene visto dal browser) saprebbe dove andare a pescare.
Se uno ci aggiungesse un .htaccess, non dovrebbe avere ancora maggiore sicurezza? Se non sbaglio l'.htaccess blocca l'accesso al browser, non alle applicazioni sul server, così le immagini sarebbero servite senza richiesta di ulteriori password se elaborate dal codice php, mentre occorrerebbe una password per accedere direttamente alla cartella.
Se uno ci aggiungesse un .htaccess, non dovrebbe avere ancora maggiore sicurezza? Se non sbaglio l'.htaccess blocca l'accesso al browser, non alle applicazioni sul server
Giusto anche questo...anche se molti hosting non lo permettono...
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.