nginx黑名单和django限速,最简单的防恶意请求方法分享


Posted in Python onAugust 09, 2019

django项目遭遇cc攻击,不要惊慌,这里推荐两招简单实用的技巧。

项目Nginx作为http接入层,分发到django应用,启动10个uwsgi worker。

今日突然发现,网页打开卡顿,打开server一看,cpu100%。

nginx黑名单和django限速,最简单的防恶意请求方法分享

打开uwsgi的log,发现某一个IP进行了大量的请求,占用了worker。

这里总结下两种解决方法:

1.设置nginx黑名单

vi blockip.conf创建文件,输入:

deny x.x.x.x;

编辑nginx.conf, 在http{}内添加:

include blockip.conf;

验证配置:

[root@server nginx]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

重启nginx:

nginx -s reload

2.django内添加middleware

RequestBlockingMiddleware.py

import time
from django.core.exceptions import PermissionDenied
 
from django.utils.deprecation import MiddlewareMixin
MAX_REQUEST_PER_SECOND=2 #每秒访问次数
class RequestBlockingMiddleware(MiddlewareMixin):
  def process_request(self,request):
     now=time.time()
     request_queue = request.session.get('request_queue',[])
     if len(request_queue) < MAX_REQUEST_PER_SECOND:
       request_queue.append(now)
       request.session['request_queue']=request_queue
     else:
       time0=request_queue[0]
     if (now-time0)<1:
       raise PermissionDenied('Forbidden user agent')
     request_queue.append(time.time())
     request.session['request_queue']=request_queue[1:]

setting.py中注册:

MIDDLEWARE = [
 'django.middleware.security.SecurityMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'common.middleware.RequestBlockingMiddleware', #在sessions之后,auth之前
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

不足100行代码,log里再也没有对方的IP出现,相信对方正在某个小黑屋的电脑前气得跺脚吧

以上这篇nginx黑名单和django限速,最简单的防恶意请求方法分享就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python双精度浮点数运算并分行显示操作示例
Jul 21 Python
Python批量更改文件名的实现方法
Oct 29 Python
python互斥锁、加锁、同步机制、异步通信知识总结
Feb 11 Python
使用Python爬了4400条淘宝商品数据,竟发现了这些“潜规则”
Mar 23 Python
Django配置celery(非djcelery)执行异步任务和定时任务
Jul 16 Python
在Python中通过getattr获取对象引用的方法
Jan 21 Python
Python 基于wxpy库实现微信添加好友功能(简洁)
Nov 29 Python
python 和c++实现旋转矩阵到欧拉角的变换方式
Dec 04 Python
Python用5行代码实现批量抠图的示例代码
Apr 14 Python
Pytorch转tflite方式
May 25 Python
浅谈TensorFlow之稀疏张量表示
Jun 30 Python
python给视频添加背景音乐并改变音量的具体方法
Jul 19 Python
python selenium爬取斗鱼所有直播房间信息过程详解
Aug 09 #Python
用Python实现二叉树、二叉树非递归遍历及绘制的例子
Aug 09 #Python
基于python二叉树的构造和打印例子
Aug 09 #Python
Python re 模块findall() 函数返回值展现方式解析
Aug 09 #Python
Django ORM 自定义 char 类型字段解析
Aug 09 #Python
解决使用export_graphviz可视化树报错的问题
Aug 09 #Python
Django中自定义admin Xadmin的实现代码
Aug 09 #Python
You might like
php下正则来匹配dede模板标签的代码
2010/08/21 PHP
php 不使用js实现页面跳转
2014/02/11 PHP
基于Laravel(5.4版本)的基本增删改查操作方法
2019/10/11 PHP
编辑浪子版表单验证类
2007/05/12 Javascript
Add a Picture to a Microsoft Word Document
2007/06/15 Javascript
jQuery EasyUI API 中文文档 - Draggable 可拖拽
2011/09/29 Javascript
Javascript this 的一些学习总结
2012/08/02 Javascript
JavaScript高级程序设计(第3版)学习笔记4 js运算符和操作符
2012/10/11 Javascript
jquery操作cookie插件分享
2014/01/14 Javascript
JavaScript中的闭包介绍
2015/03/15 Javascript
jquery实现的美女拼图游戏实例
2015/05/04 Javascript
jQuery旋转木马式幻灯片轮播特效
2015/12/04 Javascript
Vue.js每天必学之过滤器与自定义过滤器
2016/09/07 Javascript
原生js实现无限循环轮播图效果
2017/01/20 Javascript
深究AngularJS中$sce的使用
2017/06/12 Javascript
angular4自定义组件非input元素实现ngModel双向数据绑定的方法
2018/12/28 Javascript
实例详解带参数的 npm script
2019/05/28 Javascript
基于vue+uniapp直播项目实现uni-app仿抖音/陌陌直播室功能
2019/11/12 Javascript
javascript中的with语句学习笔记及用法
2020/02/17 Javascript
微信小程序多列表渲染数据开关互不影响的实现
2020/06/05 Javascript
详解Python中的from..import绝对导入语句
2016/06/21 Python
python 按不同维度求和,最值,均值的实例
2018/06/28 Python
Python中安装easy_install的方法
2018/11/18 Python
详解Python3 对象组合zip()和回退方式*zip
2019/05/15 Python
Python动态导入模块和反射机制详解
2020/02/18 Python
Python通过len函数返回对象长度
2020/10/22 Python
用pip给python安装matplotlib库的详细教程
2021/02/24 Python
利用Bootstrap实现漂亮简洁的CSS3价格表实例源码
2017/03/02 HTML / CSS
Html5之svg可缩放矢量图形_动力节点Java学院整理
2017/07/17 HTML / CSS
html5中如何将图片的绝对路径转换成文件对象
2018/01/11 HTML / CSS
香蕉共和国Banana Republic官网:美国GAP旗下偏贵族风格服饰品牌
2016/11/21 全球购物
家居设计专业个人自荐信范文
2013/11/26 职场文书
新书吧创业计划书
2014/01/31 职场文书
淘宝店策划方案
2014/06/07 职场文书
基层党组织整改方案
2014/10/25 职场文书
蓝天保卫战收官在即 :15行业将开展环保分级评价
2019/07/19 职场文书