Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    59

    bloccare l'accesso ad una directory

    ciao a tutti lo so che forse è una cosa banalissima e forse per questo che leggendo le varie guide ho capito poco.
    In pratico sul mio sito per questioni di sicurezza vorrei che ad ad alcuni file in formato jpeg piuttosto che zip un utente digitando l'url corretto del file non vi possa accedere.
    Ad esempio se ho un file pippo.jpg in www.miosito.it/file/immagini/pippo.jpg vorrei che l'utente non la possa visualizzare.
    Vorrei bloccare l'accesso a livello di cartella e non di file se possibile. In ogni caso però se l'utente accede al link www.miosito.it/file/immagini/pippo.jpg in modo corretto, ossia avendo premuto un bottone voglio che lui abbia la possibilità di scaricarla.
    Inoltre il file .htaccess bisogna crearlo oppure è gia presente e basta modificarlo?
    Scusate la mia ignoranza ma non so proprio come fare. se avete anche qualche link a discussioni simili postateli. io non li ho trovati....

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    59
    nessuno sa aiutarmi????

  3. #3
    allora la teoria è banale, la pratica quasi ma va capita. tramite il file .htaccess hai la possibilità di creare un "login" che blocchi l'accesso alla directory in cui risiede l'htaccess (qui un esempio sul mio sito, clicca il link e vedi che sono richiesti dati di autenticazione). Se usi altervista, nel pannello di controllo questo si fa tramite una procedura guidata molto semplice.

    Altrimenti ti devi arrangiare ma resta moltos emplice, potrei spiegartelo ma finirei per confonderti, trovo invece questa guida molto chiara e semplice.

    ATTENZIONE: le immagini nella cartella protetta non saranno più accessibili nemmeno nei tag <img />
    se quindi avrai in una pagina che risiede in una cartella non protetta ma che cerca di usare il file che è nella cartella protetta ad esempio così
    codice:
    [img]www.miosito.it/file/immagini/pippo.jpg[/img]
    verrà comunque richiesto il login.

    la soluzione è altrettanto semplice: se hai un minimo di conoscenza di come funziona un server saprai che apache (il motore che compila il php) può tutto (diciamo quasi dai :P) mentre il login per accedere alla cartella è limitato al protocollo http, quindi se vorrai usare l'immagine di cui sopra rendendola accessibile agli utenti il procedimento è inserire l'immagine in questo modo
    codice:
    [img]www.miosito.it/renderer.php?img=pippo.jpg[/img]
    a questo punto ti crei il tuo bel file renderer.php in questo modo
    Codice PHP:
    <?php
    $path 
    "/var/www/miosito/file/immagini/";    //percorso indicativo
    $fullPath $path.$_GET['download_file'];
    if (
    $fd fopen ($fullPath"r")) {
        
    $fsize filesize($fullPath);
        
    $path_parts pathinfo($fullPath);
        
    $mime getMimeType(strtolower($path_parts["extension"]));
        
    header("Content-type: $mime");
        
    header("Content-Disposition: filename=\"".$path_parts["basename"]."\"");
        
    header("Content-length: $fsize");
        
    header("Cache-control: private");
        while(!
    feof($fd)) {
            
    $buffer fread($fd2048);
            echo 
    $buffer;
        }
    }
    fclose ($fd);
    exit;
    function 
    getMimeType($ext){
        switch(
    $ext){
            case 
    "png": return "image/png";
            case 
    "bmp": return "image/bmp"
            case 
    "gif": return "image/gif"
            case 
    "jpg": return "image/jpeg";
            default: return 
    "application/octet-stream";
        }
    }
    ?>
    questo ti permette di fare eventuali controlli su chi può vedere il file ad esempio puoi controllare se un utente è loggato al tuo sito e decidere solo allora di mostrare il file oppure puoi semplicemente fare un contatore di downloads o qualunque altra cosa il php ti permetta.

    spero di essere stato utile

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.