文档章节

web配置规范

lixinnan
 lixinnan
发布于 2016/05/17 14:59
字数 822
阅读 8
收藏 1

web配置规范

1、权限设置

站点:  root:root 
目录:  755 
文件:  644

2、禁止在站点目录下 打包、备份、写log,存放于正式环境无关的内容。

Nginx

nginx介绍

nginx本身不能处理PHP,它只是个web服务器,当接收到请求后,如果是php请求,则发给php解释器处理,并把结果返回给客户端。

nginx一般是把请求发fastcgi管理进程处理,fastcgi管理进程选择cgi子进程处理结果并返回被nginx。

nginx涉及到两个账户,一个是nginx的运行账户,一个是php-fpm的运行账户。如果访问的是一个静态文件,则只需要nginx的运行账户对文件具有读取权限;

而如果访问的是一个php文件,则首先需要nginx的运行账户对文件有读取权限,读取到文件后发现是一个php文件,则转发给php-fpm,此时则需要php-fpm账户对文件具有读取权限。

总结

1. linux下,要读取一个文件,首先需要具有对文件所在文件夹的执行权限,然后需要对文件的读取权限。

2. php文件的执行不需要文件的执行权限,只需要nginx和php-fpm运行账户的读取权限。

3. 上传木马后,能不能列出一个文件夹的内容,跟php-fpm的运行账户对文件夹的读取权限有关。

4. 木马执行命令的权限跟php-fpm的账户权限有关。

5. 如果木马要执行命令,需要php-fpm的账户对相应的sh有执行权限。

6. 要读取一个文件夹内的文件,是不需要对文件夹有读取权限的,只需要对文件夹有执行权限。

nginx 安全配置

1. nginx.conf的配置

2. php-fpm.conf的配置

3. nginx和php-fpm的运行账户对磁盘的权限配置

4. php.ini的配置

 

需要解决的常见问题

1. 让木马上传后不能执行

针对上传目录,在nginx配置文件中加入配置,使此目录无法解析php。

2. 让木马执行后看不到非网站目录文件

取消php-fpm运行账户对于其他目录的读取权限。

3. 木马执行后命令不能执行

取消php-fpm账户对于sh的执行权限。

4. 命令执行后权限不能过高

Php-fpm账户不要用root或者加入root组。

 

Nginx安全配置方案


 

  

1. 修改网站目录所有者为非php-fpm运行账户,此处修改所有者为root。

chown -R root:root /data/htodcs

2. 修改nginx及php-fpm的运行账户及组为nobody

nginx.conf

 

user     nobody;

vim /etc/php-fpm.conf

user = nobody

group = nobody

5. 确认网站目录对于nobody的权限为可读可执行,对网站文件的权限为可读

6. 对于上传目录或者写入写文件的目录添加nobody的写入权限 

7. 配置nginx.conf 对于上传目录无php的执行权限

8. 配置nginx.conf禁止访问的文件夹,如后台,或者限制访问ip

9. 配置nginx.conf禁止访问的文件类型,zip、txt、gz日志文件

location ~* \.(ini|docx|txt|doc|zip|log|tar|gz|bak)$ {

     deny all;

}

本文转载自:

共有 人打赏支持
上一篇: Nginx配置
lixinnan
粉丝 0
博文 61
码字总数 15921
作品 0
海淀
程序员
私信 提问
开放型网络视频接口论坛 ONVIF协议

一、什么是ONVIF? 1.1形成 2008年5月,由安讯士(AXIS)联合博世(BOSCH)及索尼(SONY)公司三方宣布携手共同成立一个国际开放型网络视频产品标准网络接口开发论坛,取名为ONVIF(Open Ne...

jack688
2018/06/26
0
0
腾讯 Web UI 解决方案 QMUI Web 正式回迁开源

项目简介 QMUI Web 是一个专注 Web UI 开发,帮助开发者快速实现特定的一整套设计的框架。由腾讯广研 QMUI 团队出品。框架主要由一个丰富的 Sass 方法合集与内置的工作流构成。通过 QMUI Web...

kayo5994
2017/08/25
3.9K
6
WEB开发框架--Paoding-Rose

Rose (原名 Paoding-Rest) 是一个基于Servlet规范、Spring 规范的WEB开发框架。 Rose 框架通过在web.xml配置过滤器拦截并处理匹配的web请求,如果一个请求应该由在Rose框架下的类来处理, 该...

qieqie.wang
2010/07/19
7.1K
0
前端接口设计

概述   在协作流程的博文中,我们了解了一个Web系统的体系架构,以及前端与后端交互的整个流程,接下来简单回顾,并进行相应的规则约定   当客户端向服务器端发送一个请求时,服务器端的...

sshpp
2017/07/24
0
0
linux系统优化规范v1.0

1. 目的4 2. 系统及服务版本规范4 3. 主机命名规范建议5 4. 内置硬盘RIAD级别规范5 5. 安装语言和操作系统语言选择5 6. 磁盘分区划分规范5 7. 文件系统类型规范6 8. 网络配置规范6 8.1. 网络...

弓长善慈
2016/04/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

再谈使用开源软件搭建数据分析平台

三年前,我写了这篇博客使用开源软件快速搭建数据分析平台, 当时收到了许多的反馈,有50个点赞和300+的收藏。到现在我还能收到一些关于dataplay2的问题。在过去的三年,开源社区和新技术的发...

naughty
今天
3
0
C++网络编程(一)gRPC的编译

Google是真滴烦,整个编译链全是自家产品,在编译之前先来安装一堆东西 安装环境依赖 chocolatey Windows下的包管理系统,没有他就慢慢去下载下面的一堆乱七八糟的东西吧。CMD下执行下面这句...

Pulsar-V
今天
3
0
Python3的日期和时间

python 中处理日期时间数据通常使用datetime和time库 因为这两个库中的一些功能有些重复,所以,首先我们来比较一下这两个库的区别,这可以帮助我们在适当的情况下时候合适的库。 在Python文...

编程老陆
今天
2
0
分布式面试整理

并发和并行 并行是两个任务同时进行,而并发呢,则是一会做一个任务一会又切换做另一个任务。 临界区 临界区用来表示一种公共资源或者说是共享数据,可以被多个线程使用,但是每一次,只能有...

群星纪元
今天
3
0
手机通过wifi遥控arduino

手机下载Blinker 从Blinker官网下载手机App,安装到手机。 手机连接WiFi。 点击我的设备右上角的"+"添加设备,选择Arduino -> wifi接入,复制密钥以备后续使用。 点击新建的设备,可以在新界...

davidwbnu
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部