网站遭受CC攻击的解决办法
前两天,网站的注册发送手机短信验证码的接口受到攻击,一个半小时,1万条短信都发出去了。可见,我们的安全防护做的多么不好。
分析攻击方式:
1) 多台机器模拟人工操作,随机输入手机号,就点击发送短信;
2) 多台机器上的部署的相同的脚本,在对网站发起攻击;
针对可能的第一种攻击方式: 在前端加了一个滑动解决的功能(一个jquery插件),必须手动拖动滑动解锁,输入框才是可点的;
针对可能的第二种攻击方式,应对策略:
1)在服务端接口加上验证,限制相同的IP,多长时间之内可以访问几次;限制相同的手机号,多长时间之内可以发送短信几次;具体实现是在redis/memcache中存储两个值;key1=该IP第一次访问的时间,key2=该IP总访问的次数;比如10分钟内可访问3次,超过3次就不让发送短信了。手机号的限制方式也是一样的;
2)配置nginx,限制IP在一定时间内的访问次数,以及同一时刻的并发数;
参考网址:http://boyseegirl.iteye.com/blog/2033717 (nginx限制特定ip的并发连接数)
http://blog.csdn.net/gebitan505/article/details/17610485 (nginx限制某个IP同一时间段的访问次数)
http://blog.csdn.net/dingyingguidyg/article/details/8523421 (nginx利用limit模块设置IP并发防CC攻击)
http://blog.csdn.net/plunger2011/article/details/37812843 (nginx配置limit_conn_zone来限制并发连接数以及下载带宽)
http{
.......
........
limit_req_zone $binary_remote_addr zone=one:10m rate=2r/s; #1秒发起2个请求)
limit_conn_zone $binary_remote_addr zone=perip:10m;
}
server{
location /{
limit_req zone=one burst=1 nodelay;
limit_conn perip 2; #连接数限
}
}
3)通过分析nginx的access日志,筛选出访问量最高的IP,封掉;
按照某个时间点统计ip的访问次数,并排序
cat access.log |grep "11/Nov/2015:12:30*" | awk '{print $1}' | sort | uniq -c | sort -rn > iptong.txt
筛选出IP之后新建一个blockIp.conf文件,文件内容为:
deny xx.xx.xx.xx ;
deny xx.xx.xx.xx ;
deny xx.xx.xx.xx ;
在nginx.conf中http{
include blockIp.conf;
}
重启nginx , nginx -s reload 即可
网站遭受CC攻击的解决办法的更多相关文章
- 什么是CC攻击,如何防止网站被CC攻击的方法总汇
CC攻击(Challenge Collapsar)是DDOS(分布式拒绝服务)的一种,也是一种常见的网站攻击方法,攻击者通过代理服务器或者肉鸡向向受害主机不停地发大量数据包,造成对方服务器资源耗尽,一 ...
- 网站防止CC攻击的方法
CC攻击(Challenge Collapsar)是DDOS(分布式拒绝服务)的一种,也是一种常见的网站攻击方法,攻击者通过代理服务器或者肉鸡向向受害主机不停地发大量数据包,造成对方服务器资源耗尽,一 ...
- Windows Server 2008 R2中IIS7.5配置完网站权限不足问题的解决办法:
Windows Server 2008 R2中IIS7.5配置完网站权限不足问题的解决办法:常见问题:HTTP 错误 500.0 - Internal Server Error无法显示页面,因为发生内 ...
- Java Web项目漏洞:检测到目标URL存在http host头攻击漏洞解决办法
检测到目标URL存在http host头攻击漏洞 详细描述 为了方便的获得网站域名,开发人员一般依赖于HTTP Host header.例如,在php里用_SERVER["HTTP_HOST ...
- NTP服务放大攻击的解决办法
什么是NTP服务? 网络时间协议NTP(Network Time Protocol)是用于互联网中时间同步的标准互联网协议.NTP服务器通过NTP服务向网络上的计算机或其他设备提供标准的授时服务,以保 ...
- 单页面网站关于id冲突的解决办法
最近做了一个单页面的网站,所有的页面加载都是通过局部刷新的方式,并且不用iframe,并且我们引入了动态tab页签: 所有的页签里的内容都只是一个元素,都在同一个html页面上,没有任何iframe分 ...
- 网站如何防止sql注入攻击的解决办法
首先我们来了解下什么是SQL注入,SQL注入简单来讲就是将一些非法参数插入到网站数据库中去,执行一些sql命令,比如查询数据库的账号密码,数据库的版本,数据库服务器的IP等等的一些操作,sql注入是目 ...
- WIN7 IIS ASP网站 打不开的解决办法
WIN7 IIS ASP网站 打不开,通常是访问ACCESS数据库的报错了但在未对IIS和IE作设置的情况,是不能正确的显示错误的,从而也不能解决问题 为解决这个问题,我在网上找了很久,虽然最终解决了 ...
- windows 2008R2部署网站后出现 ‘PageHandlerFactory-Integrated’ 的解决办法
原因:运行4.0的网站,需要用aspnet_regiis注册4.0框架,然后用4.0的Class池,就可以运行4.0的web项目了. 解决方法:1.在cmd中切换到4.0所在的目录,命令如下:cd C ...
随机推荐
- 基于matplotlib的数据可视化 - 饼状图pie
绘制饼状图的基本语法 创建数组 x 的饼图,每个楔形的面积由 x / sum(x) 决定: 若 sum(x) < 1,则 x 数组不会被标准化,x 值即为楔形区域面积占比.注意,该种情况会出现 ...
- request.getRequestURI() 、request.getRequestURL() 、request.getContextPath()、request.getServletPath()区别
request.getRequestURI() /jqueryWeb/resources/request.jsprequest.getRequestURL() http://localhost:808 ...
- mysqldump脚本crontab执行失败,但是手动执行成功
检查备份时发现,cron中定时备份mysql的脚本备份失败,但是手动自行mysql备份脚本却能正常成功 检查cron的环境变量: # cat /etc/crontab ... SHELL=/bin/s ...
- 第2章 Python基础-字符编码&数据类型 购物车&多级菜单 作业
作业 一.三级菜单 数据结构: menu = { '北京':{ '海淀':{ '五道口':{ 'soho':{}, '网易':{}, 'google':{} }, '中关村':{ '爱奇艺':{}, ...
- python标准库介绍——32 Queue 模块详解
Queue 模块 ``Queue`` 模块提供了一个线程安全的队列 (queue) 实现, 如 [Example 3-2 #eg-3-2] 所示. 你可以通过它在多个线程里安全访问同个对象. ==== ...
- jmeter运行时间越久发送请求越来越少
displayed. Size: 412152 > 204800,而且每次点击查看“察看结果树”后会导致jmeter卡死, 解决方法: step1.在user.property中增加 view. ...
- Zephir入门 —— 语法篇
概述 Zephir的语法跟PHP很相似,所以这里不会把官网的文档照搬过来翻译一遍,而是会把一些Zephir相较于PHP比较特别的语法挑出来讲一下.如果想要要完整学习Zephir的语法,没有比官网的文档 ...
- Mac笔记本安装mysql
在浏览器当中输入地址:dev.mysql.com/downloads/mysql/,如下图所示: 进入以下界面,直接点击下面位置 ,选择跳过登录,点过这后直接下载,如下图所示: 下载完成后, ...
- 冰淇淋三明治 (Android 4.0)介绍
原文:http://android.eoe.cn/topic/summary 冰淇淋三明治 (Android 4.0) 是 Android 在设计上的一个里程碑.它将 Honeycomb 提供给平板的 ...
- 绑定sql server数据库的用户与登录名
服务器重装系统,重新安装上sql server,附加上以前的数据库, 然后以前是每个数据库都有一个登录用于操作该数据库,其他数据库不能操作的, 附加上数据库后该数据库安全性里的用户能看到以前建立好的用 ...