使用应用程序登录名保护上传的公共文件安全

问题描述 投票:-2回答:1

我们的客户提出了安全要求,我不知道是否可以这样做。请帮帮我。有一个公司的网络应用程序,比如说“ www.company.com”。用户登录并将公司相关文件上传到“ www.company.com/files/user/important_document.pdf”。如果这些文件具有url,则可用于所有Internet。客户端要求仅当用户登录应用程序时才能访问这些文件。有可能吗?这是Apache 2上的PHP应用程序。谢谢!

php apache security
1个回答
0
投票

是的,有可能。通过消除建立直接URL链接到文件的可能性,并具有管理下载过程的PHP脚本的方法来实现。 PHP脚本将需要进行登录的会话才能执行任何操作。

首先,您必须将文件存储在Web服务器目录之外的文件夹中,以使HTTP请求无法直接访问它们。上传文件后,请在数据库表中保留其名称和位置的记录,并为其指定ID。

然后,如果有人要请求文件,您可以编写一个PHP脚本,其中列出了所有记录的文件。每个条目都有一个下载文件的链接,但该链接类似于https://www.example.com/download.php?id=123。因此,要下载文件,用户必须访问您的download.php脚本并提供文件的ID。然后,该脚本将在具有该ID的数据库中找到条目,找到文件路径并返回文件内容以进行下载(通过流式传输文件内容并设置适当的HTTP标头-您可以在许多地方在线找到此过程的示例) 。

您可以下载。php当然可以被编程为仅允许登录用户访问它。如有必要,您还可以通过制定有关哪些用户可以访问哪些文件的规则来进一步限制对文件的访问。

© www.soinside.com 2019 - 2024. All rights reserved.