Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.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_Security_Apache_Upload - Fatal编程技术网

Php 设置上传文件夹777权限是否安全?

Php 设置上传文件夹777权限是否安全?,php,security,apache,upload,Php,Security,Apache,Upload,我看到很多上传表单被黑客攻击,有些表单对上传的文件进行了很好的安全检查(至少我认为是这样),但仍然有人上传了一个PHP文件 我在想:有没有办法在uploads文件夹中上传一个拥有777权限的文件?我正在考虑使用HTTP PUT。一般来说,777是不安全的。。。这意味着任何人都可以读写你的文件 如果您允许上传的文件在您的服务器上执行,那么HTTP PUT本质上并不比HTTP POST更安全 总的来说,如果允许执行任意文件,则需要在服务器端执行非常好的文件检查,并且在服务器上使用chroot是明智的

我看到很多上传表单被黑客攻击,有些表单对上传的文件进行了很好的安全检查(至少我认为是这样),但仍然有人上传了一个PHP文件


我在想:有没有办法在uploads文件夹中上传一个拥有777权限的文件?我正在考虑使用HTTP PUT。

一般来说,777是不安全的。。。这意味着任何人都可以读写你的文件

如果您允许上传的文件在您的服务器上执行,那么HTTP PUT本质上并不比HTTP POST更安全

总的来说,如果允许执行任意文件,则需要在服务器端执行非常好的文件检查,并且在服务器上使用chroot是明智的


权限方面,我通常将任何web可访问的内容设置为webserver用户拥有的644。

您不需要也不应该拥有上传文件夹的777权限。对于运行Web服务器的用户(使用apache/debian,通常是www数据),只让它读写就足够了。此外,您应该关闭(例如,via.htaccess)任何您不希望在此文件夹中发生的事情,例如执行PHP脚本(因此,即使用户上传了PHP,也无法执行)。
HTTP PUT不会改变您的777问题,因为文件上载后仍将存在。

文件夹权限只是为了确保您的httpd/Apache用户可以写入该文件夹。 实际上,您不需要为存储文件夹使用chmod 777。只需确保将所有者设置为root,并将组设置为您正在运行的Apache/httpd用户,或者只需将文件夹所有者设置为您的Apache用户

chmod 774/upload/folder
:可供所有者和组写入,其他人只需读取即可

PHP:如果该文件夹以某种方式指向用户文档根文件夹,则可以禁用该特定virtualhost的PHP引擎

如果该文件夹是系统/应用程序文档根文件夹的一部分,请编辑 .htaccess文件并使用removeHandler Apache指令可能会达到这个目的