ASP.NET中防止Access資料庫下載

來源:互聯網
上載者:User
如何防止Access資料庫下載是一個很老的話題了,網上的討論也比較多。在這裡只是探討ASP.NET下防止Access資料庫被下載的方法,有些是對以前方法的總結,部分是自己原創。其中可能有不完善甚至不正確的地方,歡迎大家指出,一同進步。
  
  目前的解決方案主要有以下幾種:
  
  1. 把資料庫檔案放置到網站目錄之外
  
  2. 設定存放資料庫檔案的IIS目錄許可權為不可讀取(IIS資訊服務管理->選擇需要設定目錄->右鍵->屬性->目錄選項卡->取消讀取複選框)
  
  3. 採用ODBC資料來源
  
  以上三種方法都比較經典也比較安全,適合能對伺服器直接操作的情況(因為三種方法都需要直接動作伺服器進行設定),當然這也是ASP平台下防止Access被下載的解決方案。
  
  ASP平台下還有一種解決辦法,那就是在資料庫中添加一個長二進位表,然後把檔案尾碼修改為。asp.(詳情可參照動網論壇資料庫的相應資料表)
  
  4. 將你的 Access 重新命名 *.asax:因為 ASP.NET 的處理機制中,預設情況下,對這樣的請求是直接拒絕的,並不會有思歸提到的解析過程耗費資源等問題。按照這個思路,其實還可以把 Access 重新命名為 *.config,*.vb, *.cs 等等。
  
  5. 將你的 Access 放在你的應用程式根下 bin 目錄(也就是你放置 DLL 檔案的那個目錄)中:已經發現,IIS 預設被配置為拒絕直接存取 bin 目錄中的檔案,用以保護對 DLL 的請求,事實上也同時保護了放在 bin 目錄中其他檔案。但是對於這種方法,有人提出疑問: 會不會有這樣的後果,資料庫讀寫時會造成程式集被頻繁的重新整理,也會Session和Application不斷丟失
  
  6. (個人原創)另外一種方法是利用。NET的存取權限控制達到禁止匿名使用者下載資料庫的目的,具體如下:
  
  開啟設定檔Web.config,在configuration節點下添加如下一段配置:
  
  <;location path="DataBase">
  
  <;system.web>
  
  <;authorization>
  
  <;deny users="*" />
  
  <;/authorization>
  
  <;/system.web>
  
  <;/location>
  
  DataBase是你的資料庫檔案存放目錄,如果是根目錄則用<;locateon path=“~/database.aspx”>替換即可。添加了上述配置後再把資料庫尾碼修改為。aspx等需要經過IIS解析的檔案類型即可。
  
  因為<;deny users="*" />語句限制任何匿名使用者存取路徑path="DataBase"下的所有需要解析的檔案。
  
  注意:無論是ASP中還是。NET下,對於直接把Access資料庫尾碼直接改為。asp和。aspx,或者在檔案名稱前面添加“#”或檔案名稱中加入空格,用FlashGet照下不誤。
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.