資源描述:
《asp網(wǎng)站黑客防范編程技巧--》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在應用文檔-天天文庫。
1、ASP網(wǎng)站黑客防范編程技巧>>如何更好的達到防范黑客攻擊,本人提一下個人意見!第一,免費程序不要真的就免費用,既然你可以共享原碼,那么攻擊者一樣可以分析代碼。如果在細節(jié)上注意防范,那樣你站點的安全性就大大的提高了。即使出現(xiàn)了SQLInjection這樣的漏洞,攻擊者也不可能馬上拿下你的站點。 由于ASP的方便易用,越來越多的網(wǎng)站后臺程序都使用ASP腳本語言。但是,由于ASP本身存在一些安全漏洞,稍不小心就會給黑客提供可乘之機。事實上,安全不僅是網(wǎng)管的事,編程人員也必須在某些安全細節(jié)上注意,養(yǎng)成良好的安全習慣,否則會給自己的網(wǎng)站帶來巨大的安全隱患。目前,大多數(shù)網(wǎng)站上的ASP程序有這
2、樣那樣的安全漏洞,但如果編寫程序的時候注意一點的話,還是可以避免的。 1、用戶名與口令被破解 攻擊原理:用戶名與口令,往往是黑客們最感興趣的東西,如果被通過某種方式看到源代碼,后果是嚴重的?! 》婪都记桑荷婕坝脩裘c口令的程序最好封裝在服務器端,盡量少在ASP文件里出現(xiàn),涉及與數(shù)據(jù)庫連接的用戶名與口令應給予最小的權限。出現(xiàn)次數(shù)多的用戶名與口令可以寫在一個位置比較隱蔽的包含文件中。如果涉及與數(shù)據(jù)庫連接,在理想狀態(tài)下只給它以執(zhí)行存儲過程的權限,千萬不要直接給予該用戶修改、插入、刪除記錄的權限?! ?、驗證被繞過 攻擊原理:現(xiàn)在需要經(jīng)過驗證的ASP程序大多是在頁面頭部加一個判斷語
3、句,但這還不夠,有可能被黑客繞過驗證直接進入。 防范技巧:需要經(jīng)過驗證的ASP頁面,可跟蹤上一個頁面的文件名,只有從上一頁面轉(zhuǎn)進來的會話才能讀取這個頁面?! ?、inc文件泄露問題 攻擊原理:當存在ASP的主頁正在制作且沒有進行最后調(diào)試完成以前,可以被某些搜索引擎機動追加為搜索對象。如果這時候有人利用搜索引擎對這些網(wǎng)頁進行查找,會得到有關文件的定位,并能在瀏覽器中查看到數(shù)據(jù)庫地點和結(jié)構(gòu)的細節(jié),并以此揭示完整的源代碼?! 》婪都记桑撼绦騿T應該在網(wǎng)頁發(fā)布前對它進行徹底的調(diào)試;安全專家則需要加固ASP文件以便外部的用戶不能看到它們。首先對.inc文件內(nèi)容進行加密,其次也可以使用.a
4、sp文件代替.inc文件使用戶無法從瀏覽器直接觀看文件的源代碼。inc文件的文件名不要使用系統(tǒng)默認的或者有特殊含義容易被用戶猜測到的名稱,盡量使用無規(guī)則的英文字母?!?、自動備份被下載 攻擊原理:在有些編輯ASP程序的工具中,當創(chuàng)建或者修改一個ASP文件時,編輯器自動創(chuàng)建一個備份文件,比如:UltraEdit就會備份一個.bak文件,如你創(chuàng)建或者修改了some.asp,編輯器會自動生成一個叫some.asp.bak文件,如果你沒有刪除這個bak文件,攻擊者可以直接下載some.asp.bak文件,這樣some.asp的源程序就會被下載?! 》婪都记桑荷蟼鞒绦蛑耙屑殭z查,刪除
5、不必要的文檔。對以BAK為后綴的文件要特別小心?! ?、特殊字符 攻擊原理:輸入框是黑客利用的一個目標,他們可以通過輸入腳本語言等對用戶客戶端造成損壞;如果該輸入框涉及數(shù)據(jù)查詢,他們會利用特殊查詢語句,得到更多的數(shù)據(jù)庫數(shù)據(jù),甚至表的全部。因此必須對輸入框進行過濾。但如果為了提高效率僅在客戶端進行輸入合法性檢查,仍有可能被繞過?! 》婪都记桑涸谔幚眍愃屏粞园濉BS等輸入框的ASP程序中,最好屏蔽掉HTML、javaScript、VBScript語句,如無特殊要求,可以限定只允許輸入字母與數(shù)字,屏蔽掉特殊字符。同時對輸入字符的長度進行限制。而且不但要在客戶端進行輸入合法性檢查,同
6、時要在服務器端程序中進行類似檢查?! ?、數(shù)據(jù)庫下載漏洞 攻擊原理:在用Access做后臺數(shù)據(jù)庫時,如果有人通過各種方法知道或者猜到了服務器的Access數(shù)據(jù)庫的路徑和數(shù)據(jù)庫名稱,那么他也能夠下載這個Access數(shù)據(jù)庫文件,這是非常危險的?! 》婪都记桑骸。?)為你的數(shù)據(jù)庫文件名稱起個復雜的非常規(guī)的名字,并把它放在幾層目錄下。所謂“非常規(guī)”,打個比方說,比如有個數(shù)據(jù)庫要保存的是有關書籍的信息,可不要給它起個“book.mdb”的名字,而要起個怪怪的名稱,比如d34ksfslf.mdb,并把它放在如./kdslf/i44/studi/的幾層目錄下,這樣黑客要想通過猜的方式得到你的
7、Access數(shù)據(jù)庫文件就難上加難了?!。?)不要把數(shù)據(jù)庫名寫在程序中。有些人喜歡把DSN寫在程序中,比如: DBPath=Server.MapPath(“cmddb.mdb”) conn.Open“driver={MicrosoftAccessDriver(*.mdb)};dbq=”DBPath 假如萬一給人拿到了源程序,你的Access數(shù)據(jù)庫的名字就一覽無余了。因此建議你在ODBC里設置數(shù)據(jù)源,再在程序中這樣寫: conn.open“ployer.mdb),然后按確定,