如何保护文件夹,以便用户无法从该文件夹下载媒体文件

时间:2013-04-29 10:39:12

标签: php folder-security

我正在用PHP开发一个在线视频销售网站。要下载特定视频用户支付特定金额,然后我提供下载视频的链接。我使用以下代码为用户提供下载链接。

header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
readfile($file);
exit;

我已将所有视频存储在特定文件夹中。如何阻止用户阻止用户无法浏览该视频文件夹而无法免费下载视频。或者无法抓住网站并下载所有内容。

3 个答案:

答案 0 :(得分:5)

将文件夹保留在服务器的DocumentRoot之外,因此只能通过脚本访问文件。

答案 1 :(得分:1)

您可以使用htacess将该文件夹设为Forbidden,其中包含媒体文件。

RedirectMatch 403 ^.*/sub/folder/index\.php$

(OR)

<Directory full-path-to/USERS>
     Order Deny,Allow
     Deny from All
</Directory>

答案 2 :(得分:0)

在数据库中存储用户购买的文件,并在下载脚本中运行检查,如果允许该用户下载该文件,则不会重定向。