Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1

    Proteggere i download dal sito

    Ho creato una pagina in php a cui si può accedere solo mediante l'inserimento di una password e di una user all'interno di un form. In sostanza in cima alla pagina leggete:

    Codice PHP:
    <?php
    session_start
    (); 
    if (isset(
    $_SESSION['login'])) {
    ecc... ecc...
    All'interno di questa pagina si possono scaricare dei file .pdf che risiedono in una determinata cartella chiamata X. Detro X so che dovrei mettere 2 file:
    1) .htaccess file
    2) robot.txt file

    Però dentro cosa ci dovrei scrivere?

    Grazie
    MySpace:
    http://www.myspace.com/550584979
    My new personal web site:
    http://www.ubaldogulotta.eu/

  2. #2
    Beh... credo che innanzi tutto sia necessario fare un po' di chiarezza.
    Il file .htaccess è un file di configurazione dei server Apache (quindi se sei su server Windows non dovrai neanche perdere troppo tempo a leggere gli esempi che seguono), il quale modificherà l'accesso a file, cartelle e sottocartelle della root del tuo sito in base alle regole che vi scriverai.

    Il files robot.txt, come dice il nome stesso, serve per aiutare i robots (meglio conosciuti anche come spider dei motori di ricerca) ad orientarsi nelle pagine del tuo sito, andando ad indicizzare o meno quello che vi troverà, ed eventualmente influenzandone in maniera corretta il modo di indicizzazione.

    Una volta detto questo, con il files robots.txt tu potrai nascondere ad un motore di ricerca una cartella oppure un file, ma non ad un male-intenzionato che voglia provare a scaricare documenti importanti, o comunque protetti da password, dal tuo sito.

    Ti lascio un link ad una pagina, dove troverai 16 esempi di utilizzo del file HTACCESS che ti potranno un po' stimolare e far capire il modo di utlizzo e la sua "grammatica".
    Googolando un po' trovi davvero un mare di informazioni in merito.

    Io comunque fossi in te, metterei i file in una cartella, ne farei l'upload via MySQL, e nasconderei a tutti la collocazione fisica dei file stessi, cioè in una cartella senza pagina di index (per esmepio).
    Userei quindi HTACCESS, per vietare l'accesso diretto alle cartelle senza index e permetterei il download solo dopo che uno script PHP abbia recuperato il nome del file dal database.

    Forse sono stato un po' farraginoso nell'esposizione di quello che farei io.
    Prima capisci bene come usare htaccess, magari ti basta quello. Eventualmente, non hai che da chiedere!



    Esempi per file .HTACCESS
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  3. #3
    Io comunque fossi in te, metterei i file in una cartella, ne farei l'upload via MySQL, e nasconderei a tutti la collocazione fisica dei file stessi, cioè in una cartella senza pagina di index (per esmepio).
    Userei quindi HTACCESS, per vietare l'accesso diretto alle cartelle senza index e permetterei il download solo dopo che uno script PHP abbia recuperato il nome del file dal database.
    Grazie alcio74, vado a leggere il link che mi hai postato comunque non ho capito la frase sopra.
    MySpace:
    http://www.myspace.com/550584979
    My new personal web site:
    http://www.ubaldogulotta.eu/

  4. #4
    In effetti, già rileggendola, io stesso avevo stentato a capire me stesso!
    Comunque se cerchi nel forum, ci dovrebbe essere un bel sistema di upload e download di file dinamico quasi belo che pronto. Cerca che magari capisci meglio cosa intendo.

    In linea di massima devi creare tre script.
    Uno di amministrazione, dove c'è una form che carica i file da far scaricare agli utenti in un DB (solo i riferimenti) e fisicamente i file in una cartella.
    Uno script pubblico (quello per gli utenti) il quale andrà a recuperare i nomi ed i tipi dei file dal DB e l'identificativo univoco di ogni file.
    Nello script troverai per ogni link a file, una istruzione del genere.

    Codice PHP:
    [url="dowload.php?fileID=xxx"]Scarica YYYY.ZZ[/url
    dove XXX è il riferimento pescato dal DB.

    Il terzo script è il vero motore di download.
    Nello script dowload.php non farai altro che recuperare la variabile fileID.
    Interrogare il DB per quella variabile e restituire il nome effettivo del file ad uno script che (grazie agli header) permette di scaricare il file.
    Ti ripeto, se cerchi nelle vecchie discussioni del forum, trovi di sicuro molti script già preconfezionati.

    In questo modo, la cartella dove risiedono fisicamente i file già rimane "nascosta" agli utenti meno smaliziati.
    Per quegli altri, usi HTACCESS (e qui mi ricollego al post iniziale senza andare Off-Topic), inibendo l'accesso diretto alla cartella... sostanzialemnte scrivendo nel browser l'indirizzo per raggiungerla.

    Ti è un po' più chiaro ora il concetto?
    Ti prego dimmi di sì o perdo la mia autostima!!!

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  5. #5
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    poi se oltre a quanto suggerito da Alcio74 vuoi stare ancora più tranquillo, i file mettili in una cartella che sia fuori dalla DocumentRoot di Apache, così il malintenzionato avrà seri problemi ad arrivarci... Lo script invece ci arriverà, dato che sarà nello stesso filesystem, dovrai solo dargli il percorso corretto

  6. #6
    Originariamente inviato da clasku
    poi se oltre a quanto suggerito da Alcio74 vuoi stare ancora più tranquillo, i file mettili in una cartella che sia fuori dalla DocumentRoot di Apache, .....
    Beh: questa è una finezza!!!!!
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  7. #7
    Originariamente inviato da alcio74
    In effetti, già rileggendola, io stesso avevo stentato a capire me stesso!
    Comunque se cerchi nel forum, ci dovrebbe essere un bel sistema di upload e download di file dinamico quasi belo che pronto. Cerca che magari capisci meglio cosa intendo.

    In linea di massima devi creare tre script.
    Uno di amministrazione, dove c'è una form che carica i file da far scaricare agli utenti in un DB (solo i riferimenti) e fisicamente i file in una cartella.
    Uno script pubblico (quello per gli utenti) il quale andrà a recuperare i nomi ed i tipi dei file dal DB e l'identificativo univoco di ogni file.
    Nello script troverai per ogni link a file, una istruzione del genere.

    Codice PHP:
    [url="dowload.php?fileID=xxx"]Scarica YYYY.ZZ[/url
    dove XXX è il riferimento pescato dal DB.

    Il terzo script è il vero motore di download.
    Nello script dowload.php non farai altro che recuperare la variabile fileID.
    Interrogare il DB per quella variabile e restituire il nome effettivo del file ad uno script che (grazie agli header) permette di scaricare il file.
    Ti ripeto, se cerchi nelle vecchie discussioni del forum, trovi di sicuro molti script già preconfezionati.

    In questo modo, la cartella dove risiedono fisicamente i file già rimane "nascosta" agli utenti meno smaliziati.
    Per quegli altri, usi HTACCESS (e qui mi ricollego al post iniziale senza andare Off-Topic), inibendo l'accesso diretto alla cartella... sostanzialemnte scrivendo nel browser l'indirizzo per raggiungerla.

    Ti è un po' più chiaro ora il concetto?
    Ti prego dimmi di sì o perdo la mia autostima!!!

    Si ora mi é tutto più chiaro e credo che sia proprio quello che mi serve però qui su html.it trovo solo script per l'upload e non per il download. Se cerco nel forum trovo delle discussioni riguardanti questo problema specifico ma molto tecniche e non relative allo script di cui parli. Perché sono così impedito...

    Lo script che descrivi fa l'upload dei file sul server automaticamente oppure "utilizza" filezilla?

    Adesso sto lavorando in locale però alla fine del lavoro devo caricare tutto su di un hosting di prova ed infine su quello ufficiale se al cliente piace il lavoro. Voi parlate di root e di cartelle esterne ma come faccio a distinguerle quando apro filezilla? Devo chiedere questa info al mio hosting?

    Grazie infinite

    P.S.: Mi date una mano a cercare questo script?
    MySpace:
    http://www.myspace.com/550584979
    My new personal web site:
    http://www.ubaldogulotta.eu/

  8. #8
    Originariamente inviato da ubaldo.gulotta
    Lo script che descrivi fa l'upload dei file sul server automaticamente oppure "utilizza" filezilla?
    Beh... la risposta alla tua domanda è nella domanda stessa.
    Stiamo parlando di script PHP, quindi non di client.

    Ho provato a fare una ricerchina io.
    C'è molto materiale, ma quella specifica non la ritrovo.
    Se non ricordo male c'era anche una pillola in merito.
    Usa quindi "pillola upload file" come chiave di ricerca.

    Adesso però chiedo spiegazioni perché non capisco una cosa.
    Vuoi che ti facciamo lo script da zero oppure hai già del codice da debuggare?

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  9. #9
    Io ho già del codice. Ho una pagina in php a cui é possibile accedere solo inserendo, in un'altra pagina, delle credenziali di accesso (password e user). Io vorrei che l'utente potesse scaricare o leggere i file solo accedendo a questa pagina riservata e non mediante link diretto alla cartella dove si trovano i pdf. Se in quest'ultima aggiungo un file .htaccess con dentro scritto:

    # Directory di disabilitare la navigazione
    Options All-Indexes

    (i codici li ho presi dalla pagina che mi hai lincato)

    non riesco più neppure ad accedere ai file dalle pagine con le credenziali di cui ho parlato sopra. Per questo motivo speravo appunto di trovare qualche altro script più funzionale oppure di riscrivere l'.htaccess...
    MySpace:
    http://www.myspace.com/550584979
    My new personal web site:
    http://www.ubaldogulotta.eu/

  10. #10
    Quando ci approccia alla programmazione, una delle prime regole da seguire è quella del passo alla volta.
    A me sembra invece che stai facendo di 3/4 cose diverse diversi un unica volta.... ed ovviamente non funziona più nulla.

    A te serve (per adesso) solo la protezione diretta a questa cartella, significa che la cartella non deve avere nessun file index.qualcosa all'interno, il che significa che con la regola che te hai scritto, se lo script con la form di accesso si chiama INDEX.PHP, questo non funziona.

    Mi spiego?
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.