Junior — Middle
Жеке маалыматтарды сактоо учурунда кандайча коопсуздукту камсыз кыласыз?
sobes.tech AI
AIден жооп
iOS'то сырдуу маалыматтарды сактоо үчүн көбүнчө Keychain колдонулат; бул систем тарабынан камсыздалган корголгон сактоо жайы. Keychain маалыматтарды шифрлеп, алардын кирүүсүн чектейт, бул уруксатсыз кирүүнүн алдын алат.
Мындан тышкары, маанилүү:
- Паролдорду жана сырларды ачык түрдө UserDefaults же файлдарда сактабагыла.
- Эгер керек болсо, маалыматтарды Keychain'ден тышкары сактоо үчүн шифрлөөнү колдонуңуз.
- Маалыматтарга кирүүнү Keychain'дин кирүү жөндөөлөрү аркылуу чектеңиз (мисалы, түзмөк ачылганда гана кирүүгө болот).
Swift колдонуп, Keychain'ге сап жазуу жана окуу мисалы:
import Security
func saveToKeychain(value: String, forKey key: String) {
let data = value.data(using: .utf8)!
let query: [String: Any] = [
kSecClass as String: kSecClassGenericPassword,
kSecAttrAccount as String: key,
kSecValueData as String: data
]
SecItemDelete(query as CFDictionary) // Эски жазууну өчүрүү
SecItemAdd(query as CFDictionary, nil)
}
func loadFromKeychain(key: String) -> String? {
let query: [String: Any] = [
kSecClass as String: kSecClassGenericPassword,
kSecAttrAccount as String: key,
kSecReturnData as String: true,
kSecMatchLimit as String: kSecMatchLimitOne
]
var dataTypeRef: AnyObject? = nil
let status = SecItemCopyMatching(query as CFDictionary, &dataTypeRef)
if status == errSecSuccess, let data = dataTypeRef as? Data {
return String(data: data, encoding: .utf8)
}
return nil
}