數(shù)據(jù)庫(kù)安全之Access數(shù)據(jù)庫(kù)防下載
Access數(shù)據(jù)庫(kù)相對(duì)于MSSQL數(shù)據(jù)庫(kù)來(lái)說(shuō)可能沒有那么高的知名度,但是在互聯(lián)網(wǎng)眾多的網(wǎng)站中,還是有很大一部分Web網(wǎng)站采用這種數(shù)據(jù)庫(kù)結(jié)構(gòu)的。Access數(shù)據(jù)庫(kù)一旦被下載,對(duì)于Web網(wǎng)站來(lái)說(shuō)是一種致命的威脅。那么如何防止Access數(shù)據(jù)庫(kù)被下載成為了本篇文章要討論的問(wèn)題。
Access數(shù)據(jù)庫(kù)防下載之?dāng)?shù)據(jù)庫(kù)改名
數(shù)據(jù)庫(kù)改名包括兩部分,首先將其改成比較生僻的名稱,建議名字足夠長(zhǎng)并使用某些特殊字符以防被攻擊者猜中。另外,將mdb后綴改為asp,以防數(shù)據(jù)庫(kù)被下載。當(dāng)然數(shù)據(jù)庫(kù)改名后,數(shù)據(jù)庫(kù)連接配置文件也要進(jìn)行修改。
Access數(shù)據(jù)庫(kù)防下載之改變數(shù)據(jù)庫(kù)路徑
站點(diǎn)系統(tǒng)都有默認(rèn)的數(shù)據(jù)庫(kù)路徑,由于安全意識(shí)淡薄,部署Web站點(diǎn)時(shí)有很多人不去修改數(shù)據(jù)庫(kù)路徑,因而攻擊者很容易地猜到該站點(diǎn)的數(shù)據(jù)庫(kù)路徑。
更改數(shù)據(jù)庫(kù)路徑,大家可以在站點(diǎn)目錄下創(chuàng)建比較生僻的目錄,然后將數(shù)據(jù)庫(kù)文件拷貝到該目錄中。當(dāng)然,更改數(shù)據(jù)庫(kù)路徑后,需要修改站點(diǎn)系統(tǒng)的數(shù)據(jù)庫(kù)連接文件。一般asp站點(diǎn)系統(tǒng)的數(shù)據(jù)庫(kù)連接文件是conn.asp。打開該文件后,然后根據(jù)實(shí)際情況進(jìn)行修改,使得其跟當(dāng)前的數(shù)據(jù)庫(kù)路徑相一致。
Access數(shù)據(jù)庫(kù)防下載之設(shè)置好目錄權(quán)限
要設(shè)置好數(shù)據(jù)庫(kù)目錄的訪問(wèn)權(quán)限,原則是權(quán)限最小化以防止非正常的訪問(wèn)。因?yàn)閃eb程序是通過(guò)IIS用戶運(yùn)行的,我們只要給IIS用戶讀取和寫入權(quán)限,然后通過(guò)“IIS管理器”把這個(gè)目錄的腳本執(zhí)行權(quán)限去掉,防止入侵者在該目錄中通過(guò)上傳獲得webshell了。
Access數(shù)據(jù)庫(kù)防下載之添加mdb的擴(kuò)展映射
IIS對(duì)于不能解析的文件類型就會(huì)彈出下載對(duì)話框讓用戶下載,我們可以通過(guò)在IIS管理器中添加對(duì)mdb的擴(kuò)展映射,防止數(shù)據(jù)庫(kù)被下載。其設(shè)置方法是:打開IIS管理器定位到相應(yīng)的Web站點(diǎn),右鍵選擇“屬性”,然后依次點(diǎn)擊“主目錄→配置→映射”,在“應(yīng)用程序擴(kuò)展”里面添加.mdb文件應(yīng)用解析,至于用于解析它的可執(zhí)行文件大家可以自己進(jìn)行選擇,只要讓攻擊者無(wú)法訪問(wèn)數(shù)據(jù)庫(kù)文件就可以了。
Access數(shù)據(jù)庫(kù)防下載之?dāng)?shù)據(jù)庫(kù)改造
思路是將數(shù)據(jù)庫(kù)后綴名(.mdb)修改為.asp,然后在數(shù)據(jù)庫(kù)中加上一個(gè)NotDownLoad的表以防數(shù)據(jù)庫(kù)被下載。具體操作方法如下:
首先新建一個(gè).asp文件(notdown.asp),其代碼如下:
db="DataShop.asp" '這里改成你的數(shù)據(jù)庫(kù)地址,這是相對(duì)根目錄的地址
set conn=server.createobject("Adodb.Connection")
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath(db)
conn.open connstr
conn.execute("create table notdownload(notdown oleobject)")
set rs=server.createobject("adodb.recordset")
sql="select * from notdownload"
rs.open sql,conn,1,3
rs.addnew
rs("notdown").appendchunk(chrB(asc("<")) & chrB(asc("%")))
rs.update
rs.close
set rs=nothing
conn.close
set conn=nothing
然后在服務(wù)器端運(yùn)行notdown.asp,這樣在數(shù)據(jù)庫(kù)添加了包含notdown字段的notdownload數(shù)據(jù)表,即可防止數(shù)據(jù)庫(kù)的下載,因?yàn)閚otdown有一個(gè)值是"< %",asp運(yùn)行是因缺少"% >"關(guān)閉標(biāo)記而拒絕訪問(wèn),下載當(dāng)然會(huì)失敗。
【編輯推薦】