黑客防线网安课程之asp防CC代码_WIN2003服务器维护_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

黑客防线网安课程之asp防CC代码

作者:黑客防线网安网站维护基地 来源:黑客防线网安网站维护基地 浏览次数:0

本篇关键词:asp服务器安全
黑客防线网安网讯:有些网站经常会遭受CC攻击!龙虎鹰师网安在维护服务器过程中积累了一些心得体会!下面龙虎鹰师网安将一些代码放松出来!希望懂行的领悟!
有些网站经常会遭受CC攻击!黑客防线网安在维护服务器过程中积累了一些心得体会!下面黑客防线网安将一些代码放松出来!希望懂行的领悟!
当然,CC也可以利用这里方法对FTP进行攻击,也可以实现TCP-FLOOD,这些都是经过测试有效的.
防范方法
说了攻击原理,大家肯定会问,那么怎么防御?使用硬件防火墙我不知道如何防范,除非你完全屏蔽页面访问,我的方法是通过页面的编写实现防御.
1. 使用Cookie认证.这时候朋友说CC里面也允许Cookie,但是这里的Cookie是所有连接都使用的,所以启用IP+Cookie认证就可以了.
2. 利用Session.这个判断比Cookie更加方便,不光可以IP认证,还可以防刷新模式,在页面里判断刷新,是刷新就不让它访问,没有刷新符号给它刷新符号.给些示范代码吧,Session:
程序代码:
〈% 
if session(“refresh”)〈〉 1 then  
Session(“refresh”)=session(“refresh”)+1 
Response.redirect “index.asp” 
End if 
%〉

这样用户第一次访问会使得Refresh=1,第二次访问,正常,第三次,不让他访问了,认为是刷新,可以加上一个时间参数,让多少时间允许访问,这样就限制了耗时间的页面的访问,对正常客户几乎没有什么影响.
3. 通过代理发送的HTTP_X_FORWARDED_FOR变量来判断使用代理攻击机器的真实IP,这招完全可以找到发动攻击的人,当然,不是所有的代理服务器都发送,但是有很多代理都发送这个参数.详细代码:
程序代码:
〈%
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 "有代理访问"
%〉

这 样会生成CCLog.txt,它的记录格式是:真实IP [代理的IP] 时间,看看哪个真实IP出现的次数多,就知道是谁在攻击了.将这个代码做成 Conn.asp文件,替代那些连接数据库的文件,这样所有的数据库请求就连接到这个文件上,然后马上就能发现攻击的人.
4. 还有一个方法就是把需要对数据查询的语句做在Redirect后面,让对方必须先访问一个判断页面,然后Redirect过去.
5. 在存在多站的服务器上,严格限制每一个站允许的IP连接数和CPU使用时间,这是一个很有效的方法.
CC 的防御要从代码做起,其实一个好的页面代码都应该注意这些东西,还有SQL注入,不光是一个入侵工具,更是一个DDOS缺口,大家都应该在代码中注意.举 个例子吧,某服务器,开动了5000线的CC攻击,没有一点反应,因为它所有的访问数据库请求都必须一个随机参数在Session里面,全是静态页面,没 有效果.突然发现它有一个请求会和外面的服务器联系获得,需要较长的时间,而且没有什么认证,开800线攻击,服务器马上满负荷了.
代码层的防御需要从点点滴滴做起,一个脚本代码的错误,可能带来的是整个站的影响,甚至是整个服务器的影响,慎之!(
<%
Dim CC_Info(4),strInfo,strTemp
If Session("CC_Info") = "" Then
CC_Info(0) = "cclog.txt" '日志文件名
CC_Info(1) = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
CC_Info(2) = Request.ServerVariables("REMOTE_ADDR")
CC_Info(3) = 10 'N秒内禁止刷新当前页面
CC_Info(4) = "badip.txt" 'IP黑名单文件名
Session("CC_Info") = CC_Info(0) &"|"& CC_Info(1) &"|"& CC_Info(2) &"|"& CC_Info(3) &"|"& CC_Info(4)
Else
strInfo = Split(Session("CC_Info"),"|")
CC_Info(0) = strInfo(0)
CC_Info(1) = strInfo(1)
CC_Info(2) = strInfo(2)
CC_Info(3) = strInfo(3)
CC_Info(4) = strInfo(4)
End If

Const chkRefresh = 1 '0关闭防刷新
Const chkProxy = 1 '0关闭代理验证
Const chkBadIP = 1 '0关闭IP黑名单

If Session("BadIP") = "" Then
strInfo = ReadFile(CC_Info(4))
If strInfo = "" Then strInfo = "125.com"
Session("BadIP") = strInfo
Else
strInfo = Session("BadIP")
End If

'/*第一层判断N秒内禁止刷新*/
If chkRefresh = 1 Then
If Session("RefreshTime")="" Then
   Session("RefreshTime")=Now()
Else
   If DateDiff("s", Session("RefreshTime"), Now()) < CInt(CC_Info(3)) Then
    Response.Write("系统繁忙请稍候再试!错误代码001")
    Response.End()
   Else
    Session("RefreshTime")=Now()
   End If
End If
End If

'/*第二层判断,代理禁止查看*/
If chkProxy = 1 Then
If CC_Info(1) <> "" Then
   If InStr(strInfo,CC_Info(1)) = 0 Then
    strTemp = CC_Info(1) & vbCrLf
    If InStr(strInfo,CC_Info(2)) = 0 Then
     strTemp = strTemp & "[" & CC_Info(2) & "]" & vbCrLf
    End If
    SaveLog CC_Info(4),strTemp
    strInfo = strInfo & strTemp
    Session("BadIP") = strInfo
   End If
   '记录CC攻击日志
   SaveLog CC_Info(0),CC_Info(1) & "["& CC_Info(2) & "]" & Now() &vbCrLf
   Response.Write("系统繁忙,请稍候再试!错误代码002")
   Response.End()
End If
End If

'/*第三层判断,IP黑名单禁止查看*/
If chkBadIP = 1 Then
If InStr(strInfo,CC_Info(2))>0 Then
   Response.Write("系统繁忙,请稍候再试!错误代码003")
   Response.End()
End If
End If

'ForReading=1,ForWriting=2,ForAppending=8
Function SaveLog(filename, filecontent)
On Error Resume Next
    Dim fso, thisfile
    filename = Server.MapPath(filename)
    Set fso = CreateObject("Scripting.FileSystemObject")
If Err <> 0 Then
   Response.Write("写入文件"&filename&"失败,可能您的系统不支持FSO!")
   Response.End()
End If
    Set thisfile = fso.OpenTextFile(filename, 8, True)
    thisfile.write (filecontent)
    thisfile.Close
    Set fso = Nothing
End Function

Function ReadFile(filename)
On Error Resume Next
Dim fso, thisfile
Set fso = CreateObject("Scripting.FileSystemObject")
If Err <> 0 Then
   Response.Write("读取文件"&filename&"失败,可能您的系统不支持FSO!")
   Response.End()
End If
Set thisfile = fso.OpenTextFile(Server.MapPath(filename), 1, True)
ReadFile = thisfile.ReadAll
thisfile.Close
Set thisfile = Nothing
Set fso = Nothing
End Function
%>
    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-7520-1.html
网站维护教程更新时间:2012-02-19 00:10:38  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer