Junior — Middle
Gizli məlumatların saxlanmasında təhlükəsizliyi necə təmin edirsiniz?
sobes.tech Süni İntellekt
AI-dan cavab
iOS-də gizli məlumatların təhlükəsizliyini təmin etmək üçün adətən Keychain istifadə olunur; bu, sistem tərəfindən təmin olunan qorunan saxlama yeridir. Keychain məlumatları şifrələyir və onlara giriş məhdudlaşdırır, bu da icazəsiz girişlərin qarşısını alır.
Əlavə olaraq, vacib olan:
- Parolları və sirrləri açıq formada UserDefaults və ya fayllarda saxlamaqdan çəkinin.
- Lazım gəldikdə, məlumatları Keychain xaricində saxlamaq üçün şifrələmədən istifadə edin.
- Məlumatlara giriş hüququnu Keychain giriş parametrləri ilə məhdudlaşdırın (məsələn, yalnız cihaz kilidli olduqda giriş).
Swift istifadə edərək Keychain-ə sətir yazma və oxuma nümunəsi:
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) // Köhnə qeydiyyatı sil
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
}