我有这个在我的代码:限制文件下载PHP
<a href = "res/pdf/sample.pdf">Sample PDF</a>
所以基本上它会似乎是一个下载链接到文件“sample.pdf”但问题是,有一个限制,在下载此文件。所以无论何时上传机密报告,恶意用户不小心记住或查看浏览器历史记录中的下载链接的URL,即使不访问网站也可以轻松下载它,因为它是直接链接。我应该怎么做,所以这个链接将被保护?或只下载给分配给它的用户?
我有这个在我的代码:限制文件下载PHP
<a href = "res/pdf/sample.pdf">Sample PDF</a>
所以基本上它会似乎是一个下载链接到文件“sample.pdf”但问题是,有一个限制,在下载此文件。所以无论何时上传机密报告,恶意用户不小心记住或查看浏览器历史记录中的下载链接的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
标题将该文件作为下载文件提供。
下面是一个例子:Fastest Way to Serve a File Using PHP
可以在Google并获得更多的例子。
以下示范如何为PDF文件的一个很好的例子: https://serverfault.com/questions/316814/php-serve-a-file-for-download-without-providing-the-direct-link
您可以限制使用htaccess的
想怎么样?你能举个例子吗?谢谢 –
你可以检查HTTP_REFERER, 看看类似的帖子http://stackoverflow.com/questions/4654944/use-htaccess-to-limit-access-to-file-downloads –
这似乎更像是一个评论,而不是回答 –
我认为你可以使用htaccess的找到解决.. –
我应该如何去与htaccess的呢? –
可能重复的[PHP - Protecting digital Downloads](http://stackoverflow.com/questions/5412328/php-protecting-digital-downloads) – JJJ