Gli accorgimenti che si possono prendere sono molteplici:
- nascondere i file dietro ad uno script php (quello consigliato da dojolab)
- controllo del referer
- controllo di una variabile nella sessione
Possono anche essere presi tutti e tre contemporaneamente.
Prima di tutto devi creare uno script php che astrae i file .mp3 o qualsiasi altro file tu voglia creare.
I file dovranno essere spostati in una directory non accessibile tramite web o non accessibile direttamente (bloccando l'accesso tramite la richiesta di una password ad esempio) e dovranno essere memorizzati con il nome uguale ad un id numerico. Questo id numerico è il riferimento assegnato all'interno di un database al momento dell'aggiunta di un file (all'id corrisponderanno tutte le caratteristiche del file: nome esatto, durata, tipo del file, autore, etc etc).
Lo script riceva tramite GET l'id di un file. Verificherà l'esistenza di una sessione e di una variabile di sessione che autorizza l'utente ad accedere a quel dato file (in caso contrario nega l'accesso). Andrà a recuperare il tipo del file dal database, imposterà il mime-type (primo commento a questo
link) corrispondente al tipo del file e andrà ad aprire direttamente il file e a darlo in output.
La parte di recupero del file puoi vederla qui:
http://www.hwupgrade.it/forum/showpo...9&postcount=10
Non fa la stessa cosa, perché lì si va ad aprire un url, ma alla fine è molto simile:
- controlli il referer (deve essere uguale ad un variabile impostata nella sessione) e controlli l'autorizzazione ad accedere a quel file (qui sarai tu a decidere come concedere l'autorizzazione). Questo impedisce di scaricare senza passare dalla pagina precedente l'accesso al file.
- recuperi il tipo del file dal DB in base all'id e setti il mime-type (se ti interessa nascondere solo un tipo puoi saltare questo passo e settare solo il mime-type)
- dai in output il file specificato con readfile