1.隐藏版本信息

避免被针对版本直接使用漏洞

修改 nginx.conf 文件

在 http 模块中添加信息:server_tokens off;

2.限制目录权限

某些目录为运维页面,不要公开访问

编辑 nginx.conf 文件

在 server 标签内添加内容:

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

3.限制 IP 地址访问

敏感目录使用白名单访问

修改 nginx.conf 文件

在 server 中添加

location /upload {
allow 192.168.1.0/24;
allow 10.1.1.1/32
deny all;
}

4.禁止浏览目录内容

防止通过浏览器直接查看目录内容

编辑 nginx.conf

在 http 模块下添加:autoindex off;

5.错误页面重定向

编辑 nginx.conf

在 server 模块下加入

error_page 404 /404.html;
location = /404.html {
root /usr/local/nginx/html;
}

6.日志配置

修改日志格式,便于审计

编辑 nginx.conf

在 http 模块内启用标签 main 的 log_format 格式

log_format main
$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' ' "$http_user_agent" "%http_x_forwarded_for"';

在 server 标签内调用:access_log logs/host.access.log main

7.限制 http 请求方法

只允许常用的 get 和 post 方法,减少漏洞

编辑 httpd.conf

在 server 模块中加入判断信息

除了 GET 和 POST 方法,页面都显示 403
if ($request_method !~* GET|POST) {
return 403;
}

8.限制并发和速度(需要经过测试,根据实际信息进行修改)

编辑 nginx.conf

在 http 模块中声明:limit_req_zone $binary_remote_addr zone=allips:10m rate=20r/s;

添加在 server 的location 中

location / {
limit_req zone=allips burst=5 nodelay;;
limit_rate 20k;
}
location /download {
limit_rate_after 10m;
limit_rate 128k;
}

9.防盗链

防止通过其他途径使用本网站资源

location ~* \.(jpg|jpeg|png|gif|bmp|swf|rar|zip|doc|xls|pdf|gz|bz2|mp3|mp4|flv)$
valid_referers none blocked 192.168.0.1 *.baidu.com; #允许的
if ($invalid_referer) {
rewrite ^/ https://site.com/403.jpg;
#return 403;
}
root /usr/share/nginx/img;
}

10.nginx 降权

防止高权限运行 nginx 进程

编辑 nginx.conf

在 http 模块下修改:user nobody;

11.解析漏洞

防止非法后缀被服务器识别

1)将 php.ini 文件中的 cgi.fix_pathinfo 的值设为 0

2)将 /etc/php5/fpm/pool.d/www.conf 中 security.limit_ectensions 后面的值设为 .php

