6.3 KiB
AWS hackleme becerilerini sıfırdan kahraman seviyesine öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)!
HackTricks'ı desteklemenin diğer yolları:
- Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek için ABONELİK PLANLARI'na göz atın!
- Resmi PEASS & HackTricks ürünlerini edinin
- PEASS Ailesi'ni keşfedin, özel NFT'lerimiz koleksiyonumuz
- 💬 Discord grubuna veya telegram grubuna katılın veya Twitter 🐦 @carlospolopm'u takip edin.
- Hacking hilelerinizi HackTricks ve HackTricks Cloud github depolarına PR göndererek paylaşın.
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
'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:
class CustomPoint: NSObject, NSCoding {
var x: Double = 0.0
var name: String = ""
func encode(with aCoder: NSCoder) {
aCoder.encode(x, forKey: "x")
aCoder.encode(name, forKey: "name")
}
required convenience init?(coder aDecoder: NSCoder) {
guard let name = aDecoder.decodeObject(forKey: "name") as? String else { return nil }
self.init(x: aDecoder.decodeDouble(forKey: "x"), name: name)
}
}
NSSecureCoding
ile Güvenliği Artırma
Saldı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:
static var supportsSecureCoding: Bool {
return true
}
let obj = decoder.decodeObject(of: MyClass.self, forKey: "myKey")
NSKeyedArchiver
ile Veri Arşivleme
NSKeyedArchiver
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:
NSKeyedArchiver.archiveRootObject(customPoint, toFile: "/path/to/archive")
let customPoint = NSKeyedUnarchiver.unarchiveObjectWithFile("/path/to/archive") as? CustomPoint
Basitleştirilmiş Serileştirme için 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:
struct CustomPointStruct: Codable {
var x: Double
var name: String
}
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
AWS hacklemeyi sıfırdan kahraman olmak için htARTE (HackTricks AWS Red Team Expert)'ı öğrenin!
HackTricks'i desteklemenin diğer yolları:
- Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek için ABONELİK PLANLARI'na göz atın!
- Resmi PEASS & HackTricks ürünlerini edinin
- Özel NFT'lerden oluşan koleksiyonumuz The PEASS Family'i keşfedin
- 💬 Discord grubuna veya telegram grubuna katılın veya Twitter 🐦 @carlospolopm'u takip edin.
- Hacking hilelerinizi HackTricks ve HackTricks Cloud github depolarına PR göndererek paylaşın.