PHP:我存储用户上传文件的目录的权限是什么?

时间:2011-09-08 15:35:51

标签: php security file-upload

  • 我正在使用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是上传文件的新位置。

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

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

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