IT貓撲網(wǎng):您身邊最放心的安全下載站! 最新更新|軟件分類|軟件專題|手機(jī)版|論壇轉(zhuǎn)貼|軟件發(fā)布

您當(dāng)前所在位置:首頁網(wǎng)絡(luò)編程Asp編程 → ASP網(wǎng)站的漏洞分解以及入侵防范方法

ASP網(wǎng)站的漏洞分解以及入侵防范方法

時(shí)間:2015/6/28來源:IT貓撲網(wǎng)作者:網(wǎng)管聯(lián)盟我要評(píng)論(0)

如何更好的達(dá)到防范黑客攻擊,本人提一下個(gè)人意見!第一,免費(fèi)程序不要真的就免費(fèi)用,既然你可以共享原碼,那么攻擊者一樣可以分析代碼。如果在細(xì)節(jié)上注意 防范,那樣你站點(diǎn)的安全性就大大的提高了。即使出現(xiàn)了SQL Injection這樣的漏洞,攻擊者也不可能馬上拿下你的站點(diǎn)。

由于ASP的方便易用,越來越多的網(wǎng)站后臺(tái)程序都使用ASP腳本語言。但是,由于ASP本身存在一些安全漏洞,稍不小心就會(huì)給黑客提供可乘之機(jī)。事實(shí)上,安全不僅是網(wǎng)管的事,編程人員也必須在某些安全細(xì)節(jié)上注意,養(yǎng)成良好的安全習(xí)慣,否則會(huì)給自己的網(wǎng)站帶來巨大的安全隱患。目前,大多數(shù)網(wǎng)站上的ASP程序有這樣那樣的安全漏洞,但如果編寫程序的時(shí)候注意一點(diǎn)的話,還是可以避免的。

1、用戶名與口令被破解

攻擊原理:用戶名與口令,往往是黑客們最感興趣的東西,如果被通過某種方式看到源代碼,后果是嚴(yán)重的。

防范技巧:涉及用戶名與口令的程序最好封裝在服務(wù)器端,盡量少在ASP文件里出現(xiàn),涉及與數(shù)據(jù)庫連接的用戶名與口令應(yīng)給予最小的權(quán)限。出現(xiàn)次數(shù)多的用戶名與口令可以寫在一個(gè)位置比較隱蔽的包含文件中。如果涉及與數(shù)據(jù)庫連接,在理想狀態(tài)下只給它以執(zhí)行存儲(chǔ)過程的權(quán)限,千萬不要直接給予該用戶修改、插入、刪除記錄的權(quán)限。

2、驗(yàn)證被繞過

攻擊原理:現(xiàn)在需要經(jīng)過驗(yàn)證的ASP程序大多是在頁面頭部加一個(gè)判斷語句,但這還不夠,有可能被黑客繞過驗(yàn)證直接進(jìn)入。

防范技巧:需要經(jīng)過驗(yàn)證的ASP頁面,可跟蹤上一個(gè)頁面的文件名,只有從上一頁面轉(zhuǎn)進(jìn)來的會(huì)話才能讀取這個(gè)頁面。

3、inc文件泄露問題

攻擊原理:當(dāng)存在ASP的主頁正在制作且沒有進(jìn)行最后調(diào)試完成以前,可以被某些搜索引擎機(jī)動(dòng)追加為搜索對(duì)象。如果這時(shí)候有人利用搜索引擎對(duì)這些網(wǎng)頁進(jìn)行查找,會(huì)得到有關(guān)文件的定位,并能在瀏覽器中查看到數(shù)據(jù)庫地點(diǎn)和結(jié)構(gòu)的細(xì)節(jié),并以此揭示完整的源代碼。

防范技巧:程序員應(yīng)該在網(wǎng)頁發(fā)布前對(duì)它進(jìn)行徹底的調(diào)試;安全專家則需要加固ASP文件以便外部的用戶不能看到它們。首先對(duì).inc文件內(nèi)容進(jìn)行加密,其次也可以使用.asp文件代替.inc文件使用戶無法從瀏覽器直接觀看文件的源代碼。inc文件的文件名不要使用系統(tǒng)默認(rèn)的或者有特殊含義容易被用戶猜測(cè)到的名稱,盡量使用無規(guī)則的英文字母。

