服务器安全设置之nginx禁止upload目录运行php

如下:

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

Linux文件访问权限分为可读,可写和可执行三种。

可用ls -l命令查看

第一个字符代表文件类型。d代表目录,-代表非目录。

接下来每三个字符为一组权限,分为三组,依次代表所有者权限,同组用户权限,其它用户权限

每组权限的三个字符依次代表是否可读,是否可写,是否可执行

r 表示拥有读的权限

w 表示拥有写的权限

x 表示拥有可执行的权限

  • 表示没有该权限

chmod 设置权限时

4代表读权限,2代表写权限,1代表执行权限

7=4 + 2 + 1,表示拥有可读可写可执行权限

5=4 + 1,表示拥有可读可执行权限,但是没有写权限

0 代表没有任何权限

一般一个WEB目录禁止写入的时候,设置为 755 。

但要想一个目录禁止运行php,不能设置为766,所有的操作都必须要有1.才能浏览目录这些 解析文件等.

php运行 不等于 linux的执行 ,

应该从nginx配置目录中配置。

server {
        listen  80;
        #rewrite_log on;
        limit_req zone=req_one burst=30 nodelay;
        server_name xxxxx;
        access_log  /data/API_UP/access.log;
        error_log /data/API_UP/error.log debug;
        root  /data/API_UP/;
        index  index.php index.html index.htm;
         # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        location ~ /upload/.*\.(php|php5)?$ {
                deny all;
        }
        location  ~ .php {
            root   /data/API_UP/;
            fastcgi_read_timeout 150;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_split_path_info ^(.+\.php)(.*)$;
            fastcgi_param PATH_INFO $fastcgi_path_info;
            fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
            include        fastcgi_params;
        }
        location ~ /\.ht {
            deny  all;

        }
}

一般综合架构站点时,静态资源,上传目录,PHP站点目录,可能在不同的文件夹甚至不同的服务器。
如tp5建议一样,入口目录改变,不用在根目录,nginx直接磅定到入口目录,也可提高安全性 但这里要允许php跳出,


标签: nginx, linux安全配置

非特殊说明,本博所有文章均为博主原创。

最新文章

发表评论