Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:777权限是安全问题吗?_Php_Permissions - Fatal编程技术网

PHP:777权限是安全问题吗?

PHP:777权限是安全问题吗?,php,permissions,Php,Permissions,我正试图上传一个带有html/php表单的文件。 我一直在犯这样的错误: PHP警告:移动上传的文件(/var/www/html/envioDoc/archivosAlumnos/archivo dni-):无法打开流:第45行/var/www/html/envioDoc/avisos-de-pago.PHP中的权限被拒绝,请参考: 我的php文件中的第45行是move_uploaded_file()函数 因此,我在服务器上的命令行中完成了以下操作: ps aux | grep httpd 结

我正试图上传一个带有html/php表单的文件。 我一直在犯这样的错误:

PHP警告:移动上传的文件(/var/www/html/envioDoc/archivosAlumnos/archivo dni-):无法打开流:第45行/var/www/html/envioDoc/avisos-de-pago.PHP中的权限被拒绝,请参考:

我的php文件中的第45行是move_uploaded_file()函数

因此,我在服务器上的命令行中完成了以下操作:

ps aux | grep httpd
结果的第一列是我的登录用户名:ubuntu

在那之后:

sudo chown ubuntu /var/www/html/envioDoc/archivosAlumnos

chmod -R 0755 /var/www/html/envioDoc/archivosAlumnos
但是错误不断出现,所以我把烫发改成了0777


这不安全吗?为什么它不能与0755一起工作?

我认为您需要设置权限0777,因为php需要编写文件的能力,因为php通常在自己的用户下运行自己的进程,因此无法编写文件。权限0777只意味着您希望允许所有进程能够读写和执行文件,而0755只允许所有者读写和执行文件,而其他用户(如php)只允许读取和执行文件

关于安全:

因为这里唯一真正的变化是授予php写权限。现在,这本身不是一个安全问题,只要您正在清理允许上载的文件。但从技术上讲,它确实会让你面临更多的攻击,比如恶意文件上传。你真的没有其他方法允许文件上传,这完全取决于你如何处理你的文件,比如将某些扩展名列入黑名单,并确保文件大小限制以确保服务器安全

旁注:

您可能还希望删除该文件夹上的执行权限,因为您没有将正在运行的任何php文件存储在您希望将文件上载到的同一目录中,而您不应该将其存储到该目录中。通过运行下面的命令,您的文件上载目录应该只有读写权限,而不需要执行权限

chmod go+rw file
这相当于:

chmod -R 0666 /Mohammad/is/cool

这将使组和其他人能够读取和写入文件。您可以阅读更多关于这方面的信息,是的,777是一个安全问题。潜在的问题可能是由于文件的权限。尝试将文件的权限更改为644或777,并将文件夹更改回755。您尝试写入的文件夹上设置了哪些用户/组/perm?执行
ls-l/var/www/html/envioDoc/archivosAlumnos/
(假设这是您的目标文件夹)。下午好@Fred ii-!下午@halfer-这里仍然是“上午”,但我们正在慢慢地到达那里;-)爱这阳光明媚的日子!干杯,现在出去享受这美丽的阳光。服务器运行的用户/组非常相关。目前FPM/suexec的设置将使这一点变得无关紧要。真正的安全问题是让临时/上传的文件可以通过web访问,顺便说一句。另请参见:,…@halfer这更好吗?
0755
意味着所有者(而不是root)可以读、写和执行。前5个用于组(所有者所在的组),这意味着同一组中的用户可以读取和执行。第二个5是给其他人的,意思是一样的。@CharlotteDunois是的,你是对的,我总是把owner和root搞混了,我现在就编辑掉root并输入owner