我创建了一个Web应用程序/站点,其中人们需要记录并能够访问某些文件以进行查看(PDF)。
我的问题是因为我将这些文件存储在服务器上,在文档文件夹中,人们可以直接访问文件而无需登录(如果他们知道随机网址,例如www.example.com/documentation/example1 .PDF)。
我正在使用会话来控制他们是否登录,但是如果他们没有登录或打开会话,我如何阻止直接访问直接链接的人?
如果我通过filezilla设置权限,它会限制所有访问权限,无论他们是否已登录。
任何人都可以就我可以采取的解决方案提供建议吗?
由于
答案 0 :(得分:0)
禁止公开访问该文件夹。只需在文件夹中创建一个.htaccess文件并将其放入其中:
Order Allow,Deny
Deny From All
接下来制作一个脚本,检查用户是否已登录并提供文件。
它看起来像这样:
...
if (userLoggedIn()) {
header('Content-disposition: attachment; filename= ' . $_GET['file']);
header('Content-type: application/pdf');
readfile($path . $_GET['file']);
}
...
在这种情况下,您的用户需要发出请求,例如 www.example.com/download.php?file=example1.pdf 而不是 www.example.com/documentation/example1 .PDF