討論 FireBird 安全性加強 |
|
RootKit
資深會員 發表:16 回覆:358 積分:419 註冊:2008-01-02 發送簡訊給我 |
唉!頭痛。始終覺得 Firebird 是非常好的資料庫。
但在安全性上個人覺得有些疑慮。所以遲遲不敢大用。 安全性疑慮: 1. 做為資料伺服器,一旦非法用戶取得資料庫檔案下載到本地端就完了,可以直接讀取資料庫無須密碼。 現在黑客木馬很多,實在粉危險。 2. 若為嵌入式通常運用在單機版套裝軟體,而這些軟體通常是安裝在客戶端。基本上要取得或修改檔案是 非常容易的。如果客戶的資料外流,也是很危險。 也有很多人說,資料庫可下載就算是公開了。我覺得防不了高手防一些菜鳥總可以吧。 最起碼有一層過濾,雖然檔案口令加密很容易被破。像是 SQLite 就有這個機制。 突然想到幾種改善方法: 1. 修改Firebird程式碼或DLL加殼。不過僅增加口令,是沒有作用。只要用戶僅拷貝資料檔到網站下載原 程式就可以避開。但可以防止直接修改資料的危險(對嵌入而言)。 2. 透過 Trigger 在資料庫連結時作一些判斷,若非法操作就刪除全部資料。 為了避免修改Trigger程式碼,據說可以透過 Compiled 編譯(不太清楚)。 3. 查看 FreiBird 原文手冊,它建議使用類似 TrueCrypt 文件夾加密解決。 不過,叫客戶花錢買好像說不過去。 還有什麼方法呢... * 備忘記錄* |
RootKit
資深會員 發表:16 回覆:358 積分:419 註冊:2008-01-02 發送簡訊給我 |
|
RootKit
資深會員 發表:16 回覆:358 積分:419 註冊:2008-01-02 發送簡訊給我 |
|
RootKit
資深會員 發表:16 回覆:358 積分:419 註冊:2008-01-02 發送簡訊給我 |
成功了!...
對我而言 FireBird 還是新手畢竟不是很熟,研讀了許多資料終於搞定。 初期來說,至少可以禁止非法用戶能夠透過第三方工具去瀏覽及修改資料。 FireBird 還是很不錯的資料庫的,很多功能實在是不錯。 我的作法是,透過觸發器在連接 Database 時,檢查目前登入帳號及密碼(指定)若條件不成立將引發一個 Exception 中斷連接。 既使使用 SYSDBA 也不能通過。 接下來刪除 Trigger Source Code 即可。 事實上不刪除 Source Code 應該沒差,因為無法登入資料庫。故無法修改之。 透過這個方法,至少我們可以保證既使用戶拷貝了資料庫,要破解還是有一定的難度(May be 對新手而言)。
編輯記錄
RootKit 重新編輯於 2009-04-08 16:27:39, 註解 無‧
|
ry_lee
高階會員 發表:368 回覆:251 積分:123 註冊:2002-03-19 發送簡訊給我 |
RootKit 你好:
我不解這句話之意思"透過觸發器在連接 Database 時,檢查目前登入帳號及密碼(指定)若條件不成立將引發一個 Exception 中斷連接。 既使使用 SYSDBA 也不能通過", 1.embed firebird好像可不輸入帳號及密碼即可連接資料庫,用第三方工具如ibexpert好像只須輸入sysdba及mxxxxxxxx即可開啟資料庫,問題是此時會觸發任何一個Trigger嗎? 2.如果是用ibx之TSQLConnection元件之OnConnect事件寫檢查程式碼當然可以做到,問題是此時用第三方工具如ibexpert好像只須輸入sysdba及mxxxxxxxx即可開啟資料庫, 3.還是你的意思是說,用第三方工具如ibexpert開啟資料庫,仍會觸發資料庫的某一個Trigger嗎?如果是可否說清楚點呢? Thank you very much ===================引 用 RootKit 文 章=================== 成功了!... 對我而言 FireBird 還是新手畢竟不是很熟,研讀了許多資料終於搞定。 初期來說,至少可以禁止非法用戶能夠透過第三方工具去瀏覽及修改資料。 FireBird 還是很不錯的資料庫的,很多功能實在是不錯。 我的作法是,透過觸發器在連接 Database 時,檢查目前登入帳號及密碼(指定)若條件不成立將引發一個 Exception 中斷連接。 既使使用 SYSDBA 也不能通過。 接下來刪除 Trigger Source Code 即可。 事實上不刪除 Source Code 應該沒差,因為無法登入資料庫。故無法修改之。 透過這個方法,至少我們可以保證既使用戶拷貝了資料庫,要破解還是有一定的難度(May be 對新手而言)。
編輯記錄
ry_lee 重新編輯於 2009-04-18 02:06:25, 註解 無‧
|
RootKit
資深會員 發表:16 回覆:358 積分:419 註冊:2008-01-02 發送簡訊給我 |
您可以參考我寫得 「FireBird 學習日誌」。
Trigger 是本身 Firbird 觸發器機制,幾乎每個成熟的資料庫都會有。 因此無論是使用哪一種連接方式,都會觸發。... 由其 Firbird 是獨大一檔,包含 Trigger 及預儲函數都是寫在同一檔案(*.FDB)中。 用 IBExpert 也會觸發(有人說 ibExpert 是用 FIBPLUS 寫的),本身我也用 IbExpert 來管理資料庫。 記得有一次忘記某些機關,連進都進不去。只好重建資料庫。 事實上原理很簡單 。 因此任何的連結資料庫方式都會(如 IBX,DbX,IBO,FIBPLUS,UniDAC,ZEOSDBO)觸發。 那些檢查的動作,只有自己知道別人無法得知。 ===================引 用 ry_lee 文 章=================== RootKit 你好: 我不解這句話之意思"透過觸發器在連接 Database 時,檢查目前登入帳號及密碼(指定)若條件不成立將引發一個 Exception 中斷連接。 既使使用 SYSDBA 也不能通過", 1.embed firebird好像可不輸入帳號及密碼即可連接資料庫,用第三方工具如ibexpert好像只須輸入sysdba及mxxxxxxxx即可開啟資料庫,問題是此時會觸發任何一個Trigger嗎? 2.如果是用ibx之TSQLConnection元件之OnConnect事件寫檢查程式碼當然可以做到,問題是此時用第三方工具如ibexpert好像只須輸入sysdba及mxxxxxxxx即可開啟資料庫, 3.還是你的意思是說,用第三方工具如ibexpert開啟資料庫,仍會觸發資料庫的某一個Trigger嗎?如果是可否說清楚點呢? Thank you very much ===================引 用 RootKit 文 章=================== 成功了!... 對我而言 FireBird 還是新手畢竟不是很熟,研讀了許多資料終於搞定。 初期來說,至少可以禁止非法用戶能夠透過第三方工具去瀏覽及修改資料。 FireBird 還是很不錯的資料庫的,很多功能實在是不錯。 我的作法是,透過觸發器在連接 Database 時,檢查目前登入帳號及密碼(指定)若條件不成立將引發一個 Exception 中斷連接。 既使使用 SYSDBA 也不能通過。 接下來刪除 Trigger Source Code 即可。 事實上不刪除 Source Code 應該沒差,因為無法登入資料庫。故無法修改之。 透過這個方法,至少我們可以保證既使用戶拷貝了資料庫,要破解還是有一定的難度(May be 對新手而言)。 |
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
|
RootKit
資深會員 發表:16 回覆:358 積分:419 註冊:2008-01-02 發送簡訊給我 |
本來是不想回的,想想還是稍做說明。
1. 登入帳號或者機關等等。是由程式內建,基本上不會造成困擾。 2. 一套好的系統,將會涵蓋維護資料庫。當然綁售後服務不就是最好的手段嗎! 如果你連帳號及密碼都會遺忘,那我就認了。 瞭解含意的,就知道我的意思。 資料欄位加密,是不得不的手段。缺點一方面將導致 SQL 語法難度的增加甚至無法查詢範圍。 二來無法統計,既使做到也很麻煩。三來解密將會浪費查詢效率,尤其資料一多。 這種方法的,事實上還有進階的手段又可以避開上面的缺點。這裡就不多說了。 當初已經將所有因素都考慮進去了。 才覺得從連結時檢查(FB改版也無須修改),是目前最好的方法。 不用在白費心思了,我連FireBird的源碼都看了一遍。...... ===================引 用 P.D. 文 章=================== 我不認為這樣的做法是很好的方法 1.萬一登入者不小心打錯, 是否就一切玩完, 那這無疑給自己添麻煩 2.萬一想透過其他工具進入維護資料庫, 這樣不是挷死自己, 如果不考慮客售後續服務, 那我倒沒有意見 我自己比較常用的做法是, 把重要個資的欄位做加密存入, 即使檔案被人盜取, 看到的也只是一堆無意義加密的數據, 除非透過我自己的程式解開, 一來不用動到資料庫的頭上(如果FB改版), 二來也可達到保密效果 |
mybanksoft
初階會員 發表:8 回覆:37 積分:29 註冊:2007-12-25 發送簡訊給我 |
|
vbkiller
一般會員 發表:65 回覆:28 積分:18 註冊:2007-03-13 發送簡訊給我 |
確實如你所說:
"才覺得從連結時檢查(FB改版也無須修改),是目前最好的方法。" ,FIREBIRD真是一個不錯的資料庫系統 ===================引 用 RootKit 文 章=================== 本來是不想回的,想想還是稍做說明。 1. 登入帳號或者機關等等。是由程式內建,基本上不會造成困擾。 2. 一套好的系統,將會涵蓋維護資料庫。當然綁售後服務不就是最好的手段嗎! 如果你連帳號及密碼都會遺忘,那我就認了。 瞭解含意的,就知道我的意思。 資料欄位加密,是不得不的手段。缺點一方面將導致 SQL 語法難度的增加甚至無法查詢範圍。 二來無法統計,既使做到也很麻煩。三來解密將會浪費查詢效率,尤其資料一多。 這種方法的,事實上還有進階的手段又可以避開上面的缺點。這裡就不多說了。 當初已經將所有因素都考慮進去了。 才覺得從連結時檢查(FB改版也無須修改),是目前最好的方法。 不用在白費心思了,我連FireBird的源碼都看了一遍。...... ===================引 用 P.D. 文 章=================== 我不認為這樣的做法是很好的方法 1.萬一登入者不小心打錯, 是否就一切玩完, 那這無疑給自己添麻煩 2.萬一想透過其他工具進入維護資料庫, 這樣不是挷死自己, 如果不考慮客售後續服務, 那我倒沒有意見 我自己比較常用的做法是, 把重要個資的欄位做加密存入, 即使檔案被人盜取, 看到的也只是一堆無意義加密的數據, 除非透過我自己的程式解開, 一來不用動到資料庫的頭上(如果FB改版), 二來也可達到保密效果 |
mybanksoft
初階會員 發表:8 回覆:37 積分:29 註冊:2007-12-25 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |