|
目前的解決方案主要有以下幾種:
1. 把數(shù)據(jù)庫(kù)文件放置到站點(diǎn)目錄之外
2. 設(shè)置存放數(shù)據(jù)庫(kù)文件的IIS目錄權(quán)限為不可讀?。↖IS信息服務(wù)管理->選擇需要設(shè)置目錄->右鍵->屬性->目錄選項(xiàng)卡->取消讀取復(fù)選框)
3. 采用ODBC數(shù)據(jù)源
以上三種方法都比較經(jīng)典也比較安全,適合能對(duì)服務(wù)器直接操作的情況(因?yàn)槿N方法都需要直接操作服務(wù)器進(jìn)行設(shè)置),當(dāng)然這也是ASP平臺(tái)下防止Access被下載的解決方案。
ASP平臺(tái)下還有一種解決辦法,那就是在數(shù)據(jù)庫(kù)中添加一個(gè)長(zhǎng)二進(jìn)制表,然后把文件后綴修改為.ASP。(詳情可參照動(dòng)網(wǎng)論壇數(shù)據(jù)庫(kù)的相應(yīng)數(shù)據(jù)表)
4. 將你的 Access 重命名 *.asax:因?yàn)?ASP.NET 的處理機(jī)制中,默認(rèn)情況下,對(duì)這樣的請(qǐng)求是直接拒絕的,并不會(huì)有思?xì)w提到的解析過程耗費(fèi)資源等問題。按照這個(gè)思路,其實(shí)還可以把 Access 重命名為 *.config,*.vb, *.cs 等等。
5. 將你的 Access 放在你的應(yīng)用程序根下 bin 目錄(也就是你放置 DLL 文件的那個(gè)目錄)中:已經(jīng)發(fā)現(xiàn),IIS 默認(rèn)被配置為拒絕直接訪問 bin 目錄中的文件,用以保護(hù)對(duì) DLL 的請(qǐng)求,事實(shí)上也同時(shí)保護(hù)了放在 bin 目錄中其他文件。但是對(duì)于這種方法,有人提出疑問: 會(huì)不會(huì)有這樣的后果,數(shù)據(jù)庫(kù)讀寫時(shí)會(huì)造成程序集被頻繁的刷新,也會(huì)Session和Application不斷丟失
6. (個(gè)人原創(chuàng))另外一種方法是利用.NET的訪問權(quán)限控制達(dá)到禁止匿名用戶下載數(shù)據(jù)庫(kù)的目的,具體如下:
打開配置文件Web.config,在configuration節(jié)點(diǎn)下添加如下一段配置:
<location path="DataBase">
<system.web>
<authorization>
<deny users="*" />
</authorization>
</system.web>
</location>
DataBase是你的數(shù)據(jù)庫(kù)文件存放目錄,如果是根目錄則用<locateon path=”~/database.ASPx”>替換即可。添加了上述配置后再把數(shù)據(jù)庫(kù)后綴修改為.ASPx等需要經(jīng)過IIS解析的文件類型即可。
因?yàn)?lt;deny users="*" />語(yǔ)句限制任何匿名用戶訪問路徑path="DataBase"下的所有需要解析的文件。
注意:無論是ASP中還是.NET下,對(duì)于直接把Access數(shù)據(jù)庫(kù)后綴直接改為.ASP和.ASPx,或者在文件名前面添加“#”或文件名中加入空格,用FlashGet照下不誤。
AspNet技術(shù):.NET中防止Access數(shù)據(jù)庫(kù)下載,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。