4、自動(dòng)備份被下載

攻擊原理:在有些編輯ASP程序的工具中,當(dāng)創(chuàng)建或者修改一個(gè)ASP文件時(shí),編輯器自動(dòng)創(chuàng)建一個(gè)備份文件,比如:UltraEdit就會(huì)備份一個(gè).bak文件,如你創(chuàng)建或者修改了some.asp,編輯器會(huì)自動(dòng)生成一個(gè)叫some.asp.bak文件,如果你沒有刪除這個(gè)bak文件,攻擊者可以直接下載some.asp.bak文件,這樣some.asp的源程序就會(huì)被下載。

防范技巧:上傳程序之前要仔細(xì)檢查,刪除不必要的文檔。對(duì)以BAK為后綴的文件要特別小心。

5、特殊字符

攻擊原理:輸入框是黑客利用的一個(gè)目標(biāo),他們可以通過輸入腳本語言等對(duì)用戶客戶端造成損壞;如果該輸入框涉及數(shù)據(jù)查詢,他們會(huì)利用特殊查詢語句,得到更 多的數(shù)據(jù)庫數(shù)據(jù),甚至表的全部。因此必須對(duì)輸入框進(jìn)行過濾。但如果為了提高效率僅在客戶端進(jìn)行輸入合法性檢查,仍有可能被繞過。

防范技巧:在處理類似留言板、BBS等輸入框的ASP程序中,最好屏蔽掉HTML、javaScript、vbScript語句,如無特殊要求,可以限定只允許輸入字母與數(shù)字,屏蔽掉特殊字符。同時(shí)對(duì)輸入字符的長(zhǎng)度進(jìn)行限制。而且不但要在客戶端進(jìn)行輸入合法性檢查,同時(shí)要在服務(wù)器端程序中進(jìn)行類似檢查。

6、數(shù)據(jù)庫下載漏洞

攻擊原理:在用access做后臺(tái)數(shù)據(jù)庫時(shí),如果有人通過各種方法知道或者猜到了服務(wù)器的Access數(shù)據(jù)庫的路徑和數(shù)據(jù)庫名稱,那么他也能夠下載這個(gè)Access數(shù)據(jù)庫文件,這是非常危險(xiǎn)的。

防范技巧:

(1)為你的數(shù)據(jù)庫文件名稱起個(gè)復(fù)雜的非常規(guī)的名字,并把它放在幾層目錄下。所謂 "非常規(guī)",打個(gè)比方說,比如有個(gè)數(shù)據(jù)庫要保存的是有關(guān)書籍的信息,可不要給它起個(gè)"book.mdb"的名字,而要起個(gè)怪怪的名稱,比如d34ksfslf.mdb,并把它放在如./kdslf/i44/studi/的幾層目錄下,這樣黑客要想通過猜的方式得到你的Access數(shù)據(jù)庫文件就難上加難了。

(2)不要把數(shù)據(jù)庫名寫在程序中。有些人喜歡把DSN寫在程序中,比如:

DBPath = Server.MapPath("cmddb.mdb")
  conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath 

假如萬一給人拿到了源程序,你的Access數(shù)據(jù)庫的名字就一覽無余了。因此建議你在ODBC里設(shè)置數(shù)據(jù)源,再在程序中這樣寫: 

conn.open"shujiyuan"

(3)使用Access來為數(shù)據(jù)庫文件編碼及加密。首先在"工具→安全→加密/解密數(shù)據(jù)庫"中選取數(shù)據(jù)庫(如:employer.mdb),然后按確定,接著會(huì)出現(xiàn)"數(shù)據(jù)庫加密后另存為"的窗口,可存為:"employer1.mdb"。

要注意的是,以上的動(dòng)作并不是對(duì)數(shù)據(jù)庫設(shè)置密碼,而只是對(duì)數(shù)據(jù)庫文件加以編碼,目的是為了防止他人使用別的工具來查看數(shù)據(jù)庫文件的內(nèi)容。

