iOS Serialisation and Encoding
Last updated
Last updated
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE) GCP Hacking'i öğrenin ve pratik yapın: HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)
Kod ve daha fazla bilgi için https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/#object-persistence.
iOS'ta, nesne serileştirmesi, nesneleri kolayca depolanabilir veya iletilebilir bir formata dönüştürmeyi ve ardından ihtiyaç duyulduğunda bu formattan yeniden inşa etmeyi içerir. İki ana protokol, NSCoding
ve NSSecureCoding
, bu süreci Objective-C veya NSObject
alt sınıfları için kolaylaştırır ve nesnelerin NSData
formatına serileştirilmesine olanak tanır; bu format, bayt tamponlarını sarar.
NSCoding
UygulamasıNSCoding
'i uygulamak için bir sınıf NSObject
'tan miras almalı veya @objc
olarak işaretlenmelidir. Bu protokol, örnek değişkenlerini kodlamak ve kod çözmek için iki yöntemin uygulanmasını zorunlu kılar:
NSSecureCoding
ile ArtırmaSaldırganların zaten oluşturulmuş nesnelere veri enjekte etme açıklarını azaltmak için, NSSecureCoding
geliştirilmiş bir protokol sunar. NSSecureCoding
'e uyan sınıflar, kod çözme sırasında nesnelerin türünü doğrulamalıdır, böylece yalnızca beklenen nesne türlerinin oluşturulması sağlanır. Ancak, NSSecureCoding
tür güvenliğini artırsa da, veriyi şifrelemez veya bütünlüğünü sağlamaz; bu nedenle hassas bilgilerin korunması için ek önlemler gereklidir:
NSKeyedArchiver
NSKeyedArchiver
ve onun karşılığı NSKeyedUnarchiver
, nesneleri bir dosyaya kodlamayı ve daha sonra geri almayı sağlar. Bu mekanizma, nesneleri kalıcı hale getirmek için faydalıdır:
Codable
for Simplified SerializationSwift'in Codable
protokolü, Decodable
ve Encodable
'ı birleştirerek, String
, Int
, Double
gibi nesnelerin kodlanmasını ve kod çözümlemesini ekstra çaba harcamadan kolaylaştırır:
Bu yaklaşım, Swift uygulamalarında veri yönetimini geliştiren, özellik listelerine ve JSON'a basit serileştirme desteği sağlar.
Yerel desteğin ötesinde, birkaç üçüncü taraf kütüphane JSON ve XML kodlama/çözme yetenekleri sunar; her birinin kendi performans özellikleri ve güvenlik dikkate alması vardır. Bu kütüphanelerin dikkatlice seçilmesi, özellikle dış varlık işleme işlemlerini önlemek için ayrıştırıcıların yapılandırılması yoluyla XXE (XML Dış Varlıklar) saldırıları gibi zayıflıkları azaltmak açısından önemlidir.
Veri serileştirirken, özellikle dosya sistemine, hassas bilgilerin potansiyel olarak dahil edilmesi konusunda dikkatli olmak önemlidir. Serileştirilmiş veriler, eğer ele geçirilirse veya yanlış bir şekilde işlenirse, uygulamaları yetkisiz işlemler veya veri sızıntısı gibi risklere maruz bırakabilir. Güvenliği artırmak için serileştirilmiş verilerin şifrelenmesi ve imzalanması önerilir.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)