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

3

我见过很多上传表单被黑客攻击,有些表单对上传的文件进行了非常好的安全检查(至少我认为是这样),但还是有人成功上传了 PHP 文件。

我在想:是否有一种方法可以通过 HTTP PUT 在 uploads 文件夹中上传一个具有 777 权限的文件?

3个回答

6
一般来说,777是最不安全的...这意味着任何人都可以读取和写入您的文件。
如果允许上传的文件在您的服务器上执行,则HTTP PUT与HTTP POST并没有本质上更安全。
总体而言,如果您允许任意文件被执行,则需要在服务器端进行非常好的文件检查,并明智地使用服务器上的chroot。
在权限方面,我通常将任何可通过Web访问的内容设置为644,由Web服务器用户拥有。

2
文件夹权限只是为了确保您的httpd / Apache用户可以写入该文件夹。 实际上,您不需要为存储文件夹设置chmod 777。只需确保将所有者设置为root,组设置为运行的Apache / httpd用户,或者仅将文件夹所有者设置为您的Apache用户即可。 chmod 774 /upload/folder:对所有者和组可写,其他人只能读取。
PHP:如果该文件夹引用用户文档根文件夹,则可以禁用该特定虚拟主机的PHP引擎。
如果该文件夹是系统/应用程序文档根文件夹的一部分,则编辑.htaccess文件并使用removeHandler Apache指令可能会起作用。

1

上传文件夹不需要也不应该有777权限。只需对Web服务器运行的用户(通常是www-data)进行读写权限即可。此外,您应该关闭(例如通过.htaccess)在此文件夹中不希望发生的任何事情,比如执行PHP脚本(因此,即使用户上传了PHP文件,也无法执行)。 HTTP PUT不会解决777问题,因为文件在上传后仍将存在。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接