我编写了访问级别/组(未登录、工作人员、经理、管理员)很少的 Web 应用程序。
对于访问控制,我在这里使用了类似于最佳答案的东西:
将特定页面限制为仅在 Codeigniter 中登录用户的最佳做法是什么?
现在我必须创建下载页面,该页面只允许下载特定文件允许的组。现在我只为允许的用户显示链接,但我认为我必须以某种方式隐藏真实的文件位置,因为浏览器会记住文件 URL,任何人都可以在注销后毫无问题地下载文件。
我编写了访问级别/组(未登录、工作人员、经理、管理员)很少的 Web 应用程序。
对于访问控制,我在这里使用了类似于最佳答案的东西:
将特定页面限制为仅在 Codeigniter 中登录用户的最佳做法是什么?
现在我必须创建下载页面,该页面只允许下载特定文件允许的组。现在我只为允许的用户显示链接,但我认为我必须以某种方式隐藏真实的文件位置,因为浏览器会记住文件 URL,任何人都可以在注销后毫无问题地下载文件。
您没有链接到真实文件。您链接到使用访问令牌进行验证的脚本,然后传递文件。看到这个问题:
PHP将文件句柄传递给用户,以便文件下载并保存到他们的机器上
下载后,您可以使令牌过期或仅记录用户下载的次数并在那里应用适当的限制。
此外,将您的文件嵌套在 Web 根目录下,或者确保您无法在选择存储它们的任何位置直接访问它们
是的,CI 确实有一个下载助手:
https://www.codeigniter.com/userguide3/helpers/download_helper.html
您可以将 sessionID 传递给下载脚本。下载脚本可以将该 sessionID 与当前 sessionID 进行比较,以确保它有效。如果有效,则允许下载。