【问题标题】:What are best practices for permissions on Apache-writable directories? [closed]Apache 可写目录权限的最佳实践是什么? [关闭]
【发布时间】:2010-10-12 17:32:39
【问题描述】:

有时我想允许用户通过 Apache 上传文件。我可以通过两种不同的方式设置权限,以便 Apache 可以将上传的文件写入目录。

  1. 我可以让用户 Apache 作为目录的所有者运行,这样它看起来像这样:

    drwxr-xr-x 2 www admin 68 Sep 24 2007 uploadedfiles

  2. 我可以向“其他人”授予写入权限,其中 Apache 是其中之一:

    drwxr-xrwx 35 egbert admin 1190 Mar 9 13:17 uploadedfiles

其中一个比另一个更安全吗?

【问题讨论】:

标签: apache unix permissions


【解决方案1】:

这里有 2 个问题要问 - 首先,还有谁(如果有的话)需要访问这些文件?如果有其他进程作用于这些文件,它们以谁的身份运行,它们将如何与所选解决方案交互?如果没有其他进程或用户访问文件,我会让 apache 用户成为所有者,因为这就是所需要的,并且它遵循安全中最古老的原则之一 - 只让那些 需要访问某物拥有它。

【讨论】:

    【解决方案2】:

    如果系统被用于其他目的,您可能应该避免通过“其他人”授予权限。在这里允许权限基本上意味着在该计算机上运行的任何其他东西,或者可以访问该计算机的任何东西都有权访问这些文件。

    另外,您可以创建一个额外的组,让 apache 成为组成员,以及管理员中的任何人,并将组所有权更改为该组,并授予该组权限。如果您使用组,您可能还需要在目录上设置“setgid”位。设置 setgid 位后,创建的任何文件都将获得与父目录相同的组成员身份。

    【讨论】:

      【解决方案3】:

      安全的一般规则是最小特权。您希望使用尽可能少的权限。在这种情况下,第一个选项(可由 apache 写入)意味着只有当您的系统被 apache 用户入侵时,才能写入该目录,而使用选项二(每个人都可以写入),任何帐户都可以被入侵并写入该目录目录。在这种情况下,我会选择选项一:

      drwxr-xr-x 2 www admin 68 Sep 24 2007 上传文件

      【讨论】:

        【解决方案4】:

        最严格的访问,在这种情况下,以0750 的权限独占访问www/admin始终是最安全的。请注意,在上面的权限掩码中,既不是www 也不是admin 成员的用户根本不允许访问目录的内容;这是为了减少登录系统的未授权方访问用户上传的潜在机密信息的可能性

        不要忘记,在大多数 *nix 平台上,您还有第三个非常灵活的选项,即使用 setfacl 设置 ACL。 ACL 是使用常规权限位和所有权方法可以实现的超集。当面临复杂的安全设置(包括每个用户的权限、默认所有权等)时,ACL 是首选选项 - 但您可能需要首先在托管目录的卷的挂载选项中添加 acl/etc/fstab,请参阅man mount。)如果两个或更多用户需要访问相关目录而不是admin 组的成员,您可以选择使用 ACL。

        【讨论】:

          【解决方案5】:

          向他人授予读取权限也是一种安全风险。例如,Wordpress 有一个包含数据库用户名和密码的文件。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2010-09-07
            • 2019-10-31
            • 1970-01-01
            • 1970-01-01
            • 2010-10-08
            相关资源
            最近更新 更多