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

时间:2016-05-22 14:41:45

标签: php permissions

我试图上传一个带有html / php表单的文件。 我一直收到这个错误:

  

PHP警告:move_uploaded_file(/ var / www / html / envioDoc / archivosAlumnos / archivo-dni-):无法打开流:/var/www/html/envioDoc/avisos-de-pago.php中的权限被拒绝第45行,引用者:http://54.85.84.42/envioDoc/index.html

我的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?

1 个答案:

答案 0 :(得分:1)

我相信你需要设置权限0777,因为php需要能够写文件,因为php经常在自己的用户下运行它自己的进程,它将无法写入文件。权限0777只是意味着您希望允许所有进程读取写入和执行文件,而0755只允许所有者读取写入和执行文件,但其他用户(如php)只能读取和执行。

现在关于安全性:

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

旁注:

您可能还想删除该文件夹的执行权限,因为您没有将您正在运行的任何php文件存储在您希望上传文件的同一目录中,您不应该这样做。您的文件上载目录应该只具有读写权限,并且不需要执行权限,方法是运行以下命令

chmod go+rw file

相当于:

chmod -R 0666 /Mohammad/is/cool

这将使组和其他人可以读写文件。您可以详细了解herehere