2

我有一个处理文件上传的 PHP 脚本。该脚本会尝试组织上传的文件,并可能会创建新文件夹以在需要时将文件移动到其中。这些文件将位于 www 根目录下(即,网络浏览器将能够访问它们)。

我的问题是,我应该为创建的文件夹和移动到其中的文件(使用mkdir()and move_uploaded_file())设置什么权限?

4

2 回答 2

4

您的网络服务器需要在这些文件夹中读取和写入权限,执行权限应该被撤销(假设类 UNIX 系统)。如果没有,用户可以上传一个脚本并通过发送一个 HTTP 请求来执行它。

但 IMO 的整个概念是一个潜在的安全漏洞。最好将文件存储在网络服务器根目录之外的文件夹中,这样就无法直接访问。在您的 Web 应用程序中,您可以拥有一个 PHP 下载页面,该页面会扫描上传目录并显示下载链接列表。这些下载链接指向另一个脚本,该脚本从您的存储目录中读取文件并将它们发送给用户。

是的,这是更多的工作。但是这种场景很常见,所以你应该能够很容易地找到一些带有示例实现的源代码。而且让你的服务器被黑客入侵的工作要少得多......

于 2008-11-14T16:10:41.300 回答
0

具体回答766(无执行权限)将是您想要使用的最宽松的。在另一端,700 将允许除了网络用户之外的任何人都无法处理该文件。但实际上,这一切都取决于您对确定最佳结果的文件所做的事情。

于 2008-11-17T23:45:42.173 回答