iOS'ta güvenli geliştirme: Swift kod incelemesi ve düzeltme
Swift ile yazılmış uygulamalardaki güvenlik hatalarını kaynak koddan bulup düzeltirsin: Anahtar Zinciri ve veri koruması, kripto, biyometri, ağ güveni, bağlantılar, web görünümleri ve gizlilik.
Seviye 301 · 22 ders · 18 pratik lab
Dersler
Swift ve proje
- İnceleyenler için Swift: opsiyoneller, yapılar, kapanışlar
- Bir iOS projesinin yapısı: hedefler, plist, yetkilendirme dosyası
- Swift paketleri ve swift test ile birim testi
- Derleme ayarları, xcconfig ve sırları depodan uzak tutmak
- Kısa görev: küçük bir Swift modülünde belirtecin izlediği yolu açıkla
Depolama ve kripto
- Anahtar Zinciri kullanımı: doğru erişilebilirlik değeri
- Kodda dosya koruma sınıfı seçmek
- UserDefaults ve plist'e hassas veri yazma hatası
- CryptoKit ile doğru şifreleme ve anahtar türetme
- Secure Enclave anahtarları ve biyometriye bağlı erişim
- Kısa görev: belirteci UserDefaults'a yazan kodu Anahtar Zinciri'ne taşı ve testini yaz
Kimlik doğrulama ve ağ
- Biyometrik doğrulama tuzağı: yalnızca evet/hayır yanıtına güvenmek
- URLSession'da sunucu güveni değerlendirmesi ve sabitleme
- Projede ATS yapılandırması
- Giriş akışları: sistem kimlik doğrulama oturumu ve geçiş anahtarları
- Kısa görev: her sertifikayı kabul eden temsilci kodunu düzelt
Platform etkileşimi ve gizlilik
- URL şeması ve evrensel bağlantı girdisini doğrulamak
- WKWebView sıkılaştırma: ileti işleyicileri ve yerel dosya erişimi
- Pano, uygulama geçiş görüntüsü ve klavye önbelleği
- Günlük yazımı ve gizlilik işaretleri
- Kısa görev: parametreyi doğrulamadan işlem başlatan bağlantı işleyicisini düzelt
Bitirme
- Bitirme görevi: bir bütçe takip uygulamasının Swift kodunu incele, düzelt ve testlerle kanıtla
Pratik lablar
- Swift modülünde belirtecin saklandığı yeri bul: Kaynak dosyalarda belirteci yazan çağrıyı göster.
- Opsiyonel zorla açma kaynaklı çökmeyi düzelt: Zorla açılan değeri güvenli bağlamayla değiştir ve testini geçir.
- Depoya girmiş derleme sırrını temizle: xcconfig dosyasındaki anahtarı sürüm denetimi dışına taşı ve geçmişte kaldığını raporla.
- UserDefaults'a yazılan hassas değeri bul: Kodda parolayı tercihlere yazan satırı bul.
- Belirteci Anahtar Zinciri'ne taşı: Saklama sınıfını Anahtar Zinciri sarmalayıcısına geçir ve swift test ile doğrula.
- Doğru erişilebilirlik ve dosya koruma sınıfını seç: Her zaman erişilebilir bırakılan öğeyi ve korumasız yazılan dosyayı düzelt, seçimi testle sına.
- Sabit anahtar kullanan kodu bul: Kaynakta gömülü simetrik anahtarı göster.
- Şifrelemeyi CryptoKit AES-GCM'e taşı: Elle yazılmış şifrelemeyi kimlik doğrulamalı kiple değiştir ve testleri geçir.
- Paroladan anahtar türetmeyi düzelt: Tek özetle türetilen anahtarı tuzlu ve yinelemeli türetmeye geçir, iki kullanıcının farklı anahtar aldığını testle göster.
- Her sertifikayı kabul eden temsilciyi bul: URLSession temsilcisinde koşulsuz kabul satırını göster.
- Sunucu güveni değerlendirmesini düzelt: Varsayılan değerlendirmeyi geri getir ve bozuk sertifikanın reddedildiğini stub ile test et.
- Biyometriyi Anahtar Zinciri öğesine bağla: Yalnızca evet/hayır yanıtına bakan akışı erişim denetimli öğeyle değiştir ve mantığını test et.
- URL şeması işleyicisinin okuduğu parametreleri listele: İşleyici kodunda kullanılan parametreleri çıkar.
- Parametreyi doğrulamadan işlem başlatan işleyiciyi düzelt: Evrensel bağlantı girdisine biçim ve oturum denetimi ekle, üç kötü girdiyi test et.
- WKWebView ileti işleyicisini daralt: Her sayfaya açık işleyiciyi yalnızca kendi alan adına sınırla ve yerel dosya erişimini kapat.
- Günlüğe yazılan kişisel veriyi bul: Günlük çağrılarında e-posta ve telefon numarasını yazdıran satırları bul.
- Uygulama geçiş görüntüsünde hassas ekranı gizle: Arka plana geçişte örtü gösteren mantığı ekle ve durum geçişini test et.
- Bütçe uygulamasının Swift kodunu incele ve iki hatayı düzelt: Altı bulgu çıkar, saklama ve ağ güveni hatalarını düzelt ve testlerle kanıtla.
Kurs hakkında
Swift ile yazılmış uygulamalardaki güvenlik hatalarını kaynak koddan bulup düzeltirsin: Anahtar Zinciri ve veri koruması, kripto, biyometri, ağ güveni, bağlantılar, web görünümleri ve gizlilik.
Ne öğreneceksin
- Swift ve proje
- Depolama ve kripto
- Kimlik doğrulama ve ağ
- Platform etkileşimi ve gizlilik
- Bitirme
Ön koşullar
Aynı yolun 101 ve 201 düzeyindeki konularına hâkim olmalısın.
Lab ortamı
Dersler, tarayıcında açılan sana özel bir Kali Linux terminalinde geçer. Kurulum gerekmez; lab her derste temiz başlar.
Sık sorulan sorular
- Bu kurs benim düzeyime uygun mu?
- Kurs 301 düzeyindedir; daha düşük düzeydeki kursların konularını bildiğin varsayılır.
- Kurulum gerekir mi?
- Hayır. Her ders tarayıcında açılan sana özel bir lab ortamında geçer.
- Dersler nasıl işleniyor?
- Her ders 8 ile 10 adımdan ve bir kısa sınavdan oluşur. İlk adımlarda yazman gereken komut gösterilir, sonraki adımlarda yardım azalır; iki denemede takılırsan çözüm açılır.
- Ücretsiz deneyebilir miyim?
- Evet. Her kursun ilk üç dersi ücretsizdir.