Php 如何保护文件夹,使用户无法从该文件夹下载媒体文件
我正在用PHP开发一个在线视频销售网站。要下载特定的视频用户支付相应的金额,那么我提供一个下载视频的链接。我使用以下代码向用户提供下载链接Php 如何保护文件夹,使用户无法从该文件夹下载媒体文件,php,folder-security,Php,Folder Security,我正在用PHP开发一个在线视频销售网站。要下载特定的视频用户支付相应的金额,那么我提供一个下载视频的链接。我使用以下代码向用户提供下载链接 header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename='.basename($file)); header('Conten
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;
我已将所有视频存储在特定文件夹中。如何阻止用户阻止用户,使他们无法查看该视频文件夹,也无法免费下载视频。或者无法抓取网站并下载所有内容。将文件夹保留在服务器的DocumentRoot之外,以便只能通过脚本访问文件。将文件夹保留在服务器的DocumentRoot之外,因此,只能通过您的脚本访问文件。将用户购买的文件存储在数据库中,如果允许该用户下载该文件,则在下载脚本中运行检查,如果不重定向它们。将用户购买的文件存储在数据库中,如果允许该用户下载该文件,则在下载脚本中运行检查,如果不重定向它们。您可以使用htacess将包含媒体文件的文件夹设为禁止文件夹
RedirectMatch 403 ^.*/sub/folder/index\.php$
(或)
命令拒绝,允许
全盘否定
您可以使用htacess将包含媒体文件的文件夹设置为禁止文件夹
RedirectMatch 403 ^.*/sub/folder/index\.php$
(或)
命令拒绝,允许
全盘否定
最简单的解决方案:将视频放在Web服务器的docroot之外。标题('Content-Type:application/octet-stream')代码>-为您正在使用的视频格式使用正确的内容类型。最简单的解决方案:将视频放在Web服务器的docroot之外。标题('content-type:application/octet stream')代码>-为您正在使用的视频格式使用正确的内容类型。例如,我在videoupload文件夹中有五个文件,用户设法获取该列表的路径,如何防止用户无法获取路径,或者,即使他们设法以某种方式获得路径,但他们无法使用该路径直接下载文件,即www.xyz.com/videouploads/1.mp4。那么,当用户为文件/操作支付费用并订购时,您会为该实例生成一个唯一密钥(字符串/整数),将其存储在数据库中,然后将该密钥在url中传递到下载链接,然后在授予用户下载文件的权限之前,根据数据库检查它。因此,在所有header()调用之前进行检查,然后如果检查失败,将用户重定向到停止尝试窃取我的文件页面:例如,我的videoupload文件夹中有五个文件,用户以某种方式设法获取该列表的路径,我如何防止用户无法获取路径,或者,即使他们设法以某种方式获得路径,但他们无法使用该路径直接下载文件,即www.xyz.com/videouploads/1.mp4。那么,当用户为文件/操作支付费用并订购时,您会为该实例生成一个唯一密钥(字符串/整数),将其存储在数据库中,然后将该密钥在url中传递到下载链接,然后在授予用户下载文件的权限之前,根据数据库检查它。因此,在所有header()调用之前进行检查,然后如果检查失败,请将用户重定向到停止尝试窃取我的文件页面:Dcan您能给出DocumentRoot之外的位置的一些示例路径吗?(即,在文件夹www之外?DocumentRoot
(或者如果您不使用Apache HTTP,则提供等效路径)是。您能给出DocumentRoot之外的位置的一些示例路径吗?(即)文件夹www之外?在DocumentRoot
之外(如果您不使用Apache HTTP,则为等效路径)。