2012-01-03 20 views
5

Tôi hiểu rằng, bên cạnh một số cài đặt chung, ứng dụng iOS chỉ có thể xem nội dung trong số [NSUserDefaults standardUserDefaults] mà chính nó đã tạo. Tôi đoán hệ điều hành đang xem xét số nhận dạng của ứng dụng để đảm bảo điều này, đúng không? Những gì tôi muốn biết là nếu có bất kỳ cách nào một ứng dụng khác có thể thu thập thông tin mà ứng dụng của tôi được lưu trữ trong mặc định của người dùng.iOS: Có an toàn để lưu trữ thông tin người dùng hợp lý trong [NSUserDefaults standardUserDefaults] không?

Trả lời

8

Không có ứng dụng nào khác có thể truy cập thông tin được lưu trong cài đặt mặc định của người dùng cho ứng dụng của bạn. Nhưng điều này không có nghĩa là không thể lấy được thông tin. Bạn có thể cắm thiết bị của mình vào Xcode và chạy ứng dụng của bạn. Trong các thiết bị, bạn có thể xem thông tin ứng dụng của mình và thông tin được lưu trong cài đặt mặc định của người dùng sẽ được liệt kê ở đó.

Thông thường, bạn không nên lưu dữ liệu người dùng nhạy cảm ở đó, mặc dù không dễ dàng truy cập, vẫn có thể truy cập được. Đối với dữ liệu hoặc cài đặt chung không phải cá nhân, nó thực sự không phải là một vấn đề lớn. Bạn luôn có thể sử dụng truy cập keychain được tích hợp sẵn để lưu trữ thông tin mật khẩu và tên người dùng và sử dụng các giá trị mặc định của người dùng cho bất kỳ thứ gì khác mà bạn có thể cần.

Trong một trong các ứng dụng của tôi, tôi muối và băm tên người dùng và mật khẩu với nhau để tạo một mã thông báo duy nhất. Tôi lưu nó trong mặc định của người dùng. Nó là vô giá trị của chính nó, nhưng đó chỉ là cách làm của tôi. Chúc may mắn.

0

Nói chung Không, không có ứng dụng nào khác được phép xem thông tin bên ngoài hộp cát của chúng. Tuy nhiên, nếu ai đó có thiết bị bẻ khóa, thì có, thông tin được lưu trữ trong NSUserDefaults của bạn có thể xem được, trừ khi bạn mã hóa nội dung của mình.

1

Không có thiết bị chưa được bẻ khóa. Tuy nhiên, người dùng — hoặc người khác có quyền truy cập vật lý vào thiết bị — có thể dễ dàng kéo cài đặt mặc định của người dùng của ứng dụng ra khỏi thiết bị; trong khi bạn lưu trữ những thứ như tên người dùng hoặc mã thông báo xác thực theo mặc định, dữ liệu có giá trị hơn (như mật khẩu và thông tin tài chính) phải được lưu trữ trong Keychain hoặc được mã hóa khác.

Các vấn đề liên quan