2009-10-16 208 views
3

我已经看到很多上传表单被黑客攻击,一些上传的文件有一些非常好的安全检查(至少我是这么认为的),但仍有人设法上传一个PHP文件。设置上传文件夹777权限是否安全?

我想知道:是否有上传文件的上传文件夹中有777个权限?我正在考虑使用HTTP PUT。

回答

6

一般情况下,777约为不安全,因为它得到......这意味着任何人都可以读取和写入您的文件。

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

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

权限方面,我通常设置Web服务器用户拥有的任何Web访问权限为644。

1

您不需要,也不应该具有上传文件夹的777权限。它应该足够让它只能读取和写入运行Web服务器的用户(使用apache/debian,通常是www-data)。此外,您应该关闭(例如,通过.htaccess)您不想在此文件夹中发生的任何事情,例如执行PHP脚本(因此即使发生用户上载PHP也无法执行)。 HTTP PUT不会改变您的777问题,导致该文件在上传后仍然存在。

2

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

chmod 774 /upload/folder:对所有者和组可写,其他人刚刚阅读。

PHP:如果该文件夹以某种方式引用用户文档根文件夹,则可以禁用该特定虚拟主机的PHP引擎。

如果该文件夹是您的系统/应用程序文档根文件夹的一部分,那么编辑 .htaccess文件并使用removeHandler Apache指令可能会有效。