Mysql
 sql >> Database >  >> RDS >> Mysql

Proteggi i file per il download

Metti i file al di fuori del webroot. Quindi, usando PHP, passa il file attraverso uno script. In questo modo nessuno può collegarsi direttamente al file e ignorare i tuoi controlli. (Naturalmente assicurati che lo script che lo fa solo dopo aver verificato che l'utente abbia il permesso di recuperare quel file).

Esempio di PHP:

<?php
    if (!isset($_SESSION['authenticated'])) {
        exit;
    }
    $file = '/path/to/file/outside/www/secret.pdf';

    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename=' . basename($file));
    header('Content-Transfer-Encoding: binary');
    header('Expires: 0');
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    header('Pragma: public');
    header('Content-Length: ' . filesize($file));
    ob_clean();
    flush();
    readfile($file);
    exit;
?>