簡體   English   中英

Android系統。 如何保護您的數據庫?

[英]Android. How to protect your database?

您知道在Android中保護數據庫的方法嗎?

我想實現以下內容,但不知道是否可能:

  1. 將數據庫的訪問權限僅限於應用程序所有者(創建並提供服務)。
  2. 在DB所有者應用程序的使用會話期間,限制或拒絕所有其他應用程序對數據庫的訪問。
  3. 有沒有辦法密碼保護您的數據庫?

使用sqlite3進行的測試表明,您可以在另一個應用程序使用它時更改數據庫。 因此,我認為可能某些外部應用程序可能會破壞您的數據或使用它,這很糟糕。

另外,您如何建議處理在同時使用數據庫期間可能發生的數據庫異常:

  1. 顯示用戶消息並關閉
  2. 顯示用戶消息並繼續工作
  3. 剛關閉?

在所有這些發生之后,您如何建議下次啟動應用程序?

謝謝

android系統自動實現並強制執行列表中的選項(1)。 電話/系統上的每個應用程序都有自己的用戶ID,沒有應用程序可以訪問任何其他應用程序的數據庫文件。

如果您確實希望共享數據(使用訪問控制),則可以創建內容提供程序,然后其他應用程序可以使用該提供程序: http//developer.android.com/intl/de/reference/android/content/ ContentProvider.html

上述規則有幾個例外:

  1. 在SDK中的模擬器中,adb shell使您可以完全訪問模擬電話的文件系統。 在Android手機中不是這種情況。
  2. 在已經“root”的手機中,任何獲得root權限的應用程序都可以訪問任何其他應用程序(以及其他任何應用程序)的db文件 - 這是根植手機的成本/風險,並且是設備所有者的責任。

基本上,您不必擔心它。 Android通常會為您阻止這些問題。

你真的應該擔心。 很容易獲得你的數據庫甚至代碼而不需要手機。 以下是如何執行此操作的示例:

  1. 下載ASTRO文件管理器。
  2. 使用該選項將應用程序備份到SD卡中。
  3. 將備份的文件傳輸到您的計算機中。
  4. 使用Apk_OneClick工具(在Internet上搜索)來反編譯應用程序包。

現在你擁有一切,代碼,數據庫,圖像,xml文件,一切!

所以我可以告訴你,你可以在幾分鍾內擁有其他人的代碼和數據庫。 要保護您的應用程序,請使用ProGuard,並對您的數據庫使用某種類型的加密。 我個人加密每個字段數據並在運行時解密它,簡單的加密作為XOR它實際上沒有太多的性能損失。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM