2013年10月30日星期三

活动服务器遭遇被刷


活动相关页面无法打开,access.log 日志爆增,磁盘空间满了。
上服务器:
1.先清一次 access.log 有点空间;
2.php_slow 大量的mysql 超时错误。到db 服务器上看,库已经挂了。
 第一次启动mysql ,failed。 看了一下错误日志:Fatal error: cannot allocate memory for the buffer pool
 top 一看 4G 的内存 memcached 用了 3.5g, kill 一次memcached 释放内存先,再次启动 mysql,再就起来了。

再tailf 一下 access.log:
1. 客户端IP 无规律;
2. user_agent 无规律;
3. 统计访问日志其中一秒钟的请求就有 1265(这个量是非常大的),普通的服务器怎么能扛的住啊 _^~^_ ,两个小时 home 目录就满了。
4. 请求的地址是一样的: /2013/wopaike/?do=addVote&aid=1061
5. refer 地址是一样的: http://www.netgamecar.com/ad/guorui.html
6. 状态码是一样的:403(下面截取的是我处理过后的)
问题的根本原因:php 开发未加任何防范措施,一个js 的鼠标点击就可以投票一次,这种貌似利用的是病毒式的方
式;没有账户、验证码类的限制。后面补救过的措施先是限制IP,每个IP 20秒 只能投票一次;
每个视频id +20 后,update 到库,那这记录至少每秒也有 60+ 次的更新,再加上php进程有点
无法把控这么大压力。
做法有二:
1. 封掉这个地址 /2013/wopaike/?do=addVote&aid=1061 ,返回403,这样正常的浏览器投票点击会403,不过刷的量早够本;
2. 封掉 refer 来自  http://www.netgamecar.com/ad/guorui.html 的请求 (这个当然是最好的,不会影响正常人的投票)
  if ($http_referer ~* 'www.netgamecar.com') {
      return 403;
  }
 服务器的磁盘空间经不起刷,先屏蔽掉掉这个域名下的日志,等这个活动起来的时候再去掉:access_log off;
观察一阵,基本正常了,收工。

114.251.216.171 test.56.com - [10/Jul/2013:00:05:46 +0800] GET /2013/wopaike/?do=addVote&aid=1061 HTTP/1.1 "403" 570 "http://www.netgamecar.com/ad/guorui.html" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17 SE 2.X MetaSr 1.0" "-" 0.000
180.177.201.53 huodong.56.com - [10/Jul/2013:00:05:46 +0800] GET /2013/wopaike/?do=addVote&aid=1061 HTTP/1.1 "403" 570 "http://www.netgamecar.com/ad/guorui.html" "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)" "-" 0.000
218.22.35.242 test.56.com - [10/Jul/2013:00:05:46 +0800] GET /2013/wopaike/?do=addVote&aid=1061 HTTP/1.1 "403" 570 "http://www.netgamecar.com/ad/guorui.html" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727)" "-" 0.000
125.88.73.120 test.56.com - [10/Jul/2013:00:05:46 +0800] GET /2013/wopaike/?do=addVote&aid=1061 HTTP/1.1 "403" 570 "http://www.netgamecar.com/ad/guorui.html" "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1" "-" 0.000
111.175.94.197 test.56.com - [10/Jul/2013:00:05:46 +0800] GET /2013/wopaike/?do=addVote&aid=1061 HTTP/1.1 "403" 570 "http://www.netgamecar.com/ad/guorui.html" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.12 (KHTML, like Gecko) Maxthon/3.0 Chrome/18.0.966.0 Safari/535.12" "-" 0.000
175.189.130.154 test.56.com - [10/Jul/2013:00:05:46 +0800] GET /2013/wopaike/?do=addVote&aid=1061 HTTP/1.1 "403" 570 "http://www.netgamecar.com/ad/guorui.html" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Tablet PC 2.0; .NET4.0C; .NET4.0E)" "-" 0.000
60.29.61.174 test.56.com - [10/Jul/2013:00:05:46 +0800] GET /2013/wopaike/?do=addVote&aid=1061 HTTP/1.1 "403" 570 "http://www.netgamecar.com/ad/guorui.html" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)" "-" 0.000

没有评论:

发表评论