限制文件下载 PHP


restrict file download php

我的代码中有这个:

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

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

不要通过直接 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 提供文件的最快方法

你可以谷歌并获得更多的例子。

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

您可以使用 htaccess 进行限制