Это скорее вопрос безопасности, и я не уверен, является ли этот подход безопасным и достаточно безопасным способом загрузки файла и представления его веб-пользователю?
У нас есть файлы счетов клиентов, хранящиеся на сервереlocation (публично недоступное местоположение), затем мы читаем их через код PHP в файле (в публичном месте с файлом), как показано ниже,
, конечно, мы аутентифицируем пользователя в сеансе, прежде чем получить к ним доступ, однакоесли конечный пользователь знает, где находятся файлы, он может манипулировать своим запросом на чтение неавторизованных счетов-фактур.
Мне просто интересно, если этот способ
1.Представление файлов конечному пользователю достаточно безопасно?
2.Конечный пользователь вообще не будет знать, где хранятся файлы на сервере?
3.Любая другая рекомендация о том, как справиться с подобной ситуацией?
$i = $invoice->get();
$filename = sprintf(INV_PDF_FILENAME,$i['customerid'],date('Ymd',$i['dateIssued']));
$x = sprintf('/tmp/invoices/%s',$filename);
header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename="'.$filename.'"');
header('Expires: 0');
header('Pragma: cache');
header('Cache-Control: private');
readfile($x);