Access資料庫安全之反下載
來源:互聯網
上載者:User
關鍵字
安全
反下載
今天再次看到Access資料庫安全的文章,每次看到這種文章就想說上兩句,流行說法有幾種:一、密碼式給資料庫起一個隨機複雜的名稱,避免被猜到被下載,這種方式在以前很流行,因為大家都對自己的代碼很有自信。 但隨著錯誤提示對資料庫位址的洩露導致資料庫被非法下載,這種方式也就越來越少人用了。 這種方法,已經很少被用到了,除了對安全不甚瞭解的程式師,雖然少,但是還是會遇到,比如前幾天看到的物業的網站。 二、"#"式在資料庫名稱里加上#號,從URL上請求時#是請求位址和請求參數的一個分隔字元,如果知道了資料庫名,直接請求的話,如:HTTP://www.xx.com/access#.mdb, WEB伺服器會認為請求的是access而不是access#.mdb,所以會提示找不到檔,但是很遺憾,URL中對於這些特殊的字元都會有一個特殊的表示方式,#的特殊表示就是%23,如HTTP://www.xx.com/ access%23.mdb,那麼access#.mdb將會被下載。 還有如果用FlashGet之類的下載工具也可以直接下載。 這種方法感覺有點類似于掩耳盜鈴,因為通過下載工具,可以很方便的下載,沒有什麼實際意義,除了對付剛接觸的人。 三、ASP式這種作法是比較專業但也是很安全的也是現在比較流行的作法,但是現在許多的人只是作了一半,只是將資料名改成ASP而以,這樣的話直接用FlashGet之類的下載工具一樣可以將資料庫下載, 這種方式的正確作法有兩步:第一步:在資料庫內創建一個欄位,名稱隨意,類型是OLE物件,內容設置為單位元組型的"<%",即(ASP代碼chrB(asc("<")) & chrB(asc("%"))的運行結果) 第二步:將資料庫改名為ASP這樣從URL上直接請求這個資料庫將會提示"缺少關閉腳本分隔符號",從而拒絕下載,因為這個方式比較麻煩我在網上找了一段小代碼來完成OLE物件的插入工作,只要將資料庫名設置好, 然後放在和資料庫內一目錄運行一下就可以了。 代碼全文數下:<%db="d.mdb" '這裡改成您的資料庫位址set conn=server.createobject("Adodb.Connection")connstr="Provider= Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath(db)conn.open connstrconn.execute("create table notdownload(notdown oleobject)")'提示表及欄位創建成功response.write "表、欄位創建成功! "set rs=server.createobject("adodb.recordset")sql="select * from notdownload"rs.open sql,conn,1,3rs.addnewrs(" notdown").appendchunk(chrB(asc("<")) & chrB(asc("%")))rs.updaters.close'提示內容添加成功response.write "內容添加完成! "set rs=nothingconn.closeset conn=nothing%> 這段代碼運行完之後將會在資料庫內生成一個nodownload表,表內欄位是notdown。 如果資料庫內已有同名的資料表存在請將代碼內的nodownload改成自己想要的資料表名即可。 這種方法用的比較普遍,正如作者所說,大多數人只是將mdb尾碼改稱了asp,實際上如果知道路徑,用flashget一樣可以下載。 作者提供的asp原始程式碼,可以直接創建表和欄位,並添加內容。 大家可以保存為.asp檔,在瀏覽器執行一次即可。 當然也可以直接編輯資料庫:1、打開access資料庫2、使用設計創建表,添加欄位notdown,類型使用「OLE物件」3、保存為nodownload,不創建主鍵。 4、打開記事本,編輯檔nodownload.txt,內容為「<%」。 5、打開nodownload表,點擊右鍵-->插入物件,選擇從檔插入,定位到nodownload.txt,確認。 以上都需要在資料庫創建一個表,大家可以把這個表留著不管,也可以直接刪除,同樣可以起到反下載的功能,即:執行後再刪除。 關於這一點,大家可以試試。 四、asa式這種方式的真諦是利用IIS對ASA檔的保護,從而使得資料庫檔案不能從URL上直接請求下載,但是這種方式被誤解成隻要將檔尾碼改成ASA就可以了。 要知道IIS只是對global.asa這個檔案名有請求保護,所以這種方式只能將資料庫名設置為global.asa,而且要注意的是,設置成global.asa之後最好不要將其放在主機或虛擬目錄的根目錄裡,不然會被IIS當然正常的global.asa檔進行嘗試運行的。 這種方法也比較不錯的,但是如果網站已經使用了global.asa,有時候容易混淆,大家根據情況看吧。 感覺第三第四種是比較安全的,除非IIS有查看ASP或ASA源碼的漏洞,否則是無法將資料庫下載的。 責任編輯 趙毅 zhaoyi#51cto.com TEL:(010)68476636-8001 給力(0票)動心(0票)廢話(0票)專業(0票)標題党(0票)路過(0票) 原文:Access資料庫安全之反下載 返回網路安全首頁