我编写的Web应用程序具有很少的访问级别/组(未登录,工作人员,经理,管理员)。
对于访问控制,我在这里使用类似于最佳答案的东西:
What is the best practice for restricting specific pages to logged in users only in Codeigniter?
现在我必须创建下载页面,该页面仅允许下载允许用于specyfic文件的组。现在我只为允许的用户显示链接,但我想我必须以某种方式隐藏真实的文件位置,因为浏览器会记住文件URL,任何人都可以在注销后没有任何问题地下载文件。
答案 0 :(得分:5)
您没有链接到真实文件。您链接到使用访问令牌进行验证的脚本,然后传递该文件。看到这个问题:
PHP Pass File Handle to user so that file downloads & saves to their machine
下载后,您可以使令牌过期,也可以只记录用户下载的次数并在那里应用适当的限制。
此外,将您的文件嵌套在网络根目录下,或确保无论您选择存储它们,都无法直接访问它们
是的,CI确实有帮手:
https://www.codeigniter.com/user_guide/helpers/download_helper.html
答案 1 :(得分:0)
您可以将sessionID传递给下载脚本。下载脚本可以将该sessionID与当前的sessionID进行比较,以确保它是有效的。如果有效则允许下载。