HTTP GET 攻击 及cc 及防护

1、http get攻击:通过大量主机对受寒者发起http get请求 ,超过服务器处理能力;

      当耗费的是服务器的cpu时,称为cc攻击;文末说明cc的特殊处

2、防范:

    限制一下几种情况:

      一、控制 单台主机对服务器的并发数量

      二、控制  单台主机的连续重复信息

      三、控制 单台主机的http get 速率

      四、http重定向,区分人机

3、详细:

       一、

                          

 

       二、通过检测tcp cksum来判断是否为二中所述情况;因为

                              

 

 

      优点:可防护二所描述情况

      缺点:当内容是变化的或形式变化(实际内容不变)时,无法防御

       三、

         优点:可控制速率,对攻击有一定抑制作用

         缺点:无法根本解决问题; 对下1无法理解

                      

 

 

       四、这里的重定向 的目的是为了 通过重定向、重发这个过程来确定是否是浏览器在进行请求(浏览器可以自动处理重定向请求,以此来区分人机(假定为攻击者无法模拟浏览器处理重定向,如果攻击者软件也可以模拟处理重定向,那就加点料,比如下面的只有b知道的信息,再看攻击者能否,前面划掉的好像也不一定,为啥浏览器可以,模拟的就不可以?关键技术点是什么?到底能否模拟???!!!

这个点是:一般的自动化脚本是没有办法处理302、301重定向,除非带内置浏览器;))

详情如下:

                                                        

 

               优点:对无法模拟浏览器进行重定向请求处理的攻击,可以有效防御

               缺点:1、实现难度:需要对tcp进行完整的代理                   ?大么

                          2、对性能的影响大                     ?大么    ------------>这个应该主要是由于重定向时会断开开始的链接 ;两次发起链接,增加了握手造成的性能浪费?,针对这个下图的方法给出了优化;

                          3、对业务的影响:如果给每个请求加重定向   呵呵哒

                           4、如果该重定向的跳转是有输入才跳转,则浏览器也无法处理

             ps:其实个人觉得在业务中,对请求的处理结合身份验证可以简化一部分场景:当不是允许的身份发出的请求直接拒绝,返回错误页。不进

             以上想法错误,这个攻击是利用get请求,只要能发请求,你服务器就得对这个请求进行处理;怎么判断处理与否才是解决方法(而不是上面说的处理完请求后进入下一步处理),这里给出的就是方法:判断人机,非人(浏览器)的直接抛弃

 

 

                                                

 

这个个方法优化了浪费性能的问题。

所说的弥补一种的缺陷即是指加了料,一中是没有加料的方法;

 

CC:由单台主机通过代理服务器发起大量耗费cpu的http get flood攻击

      1、通过代理,逃避并发连接数检测(一般防火墙都可以检查并发连接数)

      2、http get 请求会耗费大量的服务器cpu,(如触发后台服务器检索)

一般先需要找的漏洞,在发起攻击,属于缺陷攻击;

防护:

                                                

 

 

posted @ 2017-06-21 14:55  指尖的乐律  阅读(5295)  评论(0编辑  收藏  举报