iOS Serialisation and Encoding
Kod ve daha fazla bilgi için https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/#object-persistence.
iOS Geliştirmede Nesne Serileştirme
iOS'te, nesne serileştirme, nesnelerin kolayca depolanabilir veya iletilir bir formata dönüştürülmesini ve ihtiyaç duyulduğunda bu formattan yeniden oluşturulmasını içerir. İki ana protokol, NSCoding
ve NSSecureCoding
, Objective-C veya NSObject
alt sınıfları için bu süreci kolaylaştırır ve nesnelerin, byte tamponlarını saran bir formata olan NSData
'ya serileştirilmesine olanak tanır.
NSCoding
Uygulaması
NSCoding
UygulamasıNSCoding
'i uygulamak için bir sınıfın NSObject
'den türetilmesi veya @objc
olarak işaretlenmesi gerekir. Bu protokol, örnek değişkenlerin kodlanması ve kod çözme için iki yöntemin uygulanmasını zorunlu kılar:
NSSecureCoding
ile Güvenliği Artırma
NSSecureCoding
ile Güvenliği ArtırmaSaldırganların veri enjekte ettiği zafiyetleri azaltmak için NSSecureCoding
, gelişmiş bir protokol sunar. NSSecureCoding
'i uygulayan sınıflar, çözme işlemi sırasında nesnelerin türünü doğrulamalı ve yalnızca beklenen nesne türlerinin oluşturulmasını sağlamalıdır. Bununla birlikte, NSSecureCoding
tür güvenliğini artırırken veriyi şifrelemez veya bütünlüğünü sağlamaz, bu nedenle hassas bilgileri korumak için ek önlemler gereklidir:
NSKeyedArchiver
ile Veri Arşivleme
NSKeyedArchiver
ile Veri ArşivlemeNSKeyedArchiver
ve karşılığı olan NSKeyedUnarchiver
, nesneleri bir dosyaya kodlamayı ve daha sonra onları geri almayı sağlar. Bu mekanizma nesnelerin kalıcı hale getirilmesi için kullanışlıdır:
Basitleştirilmiş Serileştirme için Codable
Kullanımı
Codable
KullanımıSwift'in Codable
protokolü, Decodable
ve Encodable
'ı birleştirerek String
, Int
, Double
gibi nesnelerin kodlanması ve kod çözülmesini ekstra çaba gerektirmeden kolaylaştırır:
Bu yaklaşım, Swift uygulamalarında veri işleme yeteneklerini artırarak, özellik listelerine ve JSON'a doğrudan seri hale getirme ve seri halden geri alma işlemlerini destekler.
JSON ve XML Kodlama Alternatifleri
Yerel desteğin ötesinde, birkaç üçüncü taraf kütüphane JSON ve XML kodlama/çözme yetenekleri sunar. Her birinin performans özellikleri ve güvenlik hususları vardır. Özellikle dış varlık işleme önlemek için ayrıştırıcıları yapılandırarak XXE (XML Dış Varlıklar) saldırıları gibi zafiyetleri azaltmak için bu kütüphaneleri dikkatlice seçmek önemlidir.
Güvenlik Hususları
Verileri seri hale getirirken, özellikle dosya sistemine, hassas bilgilerin potansiyel olarak dahil edilmesine dikkat etmek önemlidir. Yakalanması veya yanlış şekilde işlenmesi durumunda seri hale getirilmiş veriler, yetkisiz eylemlere veya veri sızıntısına gibi risklere maruz kalabilir. Seri hale getirilmiş verilerin şifrelenmesi ve imzalanması, güvenliği artırmak için önerilir.
Referanslar
Last updated