假设我有一个设备,它知道他们要从我的服务器下载的文件的名称。
如何在不允许设备访问文件系统的情况下将所述文件传输到该设备?
例如,假设我有一个页面ping.php,它收到一个"something.zip"的get请求
ping.php知道something.zip的位置(服务器文件系统上的某个位置),但我不能允许用户访问文件系统,也不能允许他们知道文件的位置(甚至需要对使用wireshark之类的东西的人隐藏它)。
我该如何解决这个问题?
这可能是一个简单的解决方案,只是我对这些事情不是很熟悉。
如果有什么不同的话,我会在Linux上使用Apache服务器。
当文件位于无法通过Web访问的文件夹中时,您可以创建一个PHP脚本来方便文件传输。这就是我通常在系统上处理文件下载的方式。
您可以使用任意数量的示例脚本来进行实际的文件传输。关键是将该文件放在web可访问的文件系统之外。
为了完整起见,以下是我过去用PHP下载文件时使用的一些代码:
$filename="filetodownload.xyz";
$cf = realpath("/non-webaccessible-folder/".$filename);
$file=$cf;
header('Content-Disposition: attachment; filename="' . basename($cf) . '"');
header("Content-Length: " . filesize($cf));
header("Content-Type: application/octet-stream");
readfile(realpath($cf));