设置uploads文件夹777权限是否安全?

时间:2009-10-16 11:27:27

标签: php security apache upload

我看到很多上传表单被黑了,有些人对上传的文件进行了一些非常好的安全检查(至少我是这么认为),但还是有人设法上传了一个PHP文件。

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

3 个答案:

答案 0 :(得分:6)

一般来说,777与不安全差不多......这意味着任何人都可以读取和写入你的文件。

如果您允许在服务器上使用上传的文件,HTTP PUT本质上不比HTTP POST更安全。

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

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

答案 1 :(得分:2)

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

chmod 774 /upload/folder:可写为所有者和群组,其他人只是阅读。

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

如果该文件夹是系统/应用程序文档根文件夹编辑的一部分 .htaccess文件并使用removeHandler Apache指令可能会起到作用。

答案 2 :(得分:1)

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