Я разработал систему для сканирования и чтения файлов в папке.
И я сохранил весь файл 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-адрес, чтобы пользователь не мог видеть действительный каталог, как указано выше?
Спасибо, если кто-то может мне помочь.Спасибо.