我见过很多上传表单被黑客入侵,其中一些对上传的文件进行了非常好的安全检查(至少我是这样认为的),但还是有人设法上传了PHP文件。
我想知道:有没有办法在上传文件夹中上传一个拥有777权限的文件?我正在考虑使用HTTP PUT。
发布于 2009-10-16 11:35:37
一般来说,波音777是最不安全的……这意味着任何人都可以读写你的文件。
如果您允许在服务器上删除上传的文件,HTTP PUT本身并不比HTTP POST更安全。
总体而言,如果您允许执行任意文件,则需要在服务器端执行非常好的文件检查,在服务器上使用chroot将是明智的。
在权限方面,我通常将任何可通过web访问的内容设置为web服务器用户拥有的644。
发布于 2009-10-16 11:47:40
文件夹权限只是为了确保您的httpd/Apache用户可以写入该文件夹。实际上,你不需要chmod 777为你的存储文件夹。只需确保将owner设置为root,将group设置为您正在运行的Apache/httpd用户,或者仅将文件夹所有者设置为您的Apache用户。
chmod 774 /upload/folder:对于所有者和组是可写的,其他人只读。
PHP:如果该文件夹以某种方式引用了用户文档根文件夹,那么您可以禁用该特定虚拟主机的PHP引擎。
如果该文件夹是系统/应用程序文档根文件夹的一部分,那么编辑.htaccess文件并使用removeHandler Apache指令可能会解决这个问题。
发布于 2009-10-16 11:36:37
您不需要也不应该拥有上载文件夹的777权限。对于运行www服务器的用户(通常是apache/debian,通常是www-data),让它只读可写就足够了。此外,你应该关闭(例如通过.htaccess)任何你不想在这个文件夹中发生的事情,比如执行PHP脚本(所以即使用户上传了PHP,它也不能被执行)。HTTP PUT不会改变你的777问题,因为文件在上传后仍然存在。
https://stackoverflow.com/questions/1577514
复制相似问题