13、web 中间件加固-Nginx 加固的更多相关文章

  1. web中间件之nginx

    web中间件之nginx https://www.jianshu.com/p/d8bd75c0fb1b   对nginx正向代理和反向代理理解特别好的一篇文章. 一.nginx nginx缺点,负载均 ...

  2. 常见web中间件漏洞(三)Nginx漏洞

    nginx是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务,有  开源,内存占用少,并发能力强,自由模块化,支持epoll模型,可限制连接数,支持热部署,简单 ...

  3. web中间件

    0x00 Web中间件概述 通俗来说,中间件是提供系统软件和应用软件之间连接的软件,以便于软件各部件之间的沟通.Apache的Tomcat.IBM公司的WebSphere.BEA公司的WebLogic ...

  4. 柔弱的APP如何自我保护,浅谈APP防御手段,使用360加固助手加固/签名/多渠道打包/应用市场发布

    柔弱的APP如何自我保护,浅谈APP防御手段,使用360加固助手加固/签名/多渠道打包/应用市场发布 由于JAVA和Android的平台型,所以APP很容易被反编译,这对于我们开发者来说,是一个不想要 ...

  5. Web服务器之Nginx详解(操作部分)

    大纲 一.前言 二.Nginx 安装与配置 三.Nginx 配置文件详解 四.Nginx 命令参数 五.配置Nginx提供Web服务 六.配置Nginx的虚拟主机 七.配置Nginx的用户认证 八.配 ...

  6. [C#]使用 C# 代码实现拓扑排序 dotNet Core WEB程序使用 Nginx反向代理 C#里面获得应用程序的当前路径 关于Nginx设置端口号,在Asp.net 获取不到的,解决办法 .Net程序员 初学Ubuntu ,配置Nignix 夜深了,写了个JQuery的省市区三级级联效果

    [C#]使用 C# 代码实现拓扑排序   目录 0.参考资料 1.介绍 2.原理 3.实现 4.深度优先搜索实现 回到顶部 0.参考资料 尊重他人的劳动成果,贴上参考的资料地址,本文仅作学习记录之用. ...

  7. php课程 1-3 web项目中php、html、js代码的执行顺序是怎样的(详解)

    php课程 1-3 web项目中php.html.js代码的执行顺序是怎样的(详解) 一.总结 一句话总结:b/s结构 总是先执行服务器端的先.js是客户端脚本 ,是最后执行的.所以肯定是php先执行 ...

  8. Linux系统WEB服务之Nginx基础入门

    一.Nginxi简介 Nginx是什么?它是一个开源.高性能的WEB服务器软件和代理服务器软件,由俄罗斯人Igor Sysoev 开发实现.它的功能主要分三类,第一是它作为一个WEB服务软件使用:第二 ...

  9. Web中间件 - 常见漏洞总结

    *文章来源:https://blog.egsec.cn/archives/472 *本文将主要说明:Web中间件常见漏洞的产生原因以及修复方案 什么是Web中间件? 百度百科是这样解释的:中间件是介于 ...

  10. 软件性能测试分析与调优实践之路-Web中间件的性能分析与调优总结

    本文主要阐述软件性能测试中的一些调优思想和技术,节选自作者新书<软件性能测试分析与调优实践之路>部分章节归纳. 在国内互联网公司中,Web中间件用的最多的就是Apache和Nginx这两款 ...

随机推荐

  1. 【已解决】aconda3 创建和切换jupyter Kernel(安装好了tensorflow在jupyter中无法使用)

    如下图:在这里更换python环境内核(如果你把tensorflow安装在了一个新建的虚拟环境) 1. 创建新的环境(或者是直接激活进入已经安装了tensorflow的环境) conda create ...

  2. Ascend C 自定义算子 Kernel Launch调用入门

    本文分享自华为云社区<Ascend C 自定义算子 Kernel Launch调用入门>,作者: jackwangcumt. 1 Kernel Launch概述 根据官方说明文档的介绍,A ...

  3. tkinter属性--转载Tynam Yang

    一.主要控件 1.Button 按钮.类似标签,但提供额外的功能,例如鼠标掠过.按下.释放以及键盘操作事件 2.Canvas 画布.提供绘图功能(直线.椭圆.多边形.矩形) 可以包含图形或位图 3.C ...

  4. “AI虚拟数字人+线下大屏互动”升级智能人机交互服务!

    如今AIGC 强势爆发. ChatGPT 语言大模型横空出世,使得数字人的"大脑"水平得到了极大提升,AI技术赋能下的虚拟数字人拥有了更加精准的语言表达.思考逻辑.帮助各个行业实现 ...

  5. 重新整理.net core 计1400篇[七] (.net core 中的依赖注入)

    前言 请阅读第六篇,对于理解.net core 中的依赖注入很关键. 和我们上一篇不同的是,.net core服务注入保存在IServiceCollection 中,而将集合创建的依赖注入容器体现为I ...

  6. lowdb 在electron 使用中注意的问题

    前言 可能很多人都没有听说过这个lowdb,但是它的确存在,而且在electron 中用到还是挺多的. 如何在electron 的render 进程中是引用electron 模块. 我们知道一个问题, ...

  7. python将日志生成到文件和控制台

    # 日志收集设置import logging, osfrom logging.handlers import TimedRotatingFileHandlerimport datetimecurren ...

  8. Python阿里云消息推送调用API

    很多公司测试APP推送时候,应该也是很头疼:推送环境:测试.正式,稍不注意就把测试的push到正式上,导致所有用户都收到 例子很多: 其实阿里.极光都有推送Api,直接调用API就ok,特别是有的公司 ...

  9. 力扣48(java)-旋转图像(中等)

    题目: 给定一个 n × n 的二维矩阵 matrix 表示一个图像.请你将图像顺时针旋转 90 度. 你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵.请不要 使用另一个矩阵来旋转图像 ...

  10. 牛客网-SQL专项训练14

    ①通过子查询的方式从衬衫表SHIRTABLE中选取出销售单价shirt_price高于全部衬衫的平均价格的衬衫名字:B 解析: 题目要求需要用到子查询,故排除AC选项,而D选项在where子句中使用了 ...