Sobes.tech
Junior — Middle

Gizli bilgilerin saklanmasında güvenliği nasıl sağlıyorsunuz?

sobes.tech yapay zeka

AI'dan gelen yanıt

iOS'ta gizli bilgilerin saklanmasında güvenliği sağlamak için genellikle Keychain kullanılır; bu, sistem tarafından sağlanan korumalı bir depolamadır. Keychain verileri şifreler ve erişimi sınırlar, böylece yetkisiz erişimi önler.

Ayrıca, önemli olan:

  • Parolaları ve gizli bilgileri UserDefaults veya dosyalarda açık metin olarak saklamamak.
  • Gerekirse, verileri Keychain dışında saklarken şifreleme kullanmak.
  • Erişim ayarlarıyla verilere erişimi sınırlandırmak (örneğin, cihaz kilidi açıkken erişim).

Swift kullanarak Keychain'e dize kaydetme ve okuma örneği:

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) // Eski kaydı 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
}