2011-10-19 92 views
0

你好我有一個android應用程序。在我的應用程序中,我有一個存儲在設備上的SQLite數據庫,應該與存儲在服務器上的MySQL數據庫同步。Android:安全問題關於SQLite db

現在我必須檢索一個ID列表。我可以查詢SQLite數據庫或MySQL數據庫。我選擇使用SQLite數據庫,因爲考慮到我必須做什麼,它會更快,更容易。但現在我正在考慮它,我有一個問題:Android SQLite數據庫文件安全嗎?我的意思是說有人可能訪問這些文件並修改其中的信息,或者它們隱藏給用戶?

因爲如果我問服務器的信息我確信它是安全的,而不是我不知道android數據庫的安全級別。

讓我們假設每個ID對應於我支付的應用程序ID(例如應用程序3和5)。當我找到一種方法來修改android數據庫,並且添加應用程序7和8時,它似乎也支付了我爲這些應用程序支付的設備,而不是我不能使用它們。這就是我爲什麼要查詢MySQL數據庫的原因,因爲用戶無法修改它,但這樣會變慢。你怎麼看?

+0

我很抱歉您的問題的劇烈編輯,但使用.....和???不會提高可讀性和問題質量;-) – Knickedi

回答

0

使用根設備,用戶可以輕鬆添加/刪除/修改數據庫中的現有記錄。

你可以做的一件事是計算數據庫中行的MD5散列值,並將其與你的MySQL服務器上存儲的散列值進行比較,然後接受本地緩存數據庫的「已付費」值。這種方法可能會或可能不會被您接受,因爲顯然它需要互聯網連接。

2

理想情況下,存儲在您的應用程序私人/數據目錄中的數據將是私人的,但如果有人根據他們的手機,他們可以無拘無束地訪問它。它的最佳設計基於假設您的手機數據庫不安全而不加密,即使如此,用戶仍然可能嘗試打入。

+0

+1設備上未加密的數據永遠不安全,特別是如果它非常敏感。看看[Android:數據庫與應用程序安全有多安全](http://stackoverflow.com/questions/7550672/android-how-safe-is-database-packed-with-application) – Knickedi

0

請檢查這些選項,他們可能會幫助任何想要保護數據庫的人。

SQLCipher爲Android

1-安卓SQL3包裝庫

2- libsqlite3_jni.so

也請閱讀下面的文章是讓你的選項搜索上面,我希望這將有助於許多。

http://www.findbestopensource.com/product/sqlite3-android

注:

可以保護您的設備完全如同設備會被任何人紮根。因此,請使用其他安全方式,如使用2因素身份驗證和密碼保護數據庫。

如果有人根植您的設備,至少應該有一些密碼保護的文件。