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搬瓦工LOCVPSDiaHostingKVMLAVPS2EZHostXen80VPS美国VPS主机
    欢迎加入VPS侦探论坛交流:https://bbs.vpser.net

    发表评论

    *必填

    *必填 (不会被公开)

    评论(22条评论)

    1. 修改nginx配置文件后需要reload或restart nginx才能生效
      http跳到https了的话只在https的虚拟主机上设置就可以
      不成功建议论坛贴配置代码看一下

    2. 你好,为什么我关闭不了PHP的权限?我是在VHOST网站文件里改的,是不是要到NGINX的配置文件里更改才能生效 ,明明检测代码是对的,有些主题能成功有些不能,一定要写到80服务端吗,443可以不,我都是HTTPS跳转了, 我的修改文件跟你的有不同,首先80那里就没有fastcgi.也不知道对应文件的什么位置修改才能正确。

      BTW:为什么我媒体库上传了一张照片,但是现实是不同尺寸的上传了5张, 这个请问知道吗。

    3. @lige9, LNMPA下的设置和LNMP是一样的,因为Nginx是前端,禁用执行权限的代码要在转发php的前面。

    4. 我安装的是lnmpa,该怎么去掉上传目录的PHP执行权限

    5. @dong4567, 你看看图片链接是什么,如果是通过php显示的图片,并且该文件在禁止执行的目录的话会无法显示。

    6. 您好
      我这样设置后,站点的图片都无法显示,不懂是什么问题啊?3Q