![](/img/trans.png)
[英]Where should the “history” information generated by iOS application be stored?
[英]Where should the sensitive information be stored?
在NSUserDefaults中存儲敏感數據是否公平?
我已經讀到這是一個大問題,因為NSUserDefaults以二進制格式存儲在plist中,沒有加密,並且存儲在應用程序的目錄中。 這意味着任何用戶,甚至“最討厭的”用戶,都可以在5分鍾的時間內修改NSUserDefaults。
任何用戶都可以對其進行編輯,查看,共享,移動以及其他任何操作。 越獄用戶可以簡單地安裝iFile,導航到您的應用程序目錄,播放文件並繼續前進。
那么,存儲用戶敏感信息的最佳方法是什么? 我應該使用Coredata並存儲加密的信息嗎?
為了存儲用戶憑據,我將使用鑰匙串(如果服務器端可以接受某種哈希而不是普通密碼,這也將有所幫助)。 我想說擁有JB的用戶可能知道他們在做什么並且也可以保護自己,所以我認為與JB相比,使用Keychain進行黑客攻擊要容易得多,這沒什么大不了的。
為了存儲地址等內容,如果您使用CoreData,我會使用可轉換的屬性( 此帖子可能會有所幫助)。
iOS方面的附加保護可以是文件保護屬性(如果用戶設置了密碼)。
UserDefaults並不意味着存儲敏感信息,因為它基本上是“純文本”。
最好將NSUserDefaults與敏感信息存儲在鑰匙串中 。 但是出於某些原因,如果您不想使用鑰匙串等功能,應該避免使用它-
卸載應用后,鑰匙串不會刪除信息(鍵,值)。 因此,盡管沒有濫用存儲在鑰匙串中的信息,但請確保您在堆積鑰匙串時沒有問題。 卸載應用后,即會從NSUser默認值中刪除信息。
使用iCloud鑰匙串信息可在可訪問憑據的設備之間共享。 盡管它們是您的設備,但並不是每次用戶在設備上使用同一應用程序時,為什么要提供憑據。
在諸如MAC鑰匙串訪問之類的設備上會導致詢問權限彈出窗口。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.