18910140161

PHP-拒绝通过URL堆栈溢出直接从webserver下载文件

顺晟科技

2022-10-19 12:48:26

149

我有一个网站,用户可以登录并通过会话和。他们可以上传文件。文件存储在htdocs/uploads中。每个文件数据都存储在一个表中,在文件名、位置和user_id之间有一个链接。在我网站的某些地方,我可以通过以下方式下载该文件:.

在像domain.com/uploads/filename.jpg这样的URL后面给出。如果用户知道这个URL路径,他也可以通过在浏览器中输入URL来下载文件,而无需登录或标识。我想避免这个。如何确保只有文件可以通过单击网站上的下载链接从htdocs/uploads下载。

=>我无法在htdocs之外创建文件夹 =>我试图更改文件夹权限,但W/O成功 =>我的网站基本上是用PHP制作的,最好用PHP解决方案。

有什么想法/帮助吗?谢谢!


顺晟科技:

我通过以下操作解决了这个问题:

  1. 在我的文件夹htdocs/uploads中添加了一个.htaccess文件,其内容如下:

  1. 创建了一个文件:file_download.php,其内容如下:

  1. 将下载链接更改为

这种方式阻止了通过在浏览器中使用清除URL来下载文件的任何尝试。只有通过具有用户标识和从我的网站提供的链接才能下载该文件。如果某人不需要用户验证,只需删除。

中的第一个

您需要沿着使PHP为您服务的路线前进。这将确保您可以在为文件提供服务之前验证用户凭据。

参见php.net上的示例此处。这将解释如何使用。以下answer还概述了一些关键概念。

完成此操作后,可以使用HTAccess rules拒绝对这些文件的直接访问。这将确保用户只能通过php端点访问文件,并且这些端点可以执行用户凭据的验证。

  • TAG:
相关文章
我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航