由於asp的方便易用,越來越多的**後台程式都使用asp指令碼語言。但是, 由於asp本身存在一些安全漏洞,稍不小心就會給黑客提供可乘之機。事實上,安全不僅是網管的事,程式設計人員也必須在某些安全細節上注意,養成良好的安全習慣,否則會給自己的**帶來巨大的安全隱患。目前,大多數**上的asp程式有這樣那樣的安全漏洞,但如果編寫程式的時候注意一點的話,還是可以避免的。
1、使用者名稱與口令被破解
攻擊原理:使用者名稱與口令,往往是黑客們最感興趣的東西,如果被通過某種方式看到源**,後果是嚴重的。
防範技巧:涉及使用者名稱與口令的程式最好封裝在伺服器端,盡量少在asp檔案裡出現,涉及與資料庫連線的使用者名稱與口令應給予最小的許可權。出現次數多的使用者名稱與口令可以寫在乙個位置比較隱蔽的包含檔案中。如果涉及與資料庫連線,在理想狀態下只給它以執行儲存過程的許可權,千萬不要直接給予該使用者修改、插入、刪除記錄的許可權。
2、驗證被繞過
攻擊原理:現在需要經過驗證的asp程式大多是在頁面頭部加乙個判斷語句,但這還不夠,有可能被黑客繞過驗證直接進入。
攻擊原理:當存在asp的主頁正在製作且沒有進行最後除錯完成以前,可以被某些搜尋引擎機動追加為搜尋物件。如果這時候有人利用搜尋引擎對這些網頁進行查詢,會得到有關檔案的定位,並能在瀏覽器中檢視到資料庫地點和結構的細節,並以此揭示完整的源**。
防範技巧:程式設計師應該在網頁發布前對它進行徹底的除錯;安全專家則需要加固asp檔案以便外部的使用者不能看到它們。首先對.inc檔案內容進行加密,其次也可以使用.asp檔案代替.inc檔案使使用者無法從瀏覽器直接**檔案的源**。inc檔案的檔名不要使用系統預設的或者有特殊含義容易被使用者猜測到的名稱,盡量使用無規則的英文本母。
防範技巧:上傳程式之前要仔細檢查,刪除不必要的文件。對以bak為字尾的檔案要特別小心。
5、特殊字元
攻擊原理:輸入框是黑客利用的乙個目標,他們可以通過輸入指令碼語言等對使用者客戶端造成損壞;如果該輸入框涉及資料查詢,他們會利用特殊查詢語句,得到更多的資料庫資料,甚至表的全部。因此必須對輸入框進行過濾。但如果為了提高效率僅在客戶端進行輸入合法性檢查,仍有可能被繞過。
防範技巧:
(1)為你的資料庫檔名稱起個複雜的非常規的名字,並把它放在幾層目錄下。所謂 「非常規」, 打個比方說,比如有個資料庫要儲存的是有關書籍的資訊, 可不要給它起個「book.mdb」的名字,而要起個怪怪的名稱,比如d34ksfslf.mdb, 並把它放在如./kdslf/i44/studi/的幾層目錄下,這樣黑客要想通過猜的方式得到你的access資料庫檔案就難上加難了。
(2)不要把資料庫名寫在程式中。有些人喜歡把dsn寫在程式中,比如:
conn.open 「driver=;dbq=」 & dbpath
假如萬一給人拿到了源程式,你的access資料庫的名字就一覽無餘了。因此建議你在odbc裡設定資料來源,再在程式中這樣寫:
conn.open「shujiyuan」
(3)使用access來為資料庫檔案編碼及加密。首先在「工具→安全→加密/解密資料庫」中選取資料庫(如:employer.mdb),然後按確定,接著會出現「資料庫加密後另存為」的視窗,可存為:「employer1.mdb」。
要注意的是,以上的動作並不是對資料庫設定密碼,而只是對資料庫檔案加以編碼,目的是為了防止他人使用別的工具來檢視資料庫檔案的內容。
接下來我們為資料庫加密,首先開啟經過編碼了的 employer1.mdb,在開啟時,選擇「獨佔」方式。然後選取功能表的「工具→安全→設定資料庫密碼」,接著輸入密碼即可。這樣即使他人得到了employer1.mdb檔案,沒有密碼他也是無法看到 employer1.mdb中的內容。
ASP防範跨站點指令碼攻擊的方法
防範跨站點指令碼攻擊的的方法 1 1.利用 空格 替換特殊字元 2.使用 具體而言是將以下語句 exec insert into user username,psw,department,phone,email,demo values username psw department phone em...
菜鳥黑客入門攻擊及防範技巧
在正式進行各種 黑客行為 之前,黑客會採取各種手段,探測 也可以說 偵察 對方的主機資訊,以便決定使用何種最有效的方法達到自己的目的。來看看黑客是如何獲知最基本的網路資訊 對方的ip位址 以及使用者如何防範自己的ip洩漏。獲取ip ip 作為net使用者的重要標示,是黑客首先需要了解的。獲取的方法較...
防範常見的 Web 攻擊
什麼是sql注入攻擊 攻擊者在http請求中注入惡意的sql 伺服器使用引數構建資料庫sql命令時,惡意sql被一起構造,並在資料庫中執行。使用者登入,輸入使用者名稱 lianggzone,密碼 or 1 1 如果此時使用引數構造的方式,就會出現 select from user where nam...