簡體   English   中英

敏感信息應存儲在哪里?

[英]Where should the sensitive information be stored?

在NSUserDefaults中存儲敏感數據是否公平?

我已經讀到這是一個大問題,因為NSUserDefaults以二進制格式存儲在plist中,沒有加密,並且存儲在應用程序的目錄中。 這意味着任何用戶,甚至“最討厭的”用戶,都可以在5分鍾的時間內修改NSUserDefaults。

任何用戶都可以對其進行編輯,查看,共享,移動以及其他任何操作。 越獄用戶可以簡單地安裝iFile,導航到您的應用程序目錄,播放文件並繼續前進。

那么,存儲用戶敏感信息的最佳方法是什么? 我應該使用Coredata並存儲加密的信息嗎?

為了存儲用戶憑據,我將使用鑰匙串(如果服務器端可以接受某種哈希而不是普通密碼,這也將有所幫助)。 我想說擁有JB的用戶可能知道他們在做什么並且也可以保護自己,所以我認為與JB相比,使用Keychain進行黑客攻擊要容易得多,這沒什么大不了的。

為了存儲地址等內容,如果您使用CoreData,我會使用可轉換的屬性( 此帖子可能會有所幫助)。

iOS方面的附加保護可以是文件保護屬性(如果用戶設置了密碼)。

UserDefaults並不意味着存儲敏感信息,因為它基本上是“純文本”。

您應該看一下文檔。 盡管沒有太多信息,但這仍然是一個很好的起點。 此外,您可能會發現從Apple那里瀏覽示例和指南很有用(您必須登錄)。 祝好運!

最好將NSUserDefaults與敏感信息存儲在鑰匙串中 但是出於某些原因,如果您不想使用鑰匙串等功能,應該避免使用它-

  1. 卸載應用后,鑰匙串不會刪除信息(鍵,值)。 因此,盡管沒有濫用存儲在鑰匙串中的信息,但請確保您在堆積鑰匙串時沒有問題。 卸載應用后,即會從NSUser默認值中刪除信息。

  2. 使用iCloud鑰匙串信息可在可訪問憑據的設備之間共享。 盡管它們是您的設備,但並不是每次用戶在設備上使用同一應用程序時,為什么要提供憑據。

  3. 在諸如MAC鑰匙串訪問之類的設備上會導致詢問權限彈出窗口。

暫無
暫無

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

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