防攻击cdn_网站防止CC攻击的方法_小白黑客笔记
CC攻击( )是DDOS(分布式拒绝服务)的一种,也是一种常见的网站攻击方法,攻击者通过代理服务器或者肉鸡向向受害主机不停地发大量数据包,造成对方服务器资源耗尽,一直到宕机崩溃。
CC攻击的攻击技术含量低,利用工具和一些IP代理,一个初、中级的电脑水平的用户就能够实施攻击。不过,如果了解了CC攻击的原理,那就不难针对CC攻击实施一些有效的防范措施。
通常防止CC攻击的方法有几种,一个是通过防火墙,另外一些网络公司也提供了一些防火墙服务,例如XX网站卫士和XX宝,还有一种方法是自己写程序预防,昨天网站遇到CC攻击,这也让我尝试了一下各种防止CC攻击方法的有效性。
一开始我想使用某某网站卫士来预防攻击,从界面上看,似乎是防止了大量的CC攻击,但登录网站后发现,流量依旧异常,攻击还是依旧,看起来这个网站卫士的效果并没有达到。
从原理上看,基本上所有的防火墙都会检测并发的TCP/IP连接数目,超过一定数目一定频率就会被认为是-Flood。但如果IP的数量足够大,使得单个IP的连接数较少,那么防火墙未必能阻止CC攻击。
不仅如此,我还发现,启用了某某网站卫士之后,反而更容易被CC攻击,因为这个网站卫士并不能过滤掉CC攻击,攻击的IP经过其加速后,更换成为这个网站卫士的IP,在网站服务器端显示的IP都是相同的,导致服务器端无法过滤这些IP。
实际上,不使用网站卫士类的服务,直接通过分析网站日志,还是很容易分辨出哪个IP是CC攻击的,因为CC攻击毕竟是通过程序来抓取网页,与普通浏览者的特性区别还是很大的,例如普通浏览者访问一个网页,必定会连续抓取网页的HTML文件、CSS文件、JS文件和图片等一系列相关文件,而CC攻击者仅仅只会抓取一个URL地址的文件,不会抓取其他类型的文件,其User Agent也大部分和普通浏览者不同,这就可以在服务器上很容易分辨出哪些访问者是CC攻击了,既然可以判断出攻击者的IP,那么预防措施就很简单,只需要批量将这些IP屏蔽,即可达到防范CC攻击的目的。
最终,我花了半个小时写了一段小程序,运行之后自动屏蔽了数百个IP,网站才算正常,从而证明,防火墙对于CC攻击的防御并不有效,最有效的方法还是在服务器端通过程序自动屏蔽来预防。
看来CC攻击的门槛还真低啊,搞个几百个代理或者肉鸡就能攻击别人了,其成本非常低,但效果比较明显,如果攻击者流量巨大的话,通过耗费带宽资源的方式都可以进行攻击。但是,CC攻击也有明显的技术缺陷,就是攻击者的IP并不是海量的,通常就是几百数千的级别,并且是真实访问了网站页面,这就使得网站可以通过程序过滤的方式,轻松获取到这些攻击者IP,批量进行屏蔽,那么这种CC攻击就会得到预防。
对于站长来说,通过程序来过滤CC攻击门槛较高,要有一定的编程技术,因此还是建议使用第三方网站提供的预防CC的服务,目前主要的网站有:云锁、安全狗、、百度云加速、360网站卫士等。
此外,下面还提供了一段基于ASP的防止CC攻击的代码,也供大家参考。
'防止CC攻击
Dim (4),,
If ("") = "" Then
(0) = "cclog.txt" '日志文件名
(1) = .("")
(2) = .("")
(3) = 4 'N秒内禁止刷新当前页面
(4) = "badip.txt" 'IP黑名单文件名
("") = (0) &"|"& (1) &"|"& (2) &"|"& (3) &"|"& (4)
Else
= Split((""),"|")
(0) = (0)
(1) = (1)
(2) = (2)
(3) = (3)
(4) = (4)
End If
Const = 1 '0关闭防刷新
Const = 1 '0关闭代理验证
Const = 1 '0关闭IP黑名单
If ("BadIP") = "" Then
= ((4))
If = "" Then = ".info"
("BadIP") =
Else
= ("BadIP")
End If
'/*第一层判断,N秒内禁止刷新*/
If = 1 Then
If ("")="" Then
("")=Now()
Else
If ("s", (""), Now()) < CInt((3)) Then
(0),(1) & "["& (2) & "]" & Now() &
.Write("系统繁忙,请稍候再试!错误代码001")
.End()
Else
("")=Now()
End If
End If
End If
'/*第二层判断,代理禁止查看*/
If = 1 Then
If (1) "" Then
If InStr(,(1)) = 0 Then
= (1) &
If InStr(,(2)) = 0 Then
= & "[" & (2) & "]" &
End If
(4),
= &
("BadIP") =
End If
'记录CC攻击日志
(0),(1) & "["& (2) & "]" & Now() &
.Write("系统繁忙,请稍候再试!错误代码002")
.End()
End If
End If
'/*第三层判断,IP黑名单禁止查看*/
If = 1 Then
If InStr(,(2))>0 Then
.Write("系统繁忙,请稍候再试!错误代码003")
.End()
End If
End If
'=1,=2,=8
(, )
On Error Next
Dim fso,
= .()
Set fso = (".")
If Err 0 Then
.Write("写入文件"&&"失败,可能您的系统不支持FSO!")
.End()
End If
Set = fso.(, 8, True)
.write ()
.Close
Set fso =
End
()
On Error Next
Dim fso,
Set fso = (".")
If Err 0 Then
.Write("读取文件"&&"失败,可能您的系统不支持FSO!")
.End()
End If
Set = fso.(.(), 1, True)
= .
.Close
Set =
Set fso =
End
() ()
~
网络安全学习,我们一起交流
~