【发布时间】:2015-06-02 00:58:28
【问题描述】:
假设我想在我的服务器上的某个目录下托管一些 pdf 文件(例如 domain/myfiles )。出于这个原因,我创建了一个独特的 - 难以猜测 - 链接,使用一些常见的 php 函数,然后将文件放在这个特定目录中(domain/myfiles/hardToGuessHash.pdf)。
但是,如果有人通过domain/myfiles/hardToGuessHash.pdf 访问我的服务器,他将能够看到并下载此文件。
有什么方法可以提前要求session access,以阻止对我的文档进行未经授权的访问?我在 StackOverflow 上搜索过,但我真的没有想到什么。
澄清:我不想隐藏下载链接。我想要求验证才能下载。例如,如果 A 人 - 对文件具有下载权限 - 复制 - 将下载链接粘贴到 B 人身上,那么 B 人应该无法下载文件,只能从链接中下载!
谢谢!
【问题讨论】:
-
在谷歌搜索“隐藏文件下载 php”后发现了这个 stackoverflow.com/q/17533806 和 stackoverflow.com/q/10997516,您可以从那里进一步搜索,甚至将“会话”添加到该关键字列表中。如果需要,只需在会话上使用条件语句并作为附加方法; 如鱼得水。理想情况下,使用数据库也可能被证明是有益的。此外,您可以将文件置于您网站的公共空间之外。
-
@Fred-ii- 也许我应该澄清一下我不想隐藏 url 链接。我会更新问题。
-
放置在根目录之外,通过 php 文件提供服务,该文件将检查会话
-
@Dagon 麻烦在于该链接,是他们可能会将直接链接传递给其他人。就我个人而言,我会像你说的那样在我对 OP 所说的根目录之外使用链接和/或数据库。这里的游戏名称是“防止未经授权的访问”,OP似乎不想使用并且“应该”使用。
标签: php file-management