Originariamente inviato da Ethan1978
Salve a tutti.
Come da titolo ho questo enigma da risolvere. Ho letto un pò di argomenti al riguardo ma a tutt'ora non ne sono venuto a capo.
Stò creando una webapp dove per ogni utente registrato permetterà di poter caricare tante immagini quante ne siano a lui necessarie.
Devono però essere accessibili solo a lui e non visibili e7o modificabili da altri. Le uniche due soluzioni riguardano quindi l'immissione delle immagini direttamente nel database (molto sicuro come metodo) oppure la creazione di cartelle apposite nel filesystem protette con .htpassw.
Entrambi i metodi a mio avviso sono validi se non con qualche limitazione circa le dimesioni nel primo caso e il numero di immagini nel secondo (ovviamente anche le dimensioni).
Voi avete qualche parere al riguardo?
Grazie
Ethan78
Le salvi su filesystem.
Nella cartella dove le salvi (una per tutti o una per utente, cambia poco) metti una index in modo che non si possa visualizzare il contenuto della cartella e imposti a false il "list directory content" nel web server.
Se vuoi che nessuno oltre il proprietario possa vedere un'immagine (es http://www.sito.it/immagini/pippo.jpg NON deve essere visualizzata da nessuno tranne il proprietario) allora non usare un .htaccess (che devi gestire!) ma fai così:
quando stai per salvare l'immagine sul filesystem, anzichè col nome "pippo.jpg" la salvi con un md5 di "id_utente, nome_immagine_senza_estensione, data_inserimento".estensione e salvi nella tabella delle immagini l'id_utente, il nome originale CON estensione, il nuovo nome e la data in formato UTS.
Codice PHP:
$adesso = time();
foreach ($_FILES as $campo => $file) {
$ext = pathinfo($file["name"], PATHINFO_EXTENSION);
$nome = pathinfo($file["name"], PATHINFO_BASENAME);
$new_name = md5("{$id_utente}{$nome}{$adesso}") . $ext;
$sql = "INSERT INTO Immagini (id_utente, data, nome_file_originale, nome_file_nuovo) VALUES ($id_utente, $adesso, '{$new_name}', '{$file["name"]}'";
altre istruzioni eventuali (esecuzione query, controlli di coerenza, salvataggio sul file system del file ecc)
}
così facendo nella cartella immagini hai dei file del tipo
19f942e6cdde23fd0e727cb328eca133.jpg
8dc0f648c27180c2306359d6e258d4ae.gif
eccetera, piuttosto difficili da "indovinare" 
Quando l'utente si logga, dalla tabella delle immagini recuperi i dati (id_utente, data, nome_file_originale, nome_file_nuovo) e così hai tutte le info per recuperare limmagine e fargliela gestire (vedere, cancellare, rinominare ecc)