PHP - 保护数字下载

usn*_*org 6 php download download-manager

我正在试图弄清楚如何用PHP保护数字下载.只需要一些一般的指示,这样我就可以开始我的研究.我似乎无法找到任何有用的东西.

我想让文件可供我的用户下载,但不希望他们能够直接访问下载文件夹.此外,我希望下载链接仅在设定的时间段或单次下载时可用.

有人能指出我正确的方向吗?

dyn*_*mic 10

最好的方法是在检查后将下载管理委托给apache的mod

x_sendfile
Run Code Online (Sandbox Code Playgroud)

https://tn123.org/mod_xsendfile/

用法:

<?php
...
if ($user->isLoggedIn())
{
    header("X-Sendfile: $path_to_somefile");
    header("Content-Type: application/octet-stream");
    header("Content-Disposition: attachment; filename=\"$somefile\"");
    exit;
}
?>
<h1>Permission denied</h1>
<p>Login first!</p>
Run Code Online (Sandbox Code Playgroud)

基本上,当你发送标题X-Sendfile时,mod会拦截文件并为你管理下载(文件可以在虚拟主机之外随时找到).

否则,您只需实现一个简单的文件download.php,它获取文件的ID并readfile在登录检查后打印内容