【问题标题】:PHP: What should be the permission for the directory where I store user uploaded files?PHP:我存储用户上传文件的目录应该有什么权限?
【发布时间】:2011-09-08 15:35:51
【问题描述】:
  • 我正在使用 Linux 主机,并存储一些用户上传的文件。我将保存这些上传文件的目录的权限是什么(即 0755)?

  • 另外,上传的文件的新权限应该是什么?目前我使用chmod命令给0755权限,够安全吗?

现在我正在使用类似这样的代码:

    if (move_uploaded_file($_FILES[$name]['tmp_name'], $targetPath)) {
        // CHMOD
        chmod($targetPath, 0755);
    } else {
        return array(false,"Can not move file. Upload failed.");
    }

其中$targetPath 是上传文件的新位置。

感谢您的帮助!

【问题讨论】:

    标签: php security file-upload


    【解决方案1】:

    尝试 0750,由网络服务器进程 (www-data?) 拥有。没有理由授予任何人但网络服务器对该目录的任何类型的权限,除非您有另一个需要它的帐户。在这种情况下,为您的 www-data 和“其他”帐户创建一个专用组,并将目录 chgrp 到该新组并将其设置为 0770。

    除非您有充分的理由,否则请勿授予上传文件的执行权限。如果您不是非常小心地处理上传,有人可以发送一个二进制文件,您的服务器将敞开大门。所以...文件上是 0640,目录上是 0750。

    【讨论】:

    • 谢谢。这真的很解释。
    • 如果我设置 0640 或 0750 将如何查看文件?我的意思是,当某些用户请求上传的资源(假设,图像)时,他不应该能够执行读取请求吗?
    • 记住,访问文件的是网络服务器,而不是远程用户。
    猜你喜欢
    • 2010-09-22
    • 2023-04-09
    • 1970-01-01
    • 2017-12-07
    • 2021-01-09
    • 2011-09-16
    • 1970-01-01
    • 2020-11-05
    • 2015-12-11
    相关资源
    最近更新 更多