4

我的代码中有这个:

<a href = "res/pdf/sample.pdf">Sample PDF</a>

所以基本上它似乎是文件“sample.pdf”的下载链接,但问题是,下载这个文件是有限制的。因此,每当上传了机密报告并且恶意用户不小心记住或查看了浏览器历史记录中下载链接的 URL 时,即使不访问该网站,他也可以轻松下载它,因为它是直接链接。我应该怎么做才能保护这个链接?还是只为分配给它的用户下载?

4

2 回答 2

6

不要通过其直接 URL 提供文件。让 PHP 脚本接收所需文件的文件名,并提供它。

所以,如果有人想下载上述文件,他会去

example.com/getfile?file=sample.pdf

您的 PHP 脚本将检查当前用户是否有权查看该文件,然后提供该文件。

使您的链接像这样:

<a href = "http://example.com/getfile?file=sample.pdf">Sample PDF</a>

您当前的方法对于敏感文件非常不安全。恶意用户可以轻松编写脚本来下载res/pdf. 他需要做的就是检查目录中每个字母的排列,并扔掉所有的 404 错误。

您不会重定向用户,因为这会破坏目的。Content-disposition您将使用适当的标题将文件作为下载提供。

这是一个示例:使用 PHP 提供文件的最快方式

您可以 google 并获得更多示例。

这是一个很好的示例,展示了如何提供 PDF 文件: https ://serverfault.com/questions/316814/php-serve-a-file-for-download-without-providing-the-direct-link

于 2012-06-01T06:05:39.553 回答
0

您可以限制使用 htaccess

于 2012-06-01T06:05:10.803 回答