|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jul 2009
Messaggi: 2072
|
[php] consenti solo da...
Ciao a tutti.
Ho bisogno di una mano per uno script php: - Ho un lettore flash per video e musica da mettere nel sito A. - Ho i video e la musica nel sito B (altro dominio, altro server). - Il lettore in flash richiede i link diretti (dominiob.com/files/video1.flv o music.mp3) o anche i link gestiti da uno script php (es: http://dominiob.com/play.php?f=video1.flv) Fin qui nessun problema. Nel dominio e server B dove sono hostati i files, voglio permettere l'apertura degli flv/mp3 solo da un referer specifico. Cioè: http://dominioA.com/player/player.swf PUO' accedere a http://dominioB.com/files/musica1.mp3; musica2.mp3; video1.flv etc... ma un download manager o grabber tipo orbit NON PUO' accedere direttamente al file. anche se qualcuno sa l'url non può accedervi, a meno che questo non sia il lettore. A tal proposito è possibile fare qualcosa in PHP che collega ai file tipo mp3 o flv solo se a richiederli è il dominioA/percorsodelplayer? So che mi sono espresso male ma ho un po di fretta. Grazie! |
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: Jun 2010
Città: Varese
Messaggi: 996
|
Quote:
Puoi fare uno script PHP che va a caricare il video, per esempio: Codice PHP:
I video li puoi mettere tutti in una directory e proteggerla con .htaccess e mod_rewrite di PHP, senza dare accesso dall'esterno (salvo quello di digitare correttamente l'URL; inoltre penso che tramite Apache puoi limitare questa cosa anche...). Successivamente che fai? Niente nel tuo file player.php controlli la provenienza della richiesta e carichi la risorsa (il video). Questa è una idea veloce e rozza saltata al momento in mente che funziona; se mi viene in mente qualcosa di più raffinato te lo scrivo |
|
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Jul 2009
Messaggi: 2072
|
Quote:
il fatto è che io lo userò per le canzoni., è un player con una playlist. quindi quando apri index.html che contiene il file flash ti viene scritto l'elenco delle canzoni ascoltabili. la playlist in xml contiene nome traccia e link. ed è quel link che io devo proteggere in modo da impedire download inautorizzati. le url inserite nella playlist devono puntare al file mp3 tramite link diretto o script in php (che a sua volta risolverà la mia richiesta e collegherà il player al file). Però non voglio che qualcuno al di fuori del player possa scaricare il file. non so se sia possibile. il mio problema non è quindi come riprodurre i file, ma come proteggerli da download non autorizzati. Non so se sia possibile far scaricare i file solo da un dominio specifico... spero di aver migliorato la comprensibilità! grazie x la risposta |
|
|
|
|
|
|
#4 |
|
Moderatore
Iscritto dal: Nov 2006
Messaggi: 21837
|
quello lo fai configurando in maniera oppurtuna il file .htaccess presente nella cartella degli mp3 in questo modo solo chi è autorizzato può accedere alla cartella con username e pwd
http://server.html.it/articoli/leggi...ess-in-apache/
__________________
"WS" (p280,cx750m,4790k+212evo,z97pro,4x8GB ddr3 1600c11,GTX760-DC2OC,MZ-7TE500, WD20EFRX) Desktop (three hundred,650gq,3800x+nh-u14s ,x570 arous elite,2x16GB ddr4 3200c16, rx5600xt pulse P5 1TB)+NB: Lenovo p53 i7-9750H,64GB DDR4,2x1TB SSD, T1000 |
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Jul 2009
Messaggi: 2072
|
Quote:
io non devo far accedere gli utenti con username e password, voglio che a quella directory possa accedere solo il player (in un altro server) e se qualcuno si connette anche sapendo il link gli esca un errore tipo Forbidden. probabilmente sono io che mi sono spiegato e continuo a spiegarmi male... |
|
|
|
|
|
|
#6 |
|
Member
Iscritto dal: Jan 2008
Città: roma
Messaggi: 296
|
la soluzione secondo me è un controllo sull'ip
__________________
Acer 5940G{Intel Core i7 Q720 Quadri motore; 8Gb DDR3; ATI Radeon HD 4650 1024MB; 500Gb hdd} |
|
|
|
|
|
#7 |
|
Bannato
Iscritto dal: Nov 2002
Città: Roma
Messaggi: 810
|
|
|
|
|
|
|
#8 | |
|
Senior Member
Iscritto dal: Jul 2009
Messaggi: 2072
|
Quote:
E' facile scriverlo? |
|
|
|
|
|
|
#9 | |
|
Moderatore
Iscritto dal: Nov 2006
Messaggi: 21837
|
Quote:
__________________
"WS" (p280,cx750m,4790k+212evo,z97pro,4x8GB ddr3 1600c11,GTX760-DC2OC,MZ-7TE500, WD20EFRX) Desktop (three hundred,650gq,3800x+nh-u14s ,x570 arous elite,2x16GB ddr4 3200c16, rx5600xt pulse P5 1TB)+NB: Lenovo p53 i7-9750H,64GB DDR4,2x1TB SSD, T1000 |
|
|
|
|
|
|
#10 | |
|
Senior Member
Iscritto dal: Jul 2009
Messaggi: 2072
|
Quote:
è come se tu hai un direct link di un mp3 con htacess + password e metti il link su Windows Media o VLC... non funziona! invece io devo farlo fare funzionare ma allo stesso tempo non farmi fregare le canzoni |
|
|
|
|
|
|
#11 | |
|
Moderatore
Iscritto dal: Nov 2006
Messaggi: 21837
|
Quote:
allora con htaccess neghi l'accesso alla cartella a chi vuoi tu, basta che fai in modo che il player sia grant
__________________
"WS" (p280,cx750m,4790k+212evo,z97pro,4x8GB ddr3 1600c11,GTX760-DC2OC,MZ-7TE500, WD20EFRX) Desktop (three hundred,650gq,3800x+nh-u14s ,x570 arous elite,2x16GB ddr4 3200c16, rx5600xt pulse P5 1TB)+NB: Lenovo p53 i7-9750H,64GB DDR4,2x1TB SSD, T1000 |
|
|
|
|
|
|
#12 |
|
Bannato
Iscritto dal: Nov 2002
Città: Roma
Messaggi: 810
|
Nel momento in cui trasferisci uno stream di qualsiasi tipo ad un player locale l'utente è SEMPRE in grado di salvare i tuoi file, anche se li proteggi da 2000 password.
Al massimo non saprà il nome che hai dato a quel file e la sua posizione sul tuo server, ma se glielo passi via streaming non c'è niente che tu possa fare per impedirgli di salvarlo (ad esempio utilizzando il semplice VLC). Non è che hai molte alternative. Motivo per cui sui siti ufficiali non trovi mai i brani completi ma sempre versioni a qualità ridotta o troncate. |
|
|
|
|
|
#13 |
|
Senior Member
Iscritto dal: Jul 2009
Messaggi: 2072
|
ok grazie!
|
|
|
|
|
|
#14 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
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 |
|
|
|
|
|
#15 | |
|
Senior Member
Iscritto dal: Jun 2010
Città: Varese
Messaggi: 996
|
Quote:
Io in GET passerei un hash dei file; provo a spiegarmi meglio. Codice:
video.php?id=c21a7f50739500292ab24dd37150fa8a Creerei quindi una tabella (relazioni) con ID/NOME video (quello che risiede direttamente su disco, ID, nome, quello che usi per riconoscerlo) e l'ID passato come parametro del GET (c21a7f50739500292ab24dd37150fa8a appunto). Perchè? Semplicemente non dai un riferimento diretto ad un utente visitatore al video sul Server. Puoi usare una banalissima codifica md5/sha1, serve solo per 'mascherare' la reale posizione/nome/id del video e poi, diciamolo, fa cooool :P vedere un qualcosa del tipo /video/c21a7f50739500292ab24dd37150fa8a |
|
|
|
|
|
|
#16 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Non credo che possa aggiungere sicurezza, visto che passare sempre lo stesso hash o sempre lo stesso id sarebbe comunque equivalente
Allora sarebbe più bello codificare l'id con una one time password creata all'inizio alla creazione della sessione. Ecco, in questo modo si aggiunge sicurezza perché il link al file cambia sempre ad ogni nuova sessione. Ad esempio, si genera una one time password in base a nome utente e un numero casuale e la si salva nella sessione (non transiterà quindi mai verso l'utente). Questa one time password viene usata come chiave per codificare l'id del file (opportunamente allungato aggiungendo un numero di cifre davanti fino a raggiungere un lunghezza prefissata, ad esempio 10). Ovviamente bisogna usare un algoritmo di cifratura adatto. |
|
|
|
|
|
#17 | ||
|
Senior Member
Iscritto dal: Jun 2010
Città: Varese
Messaggi: 996
|
Quote:
Ecco, sicuramente devo farmi una JOIN per ritirarmi fuori il nome vero, perdendo comunque quel 0.00001s di prestazioni :P Quote:
|
||
|
|
|
|
|
#18 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Tanto il file non è accessibile dall'esterno. Senza contare che potrei aggiungere un prefisso al file o aggiungere altri dati, come ad esempio un timestamp (potrei dare il nome al file con timestamp_id). Ovviamente posso recuperare il timestamp associato all'id dal DB.
|
|
|
|
|
|
#19 | |
|
Senior Member
Iscritto dal: Jun 2010
Città: Varese
Messaggi: 996
|
Quote:
Un pò come avviene nel configuratore Dell, provare per credere |
|
|
|
|
|
|
#20 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
Allora facciamo così: trasmettiamo l'id del video tramite variabile di sessione e non ne parliamo più |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 09:47.




















