Junior — Middle
Kako obezbeđujete sigurnost prilikom čuvanja poverljivih informacija?
sobes.tech АИ
Одговор од АИ
За обезбедјивање безбедности приликом складиштења поверљивих информација у iOS-у, обично се користи Keychain — заштићено складиштење које пружа систем. Keychain шифрује податке и ограничава приступ њима, што спречава неовлашћени приступ.
Поред тога, важно је:
- Не чувати лозинке и тајне у јасном тексту у UserDefaults или датотекама.
- Користити шифровање када је потребно за складиштење података изван Keychain-а.
- Ограничити приступ подацима помоћу подешавања приступа Keychain-у (на пример, приступ само када је уређај откључан).
Пример чувања и читања низа у Keychain-у помоћу 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) // Уклони стару запис
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
}