Junior — Middle
Cum asiguri siguranța în timpul stocării informațiilor confidențiale?
sobes.tech AI
Răspuns de la AI
Pentru a asigura securitatea în timpul stocării informațiilor confidențiale pe iOS, se utilizează de obicei Keychain, o stocare protejată furnizată de sistem. Keychain criptează datele și limitează accesul la acestea, prevenind accesul neautorizat.
De asemenea, este important:
- Să nu stocați parole și secrete în clar în UserDefaults sau fișiere.
- Să utilizați criptarea atunci când este necesar pentru stocarea datelor în afara Keychain.
- Să restricționați accesul la date prin setările de acces ale Keychain (de exemplu, acces doar atunci când dispozitivul este deblocat).
Exemplu de salvare și citire a unui șir de caractere în Keychain folosind Swift:
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) // Șterge intrarea veche
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
}