Nginx上传目录禁止PHP运行

为了安全起见,我们一般会对上传目录禁止运行php脚本

apache下面我们可以通过以下方式禁用目录下文件php执行权限:

    <Directory /website/attachments>
    php_flag engine off
    </Directory>

那么在nginx里面同样可以实现这种方法,那就是location的优先匹配,这里简单就举个例子

    location ^~ /attachments/
    
    access_log off;
    
    }

这样 attachments这个目录 就不会再去跳转给fastcgi去执行php了.这里利用了nginx下location指令的处理顺序优先级特点.但上面的方法只能算一种技巧,一般不这样设置,正确的方法为:

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

而对于多个目录的话,可以一起进行限定:

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


「倘若有所帮助,不妨酌情赞赏!」

Holmesian

感谢您的支持!

使用微信扫描二维码完成支付


相关文章

发表新评论