Sobes.tech
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
}