Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Come posso bloccare il download o la visualizzazione dei files?

    Ho realizzato uno script in php che gestisce l'archiviazione dati di files pdf con tanto di login e password per la gestione degli utenti.
    Il programmino permette l'inserimento dei files solo in alcune cartelle dell'archivio, mentre altre cartelle sono visibili solo dall'amministratore.
    Il problema sorge quando un utente, conoscendo il percorso di un file archiviato dall'amministratore, può visualizzare il file inserendo il percorso per intero nella barra degli indirizzi del browser.

    Esiste un metodo in Apache che impedisce l'accesso diretto ai files contenuti nelle cartelle private dell'archivio, lasciando però la possibilità di scaricarli tramite script php?

    Pensavo di proteggere la cartella tramite password, ma poi esiste il modo di non far visualizzare la richiesta della password facendo il dawnload dallo script in php?

  2. #2
    per quanto riguarda apache puoi usare l'htaccess e l'htpassword ma un utente che ha già avuto accesso all'area privata e deve mettere una password un'altra volta potrebbe diventare scocciante...

    io ti consiglio ( ma questo non riguarda più apache ma direttamente php ) di creare una pagina php che funga da proxy... mi spiego : hai il sito in /var/www/sito/ e i pdf in /var/www/pdf tu fai una pagina in php che viene richiamata dalla pagina precedente con un id ( o il nome del file ) e glielo rispedisce negli header

    es:

    pagina_principale.php
    Codice PHP:
    [url="dammiilpdf.php?nome=1.pdf"]1 pdf[/url]
    [
    url="dammiilpdf.php?nome=2.pdf"]2 pdf[/url]
    [
    url="dammiilpdf.php?nome=3.pdf"]3 pdf[/url
    dammiilpdf.php
    Codice PHP:
    $dir "/var/www/pdf/";
    if(isset(
    $_GET["nome"]) && file_exist($dir.$_GET["nome"]))
    {
        
    header("Content-type: application/pdf");
        
    header("Content-Disposition: attachment; filename='downloaded.pdf'");
        
    readfile($_GET["nome"]);
    }
    else
    {
        echo 
    "mi dispiace ma il pdf non è stato trovato";

    spero di essere stato chiaro e di averti aiutato nel modo migliore possibile
    ti rimando cmq alla pagina ufficiale del manuale php - manuale header

    Perchè essere stupidi non è una menomazione ma un diritto di tutti!!!

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.