web安全——代理(nginx)
场景
- 过滤非正常用户使用的http请求。
- 限制正常用户使用的范围(下载速度、访问频率等)。
- 通过架构规划来提升安全。
- 能自动解决http请求问题。
解决方案
代理自身的安全
- 千万不要使用root启动!!!
- 关闭服务器的信息。
server_tokens off; - 关闭掉不使用的模块。
过滤http
把所有非法的http请求直接拒绝。因为非法的请求往往就是在攻击服务器。
过滤非法的http method
# 只允许 get,post,head方式的请求,其他的不安全也没有用到,不接受
if ($request_method !~ ^(GET|HEAD|POST)$) {
return 404;
}
过滤非法用户代理
# 非法代理直接拒绝
# 有一些是爬虫工具,有一些是搜索外国的搜索引擎,有一些是压力工具
if ( $http_user_agent ~* "ApacheBench|WebBench|HttpClient|Curl|Wget|^$|AhrefsBot|BLEXBot|^-$|WordPress" ) {
return 444;
}
控制http请求后缀
有一些攻击都是扫描类似.base_history等。所以除了合法的请求,其他的都拒绝。使用的是白名单的思维方式
# 只接受这些后缀
location ~ (\.(json|html|jsp)|/)${
...
}
控制文件上传
上传的文件只有读的权限,没有执行的权限。访问webshell的产生。
控制使用
虽然请求是正常的,但是要控制使用服务的资源。
下载限速
针对于静态资源,特别是大文件,需要限速。
server {
server_name xxx.xxx.xxx;
#控制下载流量
limit_rate 100k;
}
控制访问的url的频率和频次
在关键业务的地方,需要做更细粒度的控制。
比如说一个ip一天只能免费访问一百次,超过了就禁止访问。
具体的实现思路:通过lua,redis更精准的控制访问粒度。
构架规划
通过构架的规划去增加安全也是很有必要的。
动静分离
把提供静态资源和动态资源独立部署。
更严格的控制动态资源的请求类型。
更严格的控制静态资源的权限。
也解决一定的安全问题。
静态化
把一旦生成不会变化的动态请求资源,变成静态的文件。这样就可以预防很多的安全问题。
具体的实现思路:通过nginx去实现静态化。
自动解决http请求问题
主要是为了预防ddos和cc。可以自动通过机制去处理。
主要通过定时分析访问日志,根据不同的危险等级做不同的处理。难点在于危险等级和危险阀值的设定。
比如:
- 低危的限制一段时间即可以继续使用。通过控制使用里的
控制访问的url的频率和频次即可。 - 中危的通过nginx直接返回403。可以通过nginx的deny,geo来实现。
- 高危的通过防火墙直接拒绝服务。结合防火墙来实现。
验证方法
- postman。可以模拟各种http请求
web安全——代理(nginx)的更多相关文章
- web性能优化——代理(nginx)
简介 一个很好的原则是调优时每次只个性一个配置.如果对配置的个性不能提高性能的话,改回默认值 优化必须要通过性能测试.不能意淫,需要前后对比,真实说明问题. 场景 优化nginx. 确保每次请求控制一 ...
- [C#]使用 C# 代码实现拓扑排序 dotNet Core WEB程序使用 Nginx反向代理 C#里面获得应用程序的当前路径 关于Nginx设置端口号,在Asp.net 获取不到的,解决办法 .Net程序员 初学Ubuntu ,配置Nignix 夜深了,写了个JQuery的省市区三级级联效果
[C#]使用 C# 代码实现拓扑排序 目录 0.参考资料 1.介绍 2.原理 3.实现 4.深度优先搜索实现 回到顶部 0.参考资料 尊重他人的劳动成果,贴上参考的资料地址,本文仅作学习记录之用. ...
- nginx反向代理nginx,RealServer日志打印真实ip
title: nginx反向代理nginx,RealServer日志打印真实ip date: 2016-05-11 19:15:37 tags: --- nginx反向代理nginx,RealServ ...
- nginx入门与实战 安装 启动 配置nginx Nginx状态信息(status)配置 正向代理 反向代理 nginx语法之location详解
nginx入门与实战 网站服务 想必我们大多数人都是通过访问网站而开始接触互联网的吧.我们平时访问的网站服务 就是 Web 网络服务,一般是指允许用户通过浏览器访问到互联网中各种资源的服务. Web ...
- Web服务器之Nginx详解(操作部分)
大纲 一.前言 二.Nginx 安装与配置 三.Nginx 配置文件详解 四.Nginx 命令参数 五.配置Nginx提供Web服务 六.配置Nginx的虚拟主机 七.配置Nginx的用户认证 八.配 ...
- Linux系统WEB服务之Nginx基础入门
一.Nginxi简介 Nginx是什么?它是一个开源.高性能的WEB服务器软件和代理服务器软件,由俄罗斯人Igor Sysoev 开发实现.它的功能主要分三类,第一是它作为一个WEB服务软件使用:第二 ...
- web中间件之nginx
web中间件之nginx https://www.jianshu.com/p/d8bd75c0fb1b 对nginx正向代理和反向代理理解特别好的一篇文章. 一.nginx nginx缺点,负载均 ...
- 跨平台web调试代理工具---whistle
whistle是基于Node实现的跨平台web调试代理工具,支持windows.mac.linux等所有安装了Node的操作系统,可以部署在本地机器.虚拟机或远程服务器,并通过本地网页查看或修改HTT ...
- Hadoop-2.2.0中国文献—— Web应用代理
Web应用代理是YARN的一部分. 默认地,它会作为 Resource Manager(RM)的一部分来执行, 可是也能够配置成独立执行的模式.使用代理的原因就是减少通过YARN的web攻击的可能性. ...
- 与http协作的web服务器--代理、网关、隧道
一台服务器可以搭建多个web站点 代理: 接受客户端发送的请求,转发给其他服务器,然后接受服务器的返回结果(响应)再返回给客户端.每次经过代理服务器,就会追加写入via首部信息. 按两种基准分类.一种 ...
随机推荐
- 电话薄设计--java
package com.hanqi.telbook; import java.util.Scanner; public class Menu { //主菜单 public void mainMenu( ...
- 随便选择两个城市作为预选旅游目标。实现两个独立的线程分别显示10次城市名,每次显示后休眠一段随机时间(1000ms以内),哪个先显示完毕,就决定去哪个城市。分别用Runnable接口和Thread类实现。
public class Testlvyou extends Thread{ @Override public void run() { test(); } private void test() { ...
- jQuery简单入门(三)
3.事件和动画 A. 事件 Aa. DOM加载 1.为什么使用jQuery加载DOM方法? 以javascript的window.onload()方法加载DOM的先决条件是:必须等待被请求页面的资源全 ...
- sql server 常见错误代码15000 - 15999含义解析
错误 15000 - 15999 SQL Server 2008 R2 其他版本 错误 严重性 是否记录事件 说明(消息正文) 15001 16 否 对象 '%ls' 不存在或不是此操作的有效对象. ...
- Java虚拟机 - 内存模型
本文主要介绍Java虚拟机的内存分布以及对象的创建过程. 一.Java虚拟机的内存分布 文章开始前读者需要了解Java虚拟机的运行时数据区是怎样划分的.如下图所示: 1.程序计数器(Program C ...
- MYSQL 5.7 添加新用户
错误描述: 添加用户 insert into mysql.user(Host,User,Password) values("localhost","test", ...
- mac 启动apache服务
启动服务:sudo /usr/sbin/apachectl start 停止服务:sudo /usr/sbin/apachectl stop 重启服务:sudo /usr/sbin/apachectl ...
- high三个晚上这样好么-JSON&PHP
hi 昨晚上吃火锅去了,对,你没猜错,我就是在成都 今晚有师兄请客,明天有基友请吃火锅,本来该忙忙哒的这一周要连续high三个晚上么(单身研究生狗就是这么容易满足).所以只好不务正业写写写了(写不动了 ...
- Appium学习实践(二)Python简单脚本以及元素的属性设置
1.简单的Python脚本 Appium中的设置与Appium学习实践(一)简易运行Appium中的一致 Launch后,执行脚本 #coding:utf-8 import unittest impo ...
- JAVA面向对象之一
一.面向过程的思想和面向对象的思想 面向对象和面向过程的思想有着本质上的区别, 作为面向对象的思维来说,当你拿到一个问题时,你分析这个问题不再是第一步先做什么,第二步再做什么,这是面向过程的思维,你应 ...