我正在使用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
是上传文件的新位置。
感谢您的帮助!
答案 0 :(得分:2)
尝试0750,由网络服务器进程拥有(www-data?)。除非您有另一个需要它的帐户,否则没有理由授予任何人但网络服务器对该目录的任何类型的权利。在这种情况下,为您的www-data和“其他”帐户创建一个专用组,并将该目录chgrp到该新组并将其设为0770。
除非您有充分的理由,否则请勿在上传文件中授予执行权限。如果你不小心处理上传,有人可以发送和二进制文件,你的服务器将打开门。所以... 0640在文件上,0750在目录上。