PHP / CHMOD问题

时间:2011-09-30 13:42:27

标签: php chmod

我正在开发一个基于PHP的网站。在管理员中有一个部分检查表单字段,并根据该字段查找服务器上的文件夹。该文件夹将位于子目录中。如果它不存在则需要创建。之后,以前存在或不存在,PHP会将文件写入该文件夹。

这些文件夹将保存将在主站点上查看和/或下载的图像和PDF文件。

以下是一个示例目录结构:商家/ east / user123 在上述商家中,东方肯定存在,用户123可能存在或以其他方式被创建。

鉴于该信息我的问题是关于文件夹权限。

  • 应将文件夹设置为什么以获得最佳安全性。
  • 我应该在操作期间打开它们然后在我做完更安全的事情之后chmod它们(在PHP中)吗?
  • 上级文件夹应设置为什么?

2 个答案:

答案 0 :(得分:1)

770对于文件来说是一个安全的赌注。将其设置为不允许任何公共访问。我会在PHP中实现某种文档传递系统。 PHP将能够访问非公共文件,然后将它们发送给用户。

上级文件夹可以设置为相同。

<强>更新

正如其他人所说,你可以轻松地将它们chmod到600而没有任何问题。这是更安全的处理方式(防止系统上的其他用户访问文件)。它也省略了“执行”,无论如何都不需要文件读取。除非有明确的理由不这样做,否则我个人的做法是留下额外的内容。

答案 1 :(得分:1)

上级文件夹需要具有apache用户的读,写和执行权限。顶级文件夹可以由apache拥有,并具有755等权限,允许web服务器读取,写入和列出文件。

如果您特别担心Web服务器上的其他本地用户或服务看不到此目录中的文件,您可能会考虑权限750或700.

对于文件权限:传统上为644或600,它们不需要执行权限。

一个很好的折衷方案可能是将750用于目录,将640用于拥有者设置为apache的文件,并更改组(chgrp),以便该文件组允许访问您通常使用的编辑网站文件的用户。

我想不出php脚本增加然后减少权限的任何显着优势。

我认为你应该考虑@chunk关于完全保留上传文件属于公共html目录的评论,并通过文件传递脚本提供回来。否则,您需要仔细验证文件的内容并加强该特定目录的apache配置 - 可能使用一些mimetype检查以确保文件确实是docs和pdf。