代码之家  ›  专栏  ›  技术社区  ›  caw

安全chmod特权?

  •  5
  • caw  · 技术社区  · 14 年前

    标准的chmod特权是文件的“644”和目录的“755”,不是吗?

    在大多数情况下,PHP不需要写入文件或目录。所以我不能从所有组中获得写权限吗?

    我可以将“444”分配给所有文件,将“555”分配给所有目录。

    那不是更安全吗?

    事先谢谢!

    注: chmod() 在我的PHP上 disable_functions 名单。

    4 回复  |  直到 14 年前
        1
  •  3
  •   Brian Maltzan    14 年前

    新创建的文件和目录的默认权限由 umask 环境变量。文件的所有者和根可以更改权限。

    如果你不需要在你的应用程序中使用chmod,那么把它留在你的禁用列表中。你看待安全性的方式是:许多比我聪明的人现在把chmod变成了我应用程序中更安全的部分之一。因此,我将花费我的可用时间来确保其他部分的安全。

    如果将应用程序自动化,那么在服务器上使应用程序只读是可以的。但是,当您对应用程序代码进行更改时,会使事情变得非常困难。在某一时刻,您将来回进行一些代码更改,并在服务器上测试它们…然后忘记将文件/目录权限重置为只读。

    如果您的生产计算机上只有一个用户帐户,那么我将坚持使用默认权限-这些内容可能是为您管理的。或者您可以删除组和“其他”权限,如下所述。

    典型的生产设置是拥有您所属的应用程序组。您还需要一个单独的用户来运行您的PHP应用程序。保留所有者和组的完全权限,并从“其他”中删除所有权限。这种方式:

    • 开发人员保留他们的个人登录-您可以跟踪谁在何时做了什么。
    • 您和其他开发人员可以将新代码复制到服务器。
    • 应用程序可以运行代码。
    • 应用程序无法访问代码之外的任何内容。
    • 其他用户都看不到您的代码。

    我猜管理您的生产服务器是别人的工作吗?他们会花时间确保没有人可以登录和到处闲逛。虽然您需要确保没有人可以运行操作系统命令,但我认为最好的开始是了解 xss . 默认的PHP服务器设置应该是正常的。应用程序中最不安全的部分是您所看到的部分。 如果有人要访问系统调用,则很可能是通过表单进行的。即使您消除了系统调用,表单仍然容易存储javascript。除非您在应用程序中存储信用卡,否则更可能的目标是用户浏览器中的密码/会话。

        2
  •  1
  •   Scharron    14 年前

    这并不安全,因为即使在000个chmoded文件上(如果它们属于php),php也可以执行chmod 777。 但是,这样做更安全,因为您不能在不修改文件的情况下编写此文件。

        3
  •  1
  •   el_quick    14 年前

    对不起我的英语。

    我想有三个可能的原因。

    1. 检查 SuffyMod 如果safe_mod为 你可能会对这个函数有一些问题。
    2. 如果您有plesk,那么如果您与另一个尚未使用plesk创建的用户创建文件夹或文件,就会出现问题。
    3. 可能是缺少了一个PHP库。
        4
  •  0
  •   avpaderno    14 年前

    chmod() 在我的PHP上 disable_functions 名单。
    那不是更安全吗?

    使用 disable_functions 可以禁用特定功能。
    如果 CHMODER() 出现在 禁用\功能 指令,使用并不安全;它只是被禁用,以及正在使用的PHP代码 CHMODER() 将发出警告。

    指令 禁用\功能 不应与 Safe Mode 指令。 禁用\功能 即使在指令 safe_mode 设置为0;时间 安全模式 启用, some functions 被禁用或限制。

    注意,在php 5.3中,安全模式被认为是不推荐使用的;这意味着该指令在php 5.3中仍然被接受,但在任何时候都不能再使用。