防止PHP允许php脚本上传

运行Solaris / Apache / PHP

我们的用户群需要能够上传文件到Web服务器,所以我们必须启用php上传。 用户提供不受限制的上传脚本,攻击者上传自己的数据时就会出现问题。 攻击者通常会上传他们自己想要在Web服务器上提供的数据,或者上传另一个PHP脚本,让他们进一步访问系统。

  • 有没有办法阻止PHP从系统端上传其他PHP脚本(我知道用户可以做到这一点,但不能肯定他们会)?
  • 在处理允许file upload时,其他人采取的一些安全防范措施是什么? 我们如何阻止这些脚本被滥用?

我们有成千上万的用户,因此检查每个上传脚本(无论是自定义的,维基等)是安全的,似乎几乎是不可能的。 我有一个脚本,检查网页可写目录,看看是否有适当的.htaccess设置这些目录的限制,但系统有自己的login系统不是基于.htaccess / .htpasswd(维基等)不会使用这些,所以这些脚本在这方面没有真正的帮助。

在处理允许file upload时,其他人采取的一些安全防范措施是什么? 我们如何阻止这些脚本被滥用?

将您的上传文件夹与任何应用程序脚本/二进制文件分开放置。 设置Apache,以便它不会从上传目录执行任何cgi / php / etc代码。 理想情况下,将上传数据托pipe在webroot之外的目录中。

由于您正在托pipe许多用户,因此请使用PHP服务器/模块,以便每个用户的代码都在自己的用户标识下运行。

除此之外,您无法真正保护能够自行发布代码到服务器的人员。 如果他们上传不安全的代码,他们会看到后果。 100%保护根本不可能。