如何防止用户使用ftp上传php文件?

时间:2015-06-08 11:34:13

标签: php .htaccess ftp

我已经在Ubuntu桌面上安装了webmin,并使用shell:/ bin / rbash创建了一个用户,因此用户可以使用ftp将文件上传到服务器。 现在我想能够阻止用户将php文件上传到服务器。我试图创建一个.htaccess文件,我已经测试了许多不同的.htaccess代码,但是它没有工作...... 有人能给我一个如何解决问题的提示吗?

由于

2 个答案:

答案 0 :(得分:1)

我设法通过在PathDenyFilter "(\\.php)$"文件中输入proftpd.conf来解决我的问题。

答案 1 :(得分:0)

对于直接问题答案,可能有两种方法:

  1. 您希望用户只允许通过FTP提交/下载文件,然后您应该将FTP文件夹放在webroot之外。然后无法执行任何类型的脚本。
  2. 您希望用户允许通过FTP提交文件,并允许他们通过网络查看。 (这听起来像是你现在的情况)。然后,要禁用PHP执行,请在FTP上载目录.htaccess文件中插入以下代码
  3. <IfModule mod_php5.c>
    php_flag engine 0
    </IfModule>
    
    AddHandler cgi-script .php .phtml .php3 .pl .py .jsp .asp .htm .shtml .sh .cgi
    Options -ExecCGI
    

    我从Wordfence WordPress插件上传目录htaccess中获取此代码并假设你有Apache,如果你提到htaccess。或者你有nginx吗?你选择Ubuntu Desktop,这台机器可以上网吗?

    恕我直言,我不建议允许用户允许在webroot中上传文件,因为他们可以上传任何内容而无需验证。只需1次恶意执行脚本即可为您的服务器创建危险的后门程序。取而代之的是,我建议PHP上传,你可以检查它是否是真实的图像(不是带图片扩展名的php文件),检查大小等。

    如果您需要允许上传大文件(通过FTP)并将其显示为现有文件,请选择我的第一个选项,然后使用PHP扫描该目录并将其列出。您可以使用RecursiveDirectoryIterator

    执行此操作