English |
  • 美国VPS主机推荐
  • |
  • 代购服务
  • |
  • 10美元以下VPS
  • |
  • VPS新手指南/教程
  • |
  • 留言板
  • |
  • 关于
  • | 登录 |

    lnmp去掉nginx上传目录的PHP执行权限

    2011年06月12日 上午 | 作者:VPS侦探

    LNMP有一个缺点就是目录权限设置上不如Apache,有时候网站程序存在上传漏洞或类似pathinfo的漏洞从而导致被上传了php木马,而给网站和服务器带来比较大危险。建议将网站目录的PHP权限去掉,当访问上传目录下的php文件时就会返回403错误。下面VPS侦探详细介绍如何把lnmp环境下去掉指定目录的PHP执行权限

    首先要编辑nginx的虚拟主机配置,在fastcgi的location语句的前面按下面的内容添加:

    1、单个目录去掉PHP执行权限

    location ~ /attachments/.*\.(php|php5)?$ {
    deny all;
    }

    将attachments目录的PHP执行权限去掉。

    2、多个目录去掉PHP执行权限

    location ~ /(attachments|upload)/.*\.(php|php5)?$ {
    deny all;
    }

    将attachments、upload这二个目录的PHP执行权限去掉。

    附上一个完整的虚拟主机的例子供参考:

    server
    {
    listen 80;
    server_name bbs.vpser.net;
    index index.html index.htm index.php;
    root /home/wwwroot/bbs.vpser.net;include discuz.conf;
    location ~ /(attachments|upload)/.*\.(php|php5)?$ {
    deny all;
    }
    location ~ .*\.(php|php5)?$
    {
    fastcgi_pass unix:/tmp/php-cgi.sock;
    fastcgi_index index.php;
    include fastcgi.conf;
    }access_log off;
    }

    添加完执行:/usr/local/nginx/sbin/nginx -t测试配置文件,执行:/usr/local/nginx/sbin/nginx -s reload 载入配置文件使其生效。

    如有问题欢迎在本文下方留言或到VPS论坛交流反馈。

    原创文章,谢绝转载!

    >>转载请注明出处:VPS侦探 本文链接地址:https://www.vpser.net/security/lnmp-remove-nginx-php-execute.html
    VPS侦探推荐:
    遨游主机VultrLinode搬瓦工LOCVPSKVMLAHOSTKVMHostXen80VPS美国VPS主机,国内推荐腾讯云阿里云

    发表评论

    *必填

    *必填 (不会被公开)

    评论(24条评论)

    1. VPSer说道:

      @ลงประกาศฟรี, 只要没有需要直接访问php的都可以这样设置

    2. 一下。在wp-content下除了上传附件用的uploads外,还有plugins、themes等目录。所有这些目录也都需要做这样的设置么?

      另外,是否关闭了pathinfo外,这个操作就可以免除了呢。谢谢

    3. VPSer说道:

      @wybie, 最后面附上的只是一个完整的server例子,只加最前面说的配置代码就行。

    4. wybie说道:

      :mrgreen: :mrgreen:
      {
      listen 80;
      server_name bbs.vpser.net;
      index index.html index.htm index.php;
      root /home/wwwroot/bbs.vpser.net;include discuz.conf;
      location ~ /(attachments|upload)/.*\.(php|php5)?$ {
      deny all;
      }
      location ~ .*\.(php|php5)?$
      {
      fastcgi_pass unix:/tmp/php-cgi.sock;
      fastcgi_index index.php;
      include fcgi.conf;
      }
      这部分添加到server的大括号里吗?

    5. VPSer说道:

      @memorytalks, LNMP不会默认处理,需要你自己添加

    6. memorytalks说道:

      LNMP 0.9
      还需要这样处理吗?

    7. hong0说道:

      安装好 dicuzx设置 预览缩略图提示
      系统设置错误,无法处理图片

    8. 8thzone.net说道:

      出一个干净的lamp的吧

    9. VPSer说道:

      @弗兰卡, 不是所有,一般只设置上传目录就行。
      关闭了pathinfo也可以弄,也可以不弄,弄上更安全些。

    10. 弗兰卡说道:

      你好军哥,我想以WP为例问一下。在wp-content下除了上传附件用的uploads外,还有plugins、themes等目录。所有这些目录也都需要做这样的设置么?

      另外,是否关闭了pathinfo外,这个操作就可以免除了呢。谢谢

    11. 这个真的不错 根本上解决问题

    12. BNE说道:

      @BNE,

      哦,你这个没问题了。但是为何非要有那个“?”

    13. BNE说道:

      这样还是会有问题。看一下我的文章吧:
      http://www.wooyun.org/bugs/wooyun-2011-01376

    14. 囧阿囧说道:

      马上修改。

    15. VPSer说道:

      @小陈, lnmpa 不需要

    16. 小陈说道:

      这个不错,用lnmpa需要设置么?