none
Impedire l'accesso ai file RRS feed

  • Domanda

  • Ciao,
    probabilmente non è il forum adatto, ma non sapevo dove altro postare.
    Ho una Web App in Asp.net che gestisce l'accesso ad alcuni file Pdf. Il problema è che se punto il file, tipo http://www.google.it/myfolder/test.pdf, il file si apre tranquillamente e questo non va bene. Potrei bloccarne l'esecuzione ma mi chiede le credenziali di accesso e non saprei come gestirle da codice. (Spazio su Aruba)

    In pratica vorrei che il file non si potesse aprire o scaricare se non tramite la mia App, evitando, se possibile, di usare database, cosa che renderebbe tutto semplicissimo ma non è la modalità che desidero.
    Non so se sono stato chiaro e se il quesito riguarda più IIS che Asp.net.
    Grazie a chi mi può aiutare.

    giovedì 21 maggio 2020 08:44

Risposte

  • Secondo me una soluzione potrebbe essere quella di far visualizzare il file pdf tramite un gestore handler;
    in questo modo la tua applicazione restituirà il file secondo un url tipo miosito.it/viewpdf.ashx?fileName={0}&altroparametro={1}.

    Magari potresti utilizzare un altro handler per negare la visualizzazione di tutti i files con estensione pdf.

    L'idea è quella di visualizzare i vari files pdf con l'utilizzo obbligatorio di alcuni parametri (potresti generare in maniera casuale un codice in session e passarlo in querystring in maniera da farlo poi confrontare dall'handler).

    Si tratta di una soluzione un po complessa sinceramente ma al momento non mi viene nulla di più semplice.



    Paolo Pranzo

    giovedì 21 maggio 2020 17:06

Tutte le risposte

  • Ho trovato questo codice da inserire nel web.config, ma impedisce l'accesso alla cartella (e questo già lo faccio), non ai files.

    <security>
         <requestFiltering>
           <hiddenSegments>
             <add segment="Uploads"/>
           </hiddenSegments>
         </requestFiltering>
    </security>

    giovedì 21 maggio 2020 09:15
  • Ciao Francesco,
    vorrei prima capire un concetto: l'applicazione asp.net dovrebbe leggere/eseguire alcune operazioni sui files pdf o deve essere lei a far visualizzare secondo alcune autorizzazioni i vari files?
    Uno per scrivere l'esatto url del file pdf dovrebbe prima conoscere la directory e il nome del file altrimenti come fa a visualizzare il pdf?

    Paolo Pranzo

    giovedì 21 maggio 2020 16:24
  • Ciao Paolo,
    l'applicazione in base a dei parametri di ricerca trova il file pdf e lo rende disponibile per il download al client. Il problema è che conoscendo il percorso ed il nome del file pdf, che dovrebbe essere accessibile solo dall'applicazione, ora viene tranquillamente aperto da chiunque. Anche se è davvero poco probabile che si possa conoscere il percorso ed il nome del file, ho bisogno della certezza assoluta che, qualora venga individuato, il download sia bloccato.

    Mi spiego meglio: l'utente inserisce due parametri in una pagina, l'applicazione effettua una ricerca in base ai parametri inseriti e, se trova un file corrispondente, lo invia al client per il download, altrimenti segnala un errore.
    Se però io so che il file si trova in /miosito/files/prova.pdf e lo punto, adesso lo scarico, ed è questo che vorrei impedire.

    Non so se sono stato felice nell'esposizione, considerata la mia imbranataggine ormai universalmente conosciuta...
    Grazie!

    giovedì 21 maggio 2020 16:41
  • Secondo me una soluzione potrebbe essere quella di far visualizzare il file pdf tramite un gestore handler;
    in questo modo la tua applicazione restituirà il file secondo un url tipo miosito.it/viewpdf.ashx?fileName={0}&altroparametro={1}.

    Magari potresti utilizzare un altro handler per negare la visualizzazione di tutti i files con estensione pdf.

    L'idea è quella di visualizzare i vari files pdf con l'utilizzo obbligatorio di alcuni parametri (potresti generare in maniera casuale un codice in session e passarlo in querystring in maniera da farlo poi confrontare dall'handler).

    Si tratta di una soluzione un po complessa sinceramente ma al momento non mi viene nulla di più semplice.



    Paolo Pranzo

    giovedì 21 maggio 2020 17:06
  • In effetti è quello a cui stavo pensando anche io. Cercavo di evitarlo, ma probabilmente mi tocca.
    Grazie!
    giovedì 21 maggio 2020 17:11