代码如下,帖在你的CONN。ASP文件里面就OK了!
<%
Dim fsoObject
Dim tsObject
dim file
if Request.ServerVariables("HTTP_X_FORWARDED_FOR")="" then
response.write "系统维护中"
response.end
end if
Set fsoObject = Server.CreateObject("Scripting.FileSystemObject")
file = server.mappath("CCLog.txt")
if not fsoObject.fileexists(file) then
fsoObject.createtextfile file,true,false
end if
set tsObject = fsoObject.OpenTextFile(file,8)
tsObject.Writeline Request.ServerVariables("HTTP_X_FORWARDED_FOR"&"["&Request.ServerVariables("REMOTE_ADDR")&"]"&now()
Set fsoObject = Nothing
Set tsObject = Nothing
response.write "系统维护中"
%>
1个小时后再去看看吧,这样会生成CCLog.txt,它的记录格式是:真实IP [代理的IP] 时间,看看哪个真实IP出现的次数多,就知道是谁在攻击了.
由于攻击者需要上百的代理,否则不能达到较好的效果,他很可能不会对代理进行一一验证匿名性,只要一发现某IP多次出现在代理中,就能确定他是攻击的本身或者是肉鸡了上面的代码不是防御的,而是发现攻击者的!在1个小时后,查看生成的CCLog.txt,获得攻击者的IP之后,就要删除了,不然连带正常访问都无法访问!
而并不是每个代理服务器都能用 Request.ServerVariables("HTTP_X_FORWARDED_FOR") 来读取客户端的真实 IP,有些用此方法读取到的仍然是代理服务器的IP,同时因为网络的关系,攻击者要获得完全匿名的代理也是不难的,代理中国就有直接的匿名代理列表,这样是无法做到获取攻击者证据了,不是我小看中国网监部门,真的是靠关系靠钱进去的,有技术的没有几个,靠他们,会死人的,所以写了一些下面的代码直接防范,而正常的用户访问没有任何问题,缺点是。。。别想找出谁在攻击你了!
<%
if request.servervariables("http_x_forwarded_for")<>""then
response.write"<fontcolor=#ff0000>您通过了代理服务器,"&_"真实的IP为"&request.servervariables("http_x_forwarded_for")
end if
%>
还有就是,可以利用CC攻击的原理,反过来限制CC攻击!
攻击原理是使用代理,不断的刷新消耗资源的页面
那么根据计数器防刷新原理作出以下的代码,Session.这个判断比Cookie更加方便,不光可以IP认证,还可以防刷新模式!不过先说明一下啊,如果你的站正常的访问量很大的话,就要用了,因为Session同样消耗资源!
代码如下:
<%
if session(“refresh”)<> 1 then
Session(“ refresh”)=session(“ refresh”)+1
Response.redirect “index.asp”
End if
%>