文件通过会话下载登录保护

时间:2012-09-22 22:40:37

标签: php security session authentication download

我想用会话身份验证保护一些文件。用户可以查看某些文件,有些则不能查看。

我用mod_rewrite和readfile()实现了一个解决方案。我的问题是,当更多用户下载文件时,此功能将使用大量内存并且服务器会停止运行。

我试过这个: 1)通过php处理程序传递文件并使用prepend函数。它不起作用,因为当prepend php文件完成处理程序处理文件时,在我的情况下处理程序因无效的ASCII字符而被阻止。我无法阻止处理程序处理但输出文件。 2)将session,ip和文件夹名称放在一个临时文件中,我试图在我的nginx.conf中检查以排除重写。我失败了,因为我无法仅将nginx中的文件夹名称提取为变量。

我该如何解决这个问题?有人提出建议吗?

由于

1 个答案:

答案 0 :(得分:2)

如果我正确理解了这个问题,那么您正在尝试创建一个系统,该系统只允许授权用户查看某些文件,而其他用户则可以查看其他文件。

如果我的理解是正确的,那么我会亲自将文件存储在根目录之上或安全位置,然后在URL中具有唯一标识符的访问脚本(例如fetch_file.php)(例如fetch_file.php ?UID = 1234)。

如果用户有权访问唯一ID为1234的文件;提供数据库中位置详细信息的文件,否则拒绝请求。

这样,用户无法在没有正确权限的情况下访问该文件,因为它安全地存储在根目录之上,而无法从互联网访问。