aspx網站建設關于網站數(shù)據(jù)庫的安全方案。網站建設公司認為對于采用“虛擬主機”的方式建立的中小型網站,其后臺數(shù)據(jù)庫絕大多數(shù)采用Access數(shù)據(jù)庫。如果有人通過各種方法獲得或者猜到數(shù)據(jù)庫的存儲路徑和文件名,則該數(shù)據(jù)庫可以被下載到本地。深圳
網站建設公司提醒為了防止被非法下載和訪問,可采取以下措施。

(1)改變數(shù)據(jù)庫名稱。為數(shù)據(jù)庫文件起個復雜的非常規(guī)的名字,并放在幾層目錄下。所謂“非常規(guī)”,就是說如果有個數(shù)據(jù)庫要保存的是有關電子商店的信息,不把它命名為“eshop.mdb”,而是起個比較怪的名稱,如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ù)據(jù)源,再在程序中這樣寫:conn.open "shujiyuan"。
(3)改變數(shù)據(jù)庫文件的擴展名。如把abc134.mdb改為abc134.asp,這樣在ASP文件及數(shù)據(jù)庫操作中仍然可以正常使用。但在非法訪問者看來,該文件已不是數(shù)據(jù)庫文件了。
(4)加密Access數(shù)據(jù)庫文件。選擇“工具→安全→加密/解密數(shù)據(jù)庫”,選取數(shù)據(jù)庫(如employer.mdb),然后單擊“確定”按鈕,會出現(xiàn)“數(shù)據(jù)庫加密后另存為”的窗口,另存為employer1.mdb。接著,employer.mdb會被編碼,然后存為employer1.mdb。要注意的是,以上的方法并不是對數(shù)據(jù)庫設置密碼,而只是對數(shù)據(jù)庫文件的內容進行加密,目的是為了防止他人使用別的工具來查看數(shù)據(jù)庫文件的內容。接下來為數(shù)據(jù)庫設置密碼,首先打開經過編碼的employer1.mdb,在打開時,選擇“獨占”方式。然后選取菜單的“工具→安全→設置數(shù)據(jù)庫密碼”選項,輸入密碼即可。為employer1.mdb設置密碼之后,如果再使用Access數(shù)據(jù)庫文件時,則Access會先要求輸入密碼,驗證正確后才能夠啟動數(shù)據(jù)庫,可以在ASP程序中的connection對象的open方法中增加PWD的參數(shù)來訪問有密碼保護的數(shù)據(jù)庫文件。
例如:
這樣即使別人得到了employer1.mdb文件,沒有密碼是無法看到employer1.mdb的內容。
綜合使用上述方法,數(shù)據(jù)庫被非法下載的可能性就會降低。
深圳網站建設公司詳解防范SQL注入攻擊1.SQL注入攻擊的原理
許多動態(tài)網站在編寫程序時,沒有對用戶輸入數(shù)據(jù)的合法性進行判斷,使應用程序存在安全隱患。用戶通過向數(shù)據(jù)庫提交一段精心構造的SQL查詢代碼,(一般是在瀏覽器地址欄進行,通過正常的www端口訪問)根據(jù)程序返回的結果,收集網站與數(shù)據(jù)庫的信息,進而非法獲得網站數(shù)據(jù)庫中的敏感信息或向其中添加自定義數(shù)據(jù),這就是SQL Injection,即SQL注入攻擊。SQL注入攻擊使用簡單,危害大。被攻擊成功的網站往往被攻擊者掌握最高權限,可任意增刪數(shù)據(jù)。
為了說明SQL注入攻擊的原理,可在本地網站http://localhost/進行測試。
http://localhost/show.asp?ID=123是一個正常的網頁地址,將這個網址提交到服務器后,服務器將進行類似Select * from 表名 where 字段="&ID"的查詢(ID即客戶端提交的參數(shù),本例是即123),再將查詢結果返回給客戶端,如果在這個地址后面加上單引號,服務器會返回下面的錯誤提示:
Microsoft JET Database Engine 錯誤 '80040e14'
字符串的語法錯誤在查詢表達式 'ID=123''中。
/show.asp,行8
從這個錯誤提示我們能看出下面幾點:
(1)網站使用的是Access數(shù)據(jù)庫,通過JET引擎連接數(shù)據(jù)庫,而不是通過ODBC。
(2)程序沒有判斷客戶端提交的數(shù)據(jù)是否符合程序要求。
(3)該SQL語句所查詢的表中有一名為ID的字段。
如果數(shù)據(jù)庫使用的是Access,那么情況就有所不同,第一個網址的頁面與原頁面完全不同;第二個網址,則視乎數(shù)據(jù)庫設置是否允許讀該系統(tǒng)表,一般來說是不允許的,所以與原網址也是完全不同。大多數(shù)情況下,用第一個網址就可以得知系統(tǒng)所用的數(shù)據(jù)庫類型,第二個網址只作為開啟IIS錯誤提示時的驗證。2.防范SQL注入攻擊
對于存在SQL注入攻擊漏洞的網站,攻擊者可以通過專用工具或手工構造特殊代碼不斷猜測嘗試,獲得數(shù)據(jù)庫名、表名、表中的字段名稱,甚至是具有系統(tǒng)管理權限的用戶賬號和密碼、上傳病毒、木馬或惡意文件,給網站帶來巨大危害。網站建設公司安全工程師下面講述如何防止SQL注入。
(1)設置ASP錯誤提示。
SQL注入入侵是根據(jù)IIS給出的ASP錯誤提示信息來入侵的,如果把IIS設置成不管出什么樣的ASP錯誤,只給出一種錯誤提示信息,即HTTP 500錯誤,那么攻擊者就沒辦法直接得到網站的數(shù)據(jù)庫信息,也就很難確定下一步的攻擊目標了。具體設置參見圖9-2。主要把500:100這個錯誤的默認提示頁面 C:\WINDOWS\Help\iisHelp\common\500-100.asp改成自定義的c:\windows\help\iishelp\common\500.htm即可,這時,無論ASP運行中出什么錯,服務器都只提示HTTP 500錯誤。
但是這樣設置一個不好的地方是程序員編寫的代碼出錯時,服務器不給出詳細的錯誤提示信息,會給程序調試帶來很大的不便。不過,服務器畢竟不是測試代碼的地方,應堅持安全穩(wěn)定第一,這樣設置也是無可厚非的,事實上許多服務器的出錯信息都是如此設置的。
(2)過濾敏感字符。
在程序中對客戶端提交的數(shù)據(jù)進行檢查,如果輸入中存在著特殊字符(如’、<、>、=等),或者輸入的字符中含有SQL語言中的命令動詞(如insert、select、update等),就認為是SQL注入式攻擊,系統(tǒng)立即停止執(zhí)行并給出警告信息或者轉向出錯頁面。
下面是防止注入式攻擊的ASP代碼,使用時加入到相應的asp文件中即可。該代碼并沒有實際記錄攻擊者的相關信息,如有必要,完全可以把攻擊者的數(shù)據(jù)記錄到特定的文件中,以備查看。
(3)對相關賬戶的信息加密。
常見的是利用MD5進行加密處理,用MD5加密的數(shù)據(jù)不能被反向解密,即使看見了加密后的密文也不能得到原始數(shù)據(jù)。使用時,把用VBScript實現(xiàn)MD5算法的文件md5.asp包含在文件中,然后用md5(user_password)的形式調用,即可得到加密后的密文。如:網站建設完成后,可用NBSI、HDSI、DFomain、《啊D注入工具》等網頁注入工具對網站進行檢測,如果不能被注入,則可以正式發(fā)布運行。好了,
深圳網站建設公司本文關于“aspx網站建設關于網站數(shù)據(jù)庫的安全方案”就分享到這里。如果您需要聯(lián)系深圳網站建設公司定制開發(fā)行業(yè)門戶、企業(yè)門戶ASPX語言的網站定制建設服務,請咨詢我們網站在線客服或者撥打網站aspx建站技術客服聯(lián)系電話,為您提供詳細的建站解決方案。謝謝關注,博納網絡編輯整理。