[英]Prevent direct access to files like an EDM(?)
我有一个由多个用户使用的 php 网络应用程序。 他们可以在一个目录中上传文件:“files”创建一个子目录,并使用赋予用户“foo”的唯一名称并存储文件,因此:mydomain.com/files/foo/thefilename.doc
它可以工作,但为了防止直接访问该文件并防止其他用户访问他们不属于的文件,我放置了一个 .htaccess 文件:
Order Deny,Allow
Deny from all
它有效但是,在我的网络应用程序中,如果用户“foo”想要访问和显示他的文件,他会收到 403 错误。
我该怎么做(如 EDM 电子文档管理)来存储文件以防止直接访问但向正确的用户提供访问权限?
非常感谢
您可以通过使用 PHP 动态获取并呈现文件内容来实现。
也许是这样的:
$filename = $_GET['filename'];
// TODO: fill $allowedFiles[];
if (!in_array($filename, $allowedFiles))
exit;
header('Content-Type: text');
header('Content-Disposition: attachment;filename="' . $filename . '"');
header('Cache-Control: max-age=0');
echo file_get_contents($filename);
当然只是概念
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.