我看到很多上传表单被黑了,有些人对上传的文件进行了一些非常好的安全检查(至少我是这么认为),但还是有人设法上传了一个PHP文件。
我想知道:有没有办法在uploads文件夹中上传具有777权限的文件?我正在考虑使用HTTP PUT。
答案 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问题,因为文件在上传后仍然存在。