接下來我們?yōu)閿?shù)據(jù)庫加密,首先打開經(jīng)過編碼了的 employer1.mdb,在打開時(shí),選擇"獨(dú)占"方式。然后選取功能表的"工具→安全→設(shè)置數(shù)據(jù)庫密碼",接著輸入密碼即可。這樣即使他人得到了 employer1.mdb文件,沒有密碼他也是無法看到 employer1.mdb中的內(nèi)容。

7、防范遠(yuǎn)程注入攻擊

這類攻擊在以前應(yīng)該是比較常見的攻擊方式,比如POST攻擊,攻擊者可以隨便的改變要提交的數(shù)據(jù)值已達(dá)到攻擊目的.又如:COOKIES 的偽造,這一點(diǎn)更值得引起程序編寫者或站長(zhǎng)的注意,不要使用COOKIES來做為用戶驗(yàn)證的方式,否則你和把鑰匙留給賊是同一個(gè)道理.

比如:

If trim(Request. cookies ("uname"))="fqy" and Request.cookies("upwd") ="fqy#e3i5.com" then 
……..more……… 
End if 

我想各位站長(zhǎng)或者是喜好寫程序的朋友千萬別出這類錯(cuò)誤,真的是不可饒恕.偽造COOKIES 都多少年了,你還用這樣的就不能怪別人跑你的密碼.涉及到用戶密碼或者是用戶登陸時(shí),你最好使用session 它才是最安全的.如果要使用COOKIES就在你的COOKIES上多加一個(gè)信息,SessionID,它的隨機(jī)值是64位的,要猜解它,不可能.例:

if not (rs.BOF or rs.eof) then 
login="true" 
Session("username"&sessionID) = Username 
Session("password"& sessionID) = Password 
'Response.cookies("username")= Username 
'Response.cookies("Password")= Password 

下面我們來談?wù)勅绾畏婪哆h(yuǎn)程注入攻擊,一般的攻擊都是將單表提交文件拖到本地,將Form ACTION="chk.asp" 指向你服務(wù)器中處理數(shù)據(jù)的文件即可.如果你全部的數(shù)據(jù)過濾都在單表頁上,那么恭喜你,你將已經(jīng)被腳本攻擊了.

怎么才能制止這樣的遠(yuǎn)程攻擊?好辦,請(qǐng)看代碼如下: 程序體(9)

<% 
server_v1=Cstr(Request.ServerVariables("HTTP_REFERER")) 
server_v2=Cstr(Request.ServerVariables("SERVER_NAME")) 
if mid(server_v1,8,len(server_v2))<>server_v2 then 
response.write "<br><br><center>" 
response.write " " 
response.write "你提交的路徑有誤,禁止從站點(diǎn)外部提交數(shù)據(jù)請(qǐng)不要亂改參數(shù)!" 
response.write "" 
res

關(guān)鍵詞標(biāo)簽:ASP網(wǎng)站,入侵防范

相關(guān)閱讀 天涯明月刀詩詞手游詩詞坐標(biāo)位置分享-天涯明月刀詩詞坐標(biāo)位置匯總搜狗五筆輸入法的漢字變成繁體字的簡(jiǎn)單教程陰陽師盜墓小鬼哪里多_盜墓小鬼哪里可以打WIN2003 IIS6.0+PHP+ASP+MYSQL優(yōu)化配置ASP網(wǎng)站程序自動(dòng)升級(jí)實(shí)現(xiàn)的方法ASP.Net:System.Drawing的使用

文章評(píng)論
發(fā)表評(píng)論

熱門文章 Active Server Pages 錯(cuò)誤 'ASP 0131'解決方Active Server Pages 錯(cuò)誤 'ASP 0131'解決方

相關(guān)下載

人氣排行 ASP下標(biāo)越界的解決方法ASP代碼中如何屏蔽ip地址 禁止某IP段訪問網(wǎng)站“文件共享鎖定數(shù)溢出” 原因及解決方法無法寫入數(shù)據(jù)庫的解決方法如何用ASP來獲取客戶端真實(shí)IP的地址用Asp編程實(shí)現(xiàn)QQ的在線情況查詢ASP常用函數(shù)列表ASP用FSO生成HTML簡(jiǎn)單實(shí)例+詳解[原創(chuàng)]