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首部信息. 按两种基准分类.一种 ...
随机推荐
- MongoDB学习笔记——Master/Slave主从复制
Master/Slave主从复制 主从复制MongoDB中比较常用的一种方式,如果要实现主从复制至少应该有两个MongoDB实例,一个作为主节点负责客户端请求,另一个作为从节点负责从主节点映射数据,提 ...
- shell将标准错误输出重定向到 其他地方
经常可以在一些脚本,尤其是在crontab调用时发现如下形式的命令调用: /tmp/test.sh > /tmp/test.log >& 前半部分/tmp/test.sh > ...
- 【转】input输入框中光标高度的变化问题
原文地址:http://blog.csdn.net/luochao_tj/article/details/17755457 input[type='text']文本框光标高度在有输入内容和为空时发生很 ...
- 工作中常用的Linux命令:find命令
本文链接:http://www.cnblogs.com/MartinChentf/p/6056571.html (转载请注明出处) 1.命令格式 find [-H] [-L] [-P] [-D deb ...
- Android,LIstView中的OnItemClick点击无效的解决办法
在List_Item布局文件中的根节点加上如下背景标黄的这一行 <?xml version="1.0" encoding="utf-8"?> < ...
- Javascript进度条
一个简单的进度条演示. <!doctype html> <html> <head> <meta charset="utf8"> &l ...
- Spring之IoC总结帖
Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development a ...
- 关于反射blog
非常好的Java反射例子 疯狂java 在学习编程的过程中,我觉得不止要获得课本的知识,更多的是通过学习技术知识提高解决问题的能力,这样我们才能走在最前方,更多Java学习,请浏览疯狂java ...
- jdbc 与 each controller 对多条查询结果的处理
这里 userid 是从前面 sql语句中查到的其中一个字段的结果 这里设置变量的前缀,即使用userid进行循环,输出变量名称为 current_userid 假设另外一个变量的名字为mobile, ...
- 在ubuntu14.04上安装编译Android需要的开发包
具体的操作步骤,可在Android官网查看. http://source.android.com/source/initializing.html 首先安装dpkg-dev sudo apt-get ...