Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    9

    Download con approvazione

    Salve a tutti, provo a spiegare quello che vorrei realizzare in php, sperando che possa essere anche un modo per aiutare chi come me ha bisogno di questa cosa.
    Mi spiego meglio:

    devo sviluppare un sistema di download con approvazione. In dettaglio ho due tipologie di utente:

    Admin: Può caricare documenti "doc" o "pdf" . I documenti caricati non devono essere nè visibili nè scaricabili.

    User: L'utente registrato può visionare la lista dei documenti disponibili ma non può scaricarli. L'unica cosa che può fare è effettuare una richiesta di download che in un secondo momento un admin approva. Solo dopo l'approvazione dell'admin, il download è possibile. L'approvazione dell'admin vale una ed una sola volta. Un secondo download deve essere comunque riapprovato.

    Per fare ciò le due problematiche affrontate sono:

    1) Fare in modo che i file caricati dall'admin non siamo scaricabili. Per fare ciò ho sfruttato i file .htaccess e .htpasswd all'interno della cartella che corrisponderà alla cartella di upload dei file caricati dall'admin

    2) Fare in modo di accedere ai dati nella cartella "topsecret" solo in caso di approvazione.
    Per implementare ciò pensavo di far corrispondere all'atto dell'approvazione una "chiave" attraverso la quale poter effettuare il download sfruttando il seguente codice php:

    (nell'esempio ho messo un file xml nella cartella "topsecret")

    Codice PHP:
     <?php
     $attachment_location 
    $_SERVER["DOCUMENT_ROOT"] . "/testuploader/topsecret/test.xml";
     echo 
    $attachment_location;
            if (
    file_exists($attachment_location)) {

                
    header($_SERVER["SERVER_PROTOCOL"] . " 200 OK");
                
    header("Cache-Control: public"); 
                
    header("Content-Type: application/zip");
                
    header("Content-Transfer-Encoding: Binary");
                
    header("Content-Length:".filesize($attachment_location));
                
    header("Content-Disposition: attachment; filename=test.xml");
                
    readfile($attachment_location);
                die();        
            } else {
                die(
    "Error: File not found.");
            } 
    ?>

    Ebbene a rigor di logica mi pare che funzioni tutto, ma voglio capire se vi sono soluzioni migliori o per lo meno se questa soluzione potrebbe portare dei problemi di sicurezza.

    Inoltre, avendo provato il codice (e pare funzionare) volevo capire il modo di funzionamento dell'htaccess e htpasswd. Nel senso che se accedo da codice php non è necessario inserire user e password visto che mi fa accedere alla cartella "topsecret" senza eseguire nessun tipo di autenticazione da codice PHP, mentre se provo ad accedere tramite browser mi viene richiesta lo user e la password. Quindi i file in questione servono solo per accessi "dall'esterno" del web server? E' corretto il mio ragionamento?

  2. #2
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Ciao, non ti conviene mettee a DB i dati?
    Fai una tabella con i campi: filemane, uid_request, confirm
    Quando un utente fa richiesta il campo uid_request si popola col suo ID utente.
    L'admin guarda la lista e vedra le richieste, approvando il campo confirm passa da 0 a 1 e sarà sacaricabile solo se confermato.
    Una volta scaricato elimini il record del donwload così da dove chiedere ancora l'approvazione.

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    9
    Si si per la gestione delle richieste e approvazione sicuramente userò il db, però anche con il db i file una volta caricati sullo spazio web vanno protetti no?

  4. #4
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Volendo si, non riordo la regola per htaccess ma ad ogni modo si può tranquillamente bloccare l'accesso ad una cartella lato browser.

    Non ricordo il comando esatto ma dovrebbe essere bloccare il directory listing

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    9
    Ok quindi secondo quanto detto con l htaccess inibisco l'accesso dal browser mentre se volessi recuperare qualche file da php posso farlo tranquillamente. Giusto?

    Al di la di questo vi sembra la soluzioni migliore per il mio caso? o potrei avere problemi di sicurezza? i file che devo proteggere sono molto importanti

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.