如(rú)何更好(hǎo)的(de)達到(dào)防範黑(hēi)客攻擊,本人(rén)提一(yī)下(xià)個(gè)人(rén)意見(jiàn)!第一(yī),<免費(fèi)程序不(bù)要(yào)真的(de)就(jiù)免費(fèi)用(yòng),既然你(nǐ)可(kě)以共享原碼,那(nà)麽攻擊者一(yī)樣可(kě)以分(fēn)析代碼。×如(rú)果在細節上(shàng)注意防範,那(nà)樣你(nǐ)站(zhàn)點的(de)安全性就(jiù)大(dà)大(dà)的(de)提高✘(gāo)了(le)。即使出現(xiàn)了(le)SQL Injection這(zhè)樣的(de)漏洞,攻擊者也(yě)不(bù)可(kě)能(néng)馬上(shàng)拿(ná)下λ(xià)你(nǐ)的(de)站(zhàn)點。 由于ASP的(de)方便易用(yòng),越來(lái)越多(duō)的(de)網站(zhàn)後台程序都(dδōu)使用(yòng)ASP腳本語言。但(dàn)是(shì), 由于ASP本身(shēn)存在一(yī)些(xiē)安全漏洞,稍不(bù)小(xiǎo)心就(jiù)會(huì)∞給黑(hēi)客提供可(kě)乘之機(jī)。事(shì)實上(shàng),安全不(bù)僅是(shì)網管的(de)事(shì),編>程人(rén)員(yuán)也(yě)必須在某些(xiē)安全細節上(shàng)注意,養成良好(hǎo)的(de)安全習(xí)慣,否則會(huì)給自(zì)己的(de)網站(zhβàn)帶來(lái)巨大(dà)的(de)安全隐患。目前,大(dà)多(duō)數(shù)網站(zhàn)上(shàng)的(de)±ASP程序有(yǒu)這(zhè)樣那(nà)樣的(de)安全漏洞,但(dàn)如(rú)果編寫程序的(de)時(shí)候注意一(yī)點的(de)話(huà),還(hái)是(shì)可(kě)§以避免的(de)。
1、用(yòng)戶名與口令被破解
攻擊原理(lǐ):用(yòng)戶名與口令,往往是(shì)黑(hēi)客們最感興趣的(de)東(dōng)西λ(xī),如(rú)果被通(tōng)過某種方式看(kàn)到(dào)源代碼,後果是(shì)嚴重Ω的(de)。
防範技(jì)巧:涉及用(yòng)戶名與口令的(de)程序最好(hǎo)封裝在服務器(qì)端,盡量少(shǎo)在ASP文(wén)件(jiàn)裡(lǐ)出現(xiàn),涉及與數(≤shù)據庫連接的(de)用(yòng)戶名與口令應給予最小(xiǎo)的(de)權限。出現(xiàn)次數(shù)多(duō)的(de)用(yòng)戶名與口令可(kě)以寫在一(yī)個(gè)位置比較隐蔽的(de)包含文(wén)件(jiàn)中。如(r•ú)果涉及與數(shù)據庫連接,在理(lǐ)想狀态下(xià)隻給它以執行(xíng)存儲過程的(de)權限,千萬不(bù)要(yào)直接給予該用(yòng)戶修改、插入、删除記錄的(d∑e)權限。
2、驗證被繞過
攻擊原理(lǐ):現(xiàn)在需要(yào)經過驗證的(de)ASP程序大(dà)多(duō)是(shì)在頁面頭部加一(yī)個(gè)判斷語句,但(dàn↓)這(zhè)還(hái)不(bù)夠,有(yǒu)可(kě)能(néng)被黑(hēi)客繞過驗證直接進入。
防範技(jì)巧:需要(yào)經過驗證的(de)ASP頁面,可(kě)跟蹤上(shàng)一(yī)個(gè)頁面的(de)文(wén)件(jià n)名,隻有(yǒu)從(cóng)上(shàng)一(yī)頁面轉進來(lái)的(de)會(huì)話(huà)才能(né'ng)讀(dú)取這(zhè)個(gè)頁面。
3、inc文(wén)件(jiàn)洩露問(wèn)題
攻擊原理(lǐ):當存在ASP的(de)主頁正在制(zhì)作(zuò)且沒有(yǒu)進行(xíng)最後調試完成以前,可(kě)以被₩某些(xiē)搜索引擎機(jī)動追加為(wèi)搜索對(duì)象。如(rú)果這(zhè)時(shí)候有(yǒu)人(rén)利用(yòng)搜索引擎✘對(duì)這(zhè)些(xiē)網頁[www.123z.cn]進行(xíng)查找,會(huì)得(de)到(dào)有(yǒu)關文(wén)件(jiàn)的(de)定位,并能(néngσ)在浏覽器(qì)中查看(kàn)到(dào)數(shù)據庫地(dì)點和(hé)結構的(de)細節,并以此揭示完整₩的(de)源代碼。
防範技(jì)巧:程序員(yuán)應該在網頁[www.123z.cn]發布前對(duì)它進行(xíng)徹底的(de)調試;安全專家(jiā)則需要(yào)加固ASP文(wén)件(jΩiàn)以便外(wài)部的(de)用(yòng)戶不(bù)能(néng)看(kàn)到(dào)它們。首先對(±duì).inc文(wén)件(jiàn)內(nèi)容進行(xíng)加密,其次也(yě)可(kě)以使用(yòng).asp文(wén)件(jiàn)代替★.inc文(wén)件(jiàn)使用(yòng)戶無法從(cóng)浏覽器(qì)直接觀看(kàn)文(wén)件(jiàn)的(de)源代碼。inc文(wén)件(jiàn)的(de)文(wén)件(jiàn)名不(bù)要(yào)使用(yòng)系統默認的(de)或者有(yǒu)特殊含義容易被用(×yòng)戶猜測到(dào)的(de)名稱,盡量使用(yòng)無規則的(de)英文(wén)字母。
4、自(zì)動備份被下(xià)載
攻擊原理(lǐ):在有(yǒu)些(xiē)編輯ASP程序的(de)工(gōng)具中,當創建或者修改一(yī)個(gè)ASP文(wén÷)件(jiàn)時(shí),編輯器(qì)自(zì)動創建一(yī)個(gè)備份文(wén)件(jiàn),比如(r≈ú):UltraEdit就(jiù)會(huì)備份一(yī)個(gè).bak文(wén)件(jiàn),如(rú)你(nǐ)創建或者修改了(le)some.asεp,編輯器(qì)會(huì)自(zì)動生(shēng)成一(yī)個(gè)叫some.asp.bak文(wén)件(jiàn),如(rú)果你(nǐ)沒←有(yǒu)删除這(zhè)個(gè)bak文(wén)件(jiàn),攻擊者可(kě)以直接下(xià)載some.asp.bak文(wén)件(jiàn)±,這(zhè)樣some.asp的(de)源程序就(jiù)會(huì)被下(xià)載。
防範技(jì)巧:上(shàng)傳程序之前要(yào)仔細檢查,删除不(bù)必要(yào)的(de)文(wén)檔。對(du✔ì)以BAK為(wèi)後綴的(de)文(wén)件(jiàn)要(yào)特别小(xiǎo)心。
5、特殊字符
攻擊原理(lǐ):輸入框是(shì)黑(hēi)客利用(yòng)的(de)一(yī)個(gè)目标,他(tā)們可(kě)以通(↑tōng)過輸入腳本語言等對(duì)用(yòng)戶客戶端造成損壞;如(rú)果該輸入框涉及數(shù)據查詢,他(tā)們會(huì)利用(yòng)÷特殊查詢語句,得(de)到(dào)更多(duō)的(de)數(shù)據庫數(shù)據,甚至表的(de)全部。因此必須對(duì)輸入框進行(xíng)過濾。但(dàn)如(rú)果為(wèiε)了(le)提高(gāo)效率僅在客戶端進行(xíng)輸入合法性檢查,仍有(yǒu)可(kě)能(néng)被繞過。
防範技(jì)巧:在處理(lǐ)類似留言闆、BBS等輸入框的(de)ASP程序中,最好(hǎo)屏蔽掉HTML、javaScript、VBScript語λ句,如(rú)無特殊要(yào)求,可(kě)以限定隻允許輸入字母與數(shù)字,屏蔽掉特殊字符。同時(shí)對(duì)輸入字符的(de)長(cháng)度進行(xíng)限制(zhì)。而且不(bù)但(≈dàn)要(yào)在客戶端進行(xíng)輸入合法性檢查,同時(shí)要(yào)在服務器(qì)端程序中進行(xíng)類似檢查。
6、數(shù)據庫下(xià)載漏洞
攻擊原理(lǐ):在用(yòng)Access做(zuò)後台數(shù)據庫時(shí),如(rú)果有(→yǒu)人(rén)通(tōng)過各種方法知(zhī)道(dào)或者猜到(dào)了(le)服務器(qì)的(de)Access數(shù)據庫的(de)路(lù)徑和(hé)數ε(shù)據庫名稱,那(nà)麽他(tā)也(yě)能(néng)夠下(xià)載這(zhè)個(gè)Access數(shù)據庫文(wén)件(jiàn),這(zhè)是(shì)非常危險的(☆de)。
防範技(jì)巧:
(1)為(wèi)你(nǐ)的(de)數(shù)據庫文(wén)件(jiàn)名稱起個(gè)複雜(zá)的(de)非常>規的(de)名字,并把它放(fàng)在幾層目錄下(xià)。所謂 “非常規”, 打個(gè)比方說(shuō),比如(rú)有(yǒu)個(gè)數(shù)π據庫要(yào)保存的(de)是(shì)有(yǒu)關書(shū)籍的(de)信息, 可(kě)不(bù)要(yào)給它起個(gè)∞“book.mdb”的(de)名字,而要(yào)起個(gè)怪怪的(de)名稱,比如(rú)d34ksfslf.mdb, 并把它放(fàng)在如(rú)./kdslf/i4φ4/studi/的(de)幾層目錄下(xià),這(zhè)樣黑(hēi)客要(yào)想通(tōng)過猜的(de)方式得(de)到(dào)你(nǐ)的¶(de)Access數(shù)據庫文(wén)件(jiàn)就(jiù)難上(shàng)加難了(le)。
(2)不(bù)要(yào)把數(shù)據庫名寫在程序中。有(yǒu)些(xiē)人(rén)喜歡把DSN寫在程序中,比如(rú):
DBPath = Server.MapPath(“cmddb.mdb”)
conn.Open “driver={Microsoft Access Driver (*.mdb)};dbq=” & DBPath
假如(rú)萬一(yī)給人(rén)拿(ná)到(dào)了(le)源程序,你(nǐ)的(de)Access數(shù)據庫的(de)名字就(jiù)一(yī)覽無餘了(le)。因此建議(y↓ì)你(nǐ)在ODBC裡(lǐ)設置數(shù)據源,再在程序中這(zhè)樣寫:
conn.open“webjxcom”
(3)使用(yòng)Access來(lái)為(wèi)數(shù)據庫文(wén)件(jiàn)編碼及加密。首先在“工(gōng)具→安全→加密/解密數(shù)據庫”中選取數(s₽hù)據庫(如(rú):employer.mdb),然後按确定,接著(zhe)會(huì)出現(xiàn)“數(shù)據庫加密後另存為(wè₹i)”的(de)窗(chuāng)口,可(kě)存為(wèi):“employer1.mdb”。
要(yào)注意的(de)是(shì),以上(shàng)的(de)動作(zuò)并不(bù)是(shì♦)對(duì)數(shù)據庫設置密碼,而隻是(shì)對(duì)數(shù)據庫文(wén)件(jiàn)加以編碼,目的(de)是(shì)為(wèi)了(le)防止他(tā)人(rén)使用(yòng)别的(de)工(gōng)具來(lái)查看(kàn)數(shù)據庫文(wén)件(jiàn)的(≈de)內(nèi)容。
接下(xià)來(lái)我們為(wèi)數(shù)據庫加密,首先打開(kāi)經過編碼了(le)的(de) employer1.mdb,↔在打開(kāi)時(shí),選擇“獨占”方式。然後選取功能(néng)表的(de)“工(gōng)具→安全→設置數(shù)據庫密碼”,接著(zhe)輸入密碼即可(kě)。這(zhè)樣即使他(t ā)人(rén)得(de)到(dào)了(le)employer1.mdb文(wén)件(jiàn),沒有(yǒu)密碼他(tā±)也(yě)是(shì)無法看(kàn)到(dào) employer1.mdb中的(de)內(nèi)容。

掃碼立即溝通(tōng)
公衆号加關注