1、CC攻擊原理
CC攻擊為DDOS(分布式拒絕服務(wù))的一種,也是一種常見的網(wǎng)站攻擊方法,攻擊者通過代理服務(wù)器或者肉雞向向受害主機(jī)不停地發(fā)大量數(shù)據(jù)包,造成對(duì)方服務(wù)器資源耗盡,一直到宕機(jī)崩潰。
2、CC攻擊的技術(shù)特點(diǎn)
CC攻擊的攻擊技術(shù)含量低,利用工具和一些IP代理,一個(gè)初、中級(jí)的電腦水平的用戶就能夠?qū)嵤┕?。不過,如果了解了CC攻擊的原理,那就不難針對(duì)CC攻擊實(shí)施一些有效的防范措施。
3.CC攻擊解決方案
1. 使用Cookie認(rèn)證.這時(shí)候朋友說CC里面也允許Cookie,但是這里的Cookie是所有連接都使用的,所以啟用IP+Cookie認(rèn)證就可以了。
2. 利用Session.這個(gè)判斷比Cookie更加方便,不光可以IP認(rèn)證,還可以防刷新模式,在頁(yè)面里判斷刷新,是刷新就不讓它訪問,沒有刷新符號(hào)給它刷新符號(hào).給些示范代碼吧,Session:
程序代碼:
〈%
if session(“refresh”)〈〉 1 then
Session(“refresh”)=session(“refresh”)+1
Response.redirect “index.asp”
End if
%〉
這樣用戶第一次訪問會(huì)使得Refresh=1,第二次訪問,正常,第三次,不讓他訪問了,認(rèn)為是刷新,可以加上一個(gè)時(shí)間參數(shù),讓多少時(shí)間允許訪問,這樣就限制了耗時(shí)間的頁(yè)面的訪問,對(duì)正??蛻魩缀鯖]有什么影響。
3. 通過代理發(fā)送的HTTP_X_FORWARDED_FOR變量來判斷使用代理攻擊機(jī)器的真實(shí)IP,這招完全可以找到發(fā)動(dòng)攻擊的人,當(dāng)然,不是所有的代理服務(wù)器都發(fā)送,但是有很多代理都發(fā)送這個(gè)參數(shù).詳細(xì)代碼:
程序代碼:
〈%
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 “有代理訪問”
%〉
這樣會(huì)生成CCLog.txt,它的記錄格式是:真實(shí)IP [代理的IP] 時(shí)間,看看哪個(gè)真實(shí)IP出現(xiàn)的次數(shù)多,就知道是誰(shuí)在攻擊了.將這個(gè)代碼做成Conn.asp文件,替代那些連接數(shù)據(jù)庫(kù)的文件,這樣所有的數(shù)據(jù)庫(kù)請(qǐng)求就連接到這個(gè)文件上,然后馬上就能發(fā)現(xiàn)攻擊的人。
4. 還有一個(gè)方法就是把需要對(duì)數(shù)據(jù)查詢的語(yǔ)句做在Redirect后面,讓對(duì)方必須先訪問一個(gè)判斷頁(yè)面,然后Redirect過去。
5. 在存在多站的服務(wù)器上,嚴(yán)格限制每一個(gè)站允許的IP連接數(shù)和CPU使用時(shí)間,這是一個(gè)很有效的方法。
CC的防御要從代碼做起,其實(shí)一個(gè)好的頁(yè)面代碼都應(yīng)該注意這些東西,還有SQL注入,不光是一個(gè)入侵工具,更是一個(gè)DDOS缺口,大家都應(yīng)該在代碼中注意.舉個(gè)例子吧,某服務(wù)器,開動(dòng)了5000線的CC攻擊,沒有一點(diǎn)反應(yīng),因?yàn)樗械脑L問數(shù)據(jù)庫(kù)請(qǐng)求都必須一個(gè)隨機(jī)參數(shù)在Session里面,全是靜態(tài)頁(yè)面,沒有效果.突然發(fā)現(xiàn)它有一個(gè)請(qǐng)求會(huì)和外面的服務(wù)器聯(lián)系獲得,需要較長(zhǎng)的時(shí)間,而且沒有什么認(rèn)證,開800線攻擊,服務(wù)器馬上滿負(fù)荷了。
代碼層的防御需要從點(diǎn)點(diǎn)滴滴做起,一個(gè)腳本代碼的錯(cuò)誤,可能帶來的是整個(gè)站的影響,甚至是整個(gè)服務(wù)器的影響,慎之!
來源:網(wǎng)絡(luò)
-
廣告合作
-
QQ群號(hào):4114653