1

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

我用 mod_rewrite 和 readfile() 实现了一个解决方案。我的问题是这个功能会使用大量内存,当更多用户下载文件时服务器会关闭。

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

我怎么解决这个问题?有人建议吗?

谢谢

4

1 回答 1

2

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

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

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

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

于 2012-09-22T22:54:39.983 回答