android - studio - lint tool




什麼是“android:allowBackup”? (4)

什麼時候應該設置android:allowBackup = false

您不需要root用戶將數據從android設備備份到PC,您只需要物理訪問權限並在開發人員菜單中啟用調試。 這使您可以從應用程序的內部存儲中復制數據,這些數據可能包含您不想讓別人竊取的敏感信息,例如您的Facebook訪問令牌。

我同意在大多數情況下它是非常微不足道的,但有些情況下需要額外的一層保護來抵禦涉及物理訪問的攻擊。

請注意,為了解決這個問題,您需要對手機進行根目錄,在這種情況下,出廠重置時內部存儲器中的敏感數據將被清除。

自新ADT預覽版(版本21)以來,他們有一個新的lint警告,告訴我清單文件(應用程序標籤)上的下一件事:

應該明確地將android:allowBackup設置為true或false(默認情況下為true,並且可能會對應用程序的數據產生一些安全隱患)

官方網站上 ,他們寫道:

一些新的檢查:你必須明確地決定你的應用程序是否允許備份和標籤檢查。 有一個用於設置庫路徑的新命令行標誌。 編輯時增量皮棉分析的許多改進。

這是什麼警告? 什麼是備份功能,以及如何使用它?

另外,為什麼警告告訴我它有安全隱患? 禁用此功能的缺點和優點是什麼?

清單的備份有兩個概念:

  • “android: allowBackup ”允許通過adb進行備份和恢復,如下所示:

是否允許應用程序參與備份和還原基礎架構。 如果此屬性設置為false,則即使通過全系統備份,也不會執行應用程序的備份或恢復,否則會導致所有應用程序數據通過adb保存。 此屬性的默認值為true。

這被認為是一個安全問題,因為人們可以通過ADB備份您的應用程序,然後將您的應用程序的私人數據存入他們的PC。

但是,我認為這不是問題,因為大多數用戶不知道adb是什麼,如果他們這樣做,他們也會知道如何對設備進行根目錄。 ADB功能只有在設備啟用了調試功能的情況下才會起作用,並且這需要用戶啟用它。

因此,只有將其設備連接到PC並啟用調試功能的用戶才會受到影響。 如果他們在使用ADB工具的PC上有惡意應用程序,這可能會造成問題,因為應用程序可能會讀取私有存儲數據。

我認為Google應該在開發人員類別中添加一項默認禁用的功能,以允許通過ADB備份和恢復應用程序。

  • “android: backupAgent ”允許使用雲的備份和還原功能,如下所示:

實現應用程序的備份代理的類的名稱,它是BackupAgent的一個子類。 屬性值應該是完全限定的類名(例如“com.example.project.MyBackupAgent”)。 但是,如果名稱的第一個字符是句點(例如,“.MyBackupAgent”),則會將其附加到元素中指定的包名稱。 沒有默認值。 該名稱必須指定。

這不是一個安全問題。


對於此lint警告以及所有其他lint警告,請注意,您可以獲得比單行錯誤消息中的內容更完整的解釋; 你不必在網上搜索更多信息。

如果您通過Eclipse使用lint,請打開lint警告視圖,您可以在其中選擇lint錯誤並查看更長的解釋,或者在錯誤行上調用quickfix(Ctrl-1),其中一個建議是“Explain這個問題“,這也會出現更全面的解釋。 如果您未使用Eclipse,則可以從lint( lint --html <filename> )生成HTML報告,其中包含警告旁邊的完整說明,或者可以要求lint解釋特定問題。 例如,與allowBackup相關的問題的ID為“AllowBackup”(顯示在錯誤消息的末尾),因此更完整的解釋是:

$ ./lint --show AllowBackup
AllowBackup
-----------
Summary: Ensure that allowBackup is explicitly set in the application's
manifest

Priority: 3 / 10
Severity: Warning
Category: Security

allowBackup屬性確定是否可以備份和恢復應用程序的數據。 here記錄在案。

By default, this flag is set to true. When this flag is set to true,
application data can be backed up and restored by the user using adb backup
and adb restore.

This may have security consequences for an application. adb backup allows
users who have enabled USB debugging to copy application data off of the
device. Once backed up, all application data can be read by the user. adb
restore allows creation of application data from a source specified by the
user. Following a restore, applications should not assume that the data, file
permissions, and directory permissions were created by the application
itself.

Setting `allowBackup="false"` opts an application out of both backup and
restore.

To fix this warning, decide whether your application should support backup,
and explicitly set `android:allowBackup=(true|false)`"

點擊這裡獲取here



這是隱私問題。 建議禁止用戶備份包含敏感數據的應用。 有權訪問備份文件(即當android:allowBackup="true" ),即使在非根設備上也可以修改/讀取應用程序的內容。

解決方法 - 在清單文件中使用android:allowBackup="false"

您可以閱讀這篇文章以獲得更多信息: 使用備份技術對Android應用程序進行黑客入侵







android-backup-service