nginx环境中配置网站目录权限设置

来源:互联网 发布:数据统计测试用例 编辑:程序博客网 时间:2024/05/16 08:17

在nginx与php环境下,务必要设置好nginx目录权限,安全的目录权限设置,将是网站安全的一道屏障,有需要的朋友做个参考吧

配置权限的原则是,在保证网站正常运行下,尽量给最低权限。

nginx目录权限配置:
1、nginx进程用户是默认用户wwwboy;(暂时还不知道nginx进程用户会对服务器什么地方的权限有影响,配置nginx好像都没碰到权限设置问题)
2、php-fpm进程用户配置为wwwboy;
3、网站目录所有者设置为ftpuser,由于需要在FTP中对网站文件进行下载(读取)、上传(写入),ftpuser肯定对网站目录有读写权限。
关键点:php-fpm 子进程所使用的用户,不能是网站文件所有者。
网站文件所有者和php-fpm进程用户设为不同的好处是在PHP程序中无法对网站文件进行修改,这样即使网站被挂马了,也能降低很多损失,例如,对方无法在你的正常代码里混入后门。
以前总习惯性地把缓存目录权限设置为777,这回既然注意到安全问题,就想顺便弄清楚一下缓存目录怎么设置才正确合理并安全。

目录访问权限设置
1.目录列表(directory listing)
nginx让目录中的文件以列表的形式展现只需要一条指令这样就不会返回403
autoindex on;
autoindex可以放在location中,只对当前location的目录起作用。你也可以将它放在server指令块则对整个站点都起作用。或者放到http指令块,则对所有站点都生效。
下面是一个简单的例子:
代码如下 复制代码

server {        listen   80;        server_name  domain.com www.domain.com;        access_log  /var/...........................;        root   /var/www/html;        location / {                index  index.php index.html index.htm;        }        #允许访问 /api 目录        location /api {               autoindex on;        }}

2.nginx禁止访问某个目录
跟Apache的Deny from all类似,nginx有deny all指令来实现。
禁止对叫dirdeny目录的访问并返回403 Forbidden,可以使用下面的配置:
代码如下 复制代码

location /dirdeny {      deny all;      return 403;}

autoindex_exact_size off;//人性化方式显示文件大小否则以byte显示
autoindex_localtime on;//按服务器时间显示,否则以gmt时间显示,gmt时间指格林尼治时间
autoindex_exact_size off;
默认为on,显示出文件的确切大小,单位是bytes。
改为off后,显示出文件的大概大小,单位是kB或者MB或者GB
autoindex_localtime on;
默认为off,显示的文件时间为GMT时间。
改为on后,显示的文件时间为文件的服务器时间
上传目录无执行权限
代码如下 复制代码

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

设置目录浏览
1、打开/usr/local/nginx/conf/nginx.conf,找到WebServer配置处,加入以下内容:
代码如下 复制代码

location /soft/ {root /var/www/;  此处为soft的上一级目录autoindex on;autoindex_exact_size off;autoindex_localtime on;}

文章转自:http://www.111cn.net/sys/nginx/61498.htm

0 0
原创粉丝点击