2012-01-03 15 views
5

Bazı genel ayarların yanı sıra, bir iOS uygulamasının, içeriği yalnızca kendisinin oluşturduğu [NSUserDefaults standardUserDefaults] içeriğinde görebileceğini anlıyorum. İşletim sisteminin, bunu sağlamak için uygulamanın kimliğine baktığını düşünüyorum. Bilmek istediğim, başka uygulamaların, uygulamamın kullanıcı varsayılanlarında saklandığı bilgileri toplayabilmesinin herhangi bir yolu varsa.iOS: Hassas kullanıcı bilgilerini [NSUserDefaults standardUserDefaults] içinde depolamak güvenli midir?

cevap

8

Başka hiçbir uygulama, uygulamanızın kullanıcı varsayılanlarında saklanan bilgilere erişemez. Ancak bu, bilgilerin elde edilemeyeceği anlamına gelmez. Cihazınızı Xcode'a bağlayıp uygulamanızı çalıştırabilirsiniz. Cihazların altında, uygulama bilgilerinizi görüntüleyebilir ve kullanıcı varsayılanlarına kaydedilen bilgiler orada listelenir.

Genel olarak hassas kullanıcı verilerini kaydetmek iyi bir fikir değildir, erişilmesi kolay olmasa da, hala erişilebilir durumdadır. Genel olmayan kişisel veriler veya ayarlar için, gerçekten büyük bir sorun değildir. Kullanıcı adı ve parola bilgilerini saklamak ve ihtiyacınız olabilecek başka bir şey için kullanıcı varsayılanlarını kullanmak için yerleşik anahtarlık erişimini her zaman kullanabilirsiniz.

Uygulamalarımdan birinde, benzersiz bir belirteç oluşturmak için kullanıcı adı ve şifreyi bir araya getirip tuzladım. Bunu kullanıcı varsayılanlarında saklıyorum. Kendi başına değersizdir, ama bu sadece bir şeyleri yapmamdır. İyi şanslar.

0

Genelde, başka hiçbir uygulamanın sanal alanlarının dışındaki bilgileri görüntülemesine izin verilmez. Bununla birlikte, birisi bir jailbreak cihazına sahipse, o zaman, içeriğinizi şifrelediğiniz sürece, NSUserDefaults'unuzda saklanan bilgiler görüntülenebilir.

1

Bozuk bir aygıtta değil. Bununla birlikte, kullanıcı - veya cihaza fiziksel erişimi olan başka biri - uygulamanızın kullanıcı varsayılanlarını cihazdan kolayca çekebilir; Varsayılan olarak bir kullanıcı adı veya bir kimlik doğrulama jetonu gibi şeyleri depolarken, daha değerli veriler (parolalar ve finansal bilgiler gibi) Keychain'de saklanmalı veya başka bir şekilde şifrelenmelidir.