WebView, derin bağlantı ve IPC incelemesi
Uygulamanın dışarıdan veri aldığı kapıları denetlersin: derin bağlantılar, uygulama bağlantıları, WebView ayarları, JavaScript köprüleri, içerik sağlayıcılar ve PendingIntent'lerdeki hataları bulup düzeltirsin.
Seviye 301 · 22 ders · 18 pratik lab
Dersler
Derin bağlantılar
- Derin bağlantı dökümü: şemalar, ana makineler, yollar
- Uygulama bağlantıları ve assetlinks.json doğrulaması
- Parametre işleme: doğrulanmamış yönlendirme ve işlem tetikleme
- Özel şema çakışmaları ve OAuth geri dönüş adresleri
- Kısa görev: bir manifestten derin bağlantı haritası çıkar ve doğrulanmamış olanları işaretle
WebView
- WebView ayar denetimi: JavaScript, dosya erişimi, karışık içerik
- JavaScript köprüsünü incelemek: hangi yöntemler açık
- URL yükleme denetimi ve izin listesi hataları
- WebView verisi: çerezler, yerel depolama, önbellek
- Custom Tabs mı WebView mı: giriş akışları için doğru seçim
- Kısa görev: bir uygulamadaki dört WebView'ın ayarlarını denetle ve riskli olanı düzelt
Bileşenler arası iletişim
- Dışa açık activity'leri incelemek: yetkisiz ekran açma
- İçerik sağlayıcı incelemesi: yol geçişi, SQL ve izin hataları
- Yayın alıcıları: korumasız yayınlar ve sıralı yayınlar
- PendingIntent incelemesi: değiştirilebilirlik ve boş intent
- Kısa görev: bir içerik sağlayıcının yol denetimi hatasını bul ve testle kanıtla
Düzeltme ve doğrulama
- Intent yönlendirme hatası ve güvenli iletme
- Dış girdiyi doğrulama desenleri
- IPC düzeltmeleri için gerileme testleri
- Bu hataları yakalayan lint ve semgrep kuralları
- Kısa görev: doğrulanmamış bir yönlendirmeyi izin listesiyle düzelt ve testini yaz
Bitirme
- Bitirme görevi: bir alışveriş uygulamasının dış girdi yüzeyini denetle ve düzelt
Pratik lablar
- Manifestten derin bağlantı listesini çıkar: Şema, ana makine ve yol değerlerini bir tabloya dök.
- Doğrulanmamış uygulama bağlantılarını bul: Lab sunucusundaki assetlinks.json dosyasını manifestle karşılaştır ve doğrulaması eksik alan adını göster.
- Özel şema çakışmasını ve OAuth dönüş riskini raporla: İki uygulamanın aynı özel şemayı bildirdiğini simüle cihazda göster ve doğrulanmış bağlantıya geçiş önerisi yaz.
- Bağlantı parametresini okuyan kodu bul: Derin bağlantı activity'sinde hangi parametrelerin okunduğunu listele.
- Doğrulanmamış yönlendirmeyi izin listesiyle düzelt: Bağlantıdaki adresi doğrudan açan kodu ana makine izin listesiyle düzelt ve testini yaz.
- Bağlantıyla tetiklenen para transferini kapat: Onay istemeden işlem başlatan bağlantı işleyicisini oturum ve kullanıcı onayı denetimiyle düzelt, üç kötü girdi için test ekle.
- Uygulamadaki WebView'ları ve ayarlarını listele: Koddaki her WebView için JavaScript ve dosya erişimi ayarlarını tabloya dök.
- Karışık içeriğe ve dosya erişimine izin veren WebView'ı düzelt: Riskli ayarları kapat ve yapılandırmayı birim testiyle doğrula.
- URL izin listesi hatasını bul ve düzelt: Alan adını dizgi sonuna bakarak denetleyen kodun neden aşılabildiğini örnek adresle göster ve doğru ayrıştırmayla düzelt.
- JavaScript köprüsündeki yöntemleri listele: Köprü sınıfında web sayfasına açılan yöntemleri bul.
- Köprüden dosya okuyan yöntemi kaldır: Yerel dosya okuyan köprü yöntemini kaldır ve işlevi güvenli bir yöntemle değiştir.
- Giriş akışını WebView'dan Custom Tabs'a taşı: Parolayı uygulama içi WebView'da toplayan akışı sistem tarayıcısına taşı ve köprünün artık gerekmediğini kodla göster.
- Dışa açık sağlayıcıyı ve URI'lerini bul: Manifest ve koddan sağlayıcının yetki adını ve desteklediği yolları çıkar.
- Sağlayıcıdaki yol geçişi hatasını testle kanıtla: Dosya açan sağlayıcıda üst klasöre çıkan girdinin kabul edildiğini testle göster ve düzelt.
- Korumasız yayın alıcısını izinle koru: Herkesten yayın kabul eden alıcıyı imza izniyle sınırla, gönderen tarafı da güncelle ve davranışı test et.
- Intent yönlendirme hatasını kodda bul: Gelen intent'in içindeki intent'i doğrudan başlatan satırı bul.
- Değiştirilebilir PendingIntent için semgrep kuralı yaz: Kuralı yaz, iki olumlu ve iki olumsuz örnekle sına.
- Alışveriş uygulamasının dış girdi yüzeyini denetle: Turnalı Perakende uygulamasında bağlantı, WebView ve sağlayıcı bulgularını çıkar, ikisini düzelt ve gerileme testlerini ekle.
Kurs hakkında
Uygulamanın dışarıdan veri aldığı kapıları denetlersin: derin bağlantılar, uygulama bağlantıları, WebView ayarları, JavaScript köprüleri, içerik sağlayıcılar ve PendingIntent'lerdeki hataları bulup düzeltirsin.
Ne öğreneceksin
- Derin bağlantılar
- WebView
- Bileşenler arası iletişim
- Düzeltme ve doğrulama
- 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.