Как зашифровать и защитить readdir () в браузере URL с помощью php? - PullRequest
0 голосов
/ 02 мая 2019

Я разработал систему для сканирования и чтения файлов в папке.

И я сохранил весь файл PDF в папке загрузок в корневом каталоге.Каталог, как показано ниже.

htdocs/test_system/uploads/test123.pdf

В моем коде HTML, PHP и JQuery я уже передаю test123.pdf в значение формы, используя jQuery, как показано ниже.

<form action="" method="POST">
    <input id="filename_verify" type="hidden" class="form-control" name="filename_verify" placeholder="" value="test123.pdf" readonly="readonly"> 
    <button type="submit" id=""   name="verify" class="btn btn-success btn-block">Submit</button>                                                           
</form> 

Мой следующий шаг - проверить, совпадает ли имя файла с базой данных, прежде чем пользователь сможет открыть файл.PHP-код, как показано ниже.

if(isset($_POST['verify']))
{  
    $filename_verify    = $_POST['filename_verify'];

    $sql = DB::getInstance()->FetchArray("select filename from table where filename = '".$filename_verify."' ");
    if(count($sql) > 0)
    {
        foreach($sql as $row){}
        header("Location: uploads/".$filename_verify.""); 
    }
    else
    {
        echo 'Not match';
        exit;
    }   
}

Я могу открыть файл успешно, но проблема в том, что URL, очевидно, показывает каталог файла, как этот, поэтому publis может легко предсказать каталог и может манипулировать именем файла с помощью URL.

https://www.system.com/uploads/test123.pdf 

Как можно защитить и зашифровать URL-адрес, чтобы пользователь не мог видеть действительный каталог, как указано выше?

Спасибо, если кто-то может мне помочь.Спасибо.

...