我们使用PHP脚本来进行隧道文件下载,因为我们不希望公开可下载文件的绝对路径:
header("Content-Type: $ctype");
header("Content-Length: " . filesize($file));
header("Content-Disposition: attachment; filename=\"$fileName\"");
readfile($file);
Run Code Online (Sandbox Code Playgroud)
不幸的是,我们注意到最终用户无法恢复通过此脚本传递的下载.
有没有办法支持这种基于PHP的解决方案的可恢复下载?
我继承了一个带有明显安全漏洞的应用程序.
它具有基于会话的安全性,但文件上载(用户特定的)不以任何方式受到保护,并且它们存储在公共文件树中.
文件名不遵循任何约定,使得它们难以猜测,但数据是敏感的,因此我需要实施安全措施以防止未经授权的文件访问.
移动文件的位置实际上不是一个选项,所以我正在寻找一个htaccess解决方案来将请求转发到php处理程序脚本.
有没有人有实施此类事物或任何好的替代解决方案的经验?.htaccess语法的具体例子非常受欢迎,因为我在这方面苦苦挣扎.
我在我的网站中提供了一个直接的下载链接,如下所示。
<a href="myfile.pdf">Download here</a>
Run Code Online (Sandbox Code Playgroud)
每个人都可以访问此文件。但我想根据登录用户来限制这个。
假设用户在成功登录后有一个活动会话/cookie,如下所示。
$_SESSION['login'] = 1 or $_COOKIE['login'] = 1
Run Code Online (Sandbox Code Playgroud)
即使设置了以下条件,人们也可以手动输入http://web.com/myfile.pdf并能够下载文件...
if($_SESSION['login']===1 && $_COOKIE['login']===1){
echo '<a href="myfile.pdf">Download here</a>';
}
Run Code Online (Sandbox Code Playgroud)
其他匿名用户应该无法访问该文件。