Flutter Uygulamalarında Güvenlik: SSL Pinning ve Obfuscation Rehberi Görseli

Flutter Uygulamalarında Güvenlik: SSL Pinning ve Obfuscation Rehberi

20.10.2026 | 25

Flutter Uygulamalarında Güvenlik Stratejileri

Mobil uygulama geliştirmede sadece özelliklere odaklanmak büyük bir hata. Özellikle finansal veya veri odaklı projelerde, uygulamanızın ağ trafiğini ve kaynak kod güvenliğini sağlamak zorundasınız. Bugün, Flutter projelerinde en sık göz ardı edilen iki kritik konuyu ele alacağız: SSL Pinning ve Code Obfuscation.

1. SSL Pinning ile Man-in-the-Middle (MITM) Saldırılarını Engelleyin

Varsayılan olarak, mobil uygulamalar cihazın güvenilen sertifika listesine güvenir. Ancak bir saldırgan, cihazınıza sahte bir sertifika yükleyerek trafiğinizi dinleyebilir. SSL Pinning, uygulamanızın sadece belirli bir sunucu sertifikasını kabul etmesini sağlayarak bu riski ortadan kaldırır.

SSL Pinning mimarisi ve sertifika doğrulama akışı Görseli
SSL Pinning mimarisi ve sertifika doğrulama akışı

Flutter'da http paketi ile bunu uygulamak için SecurityContext kullanabilirsiniz:


final ByteData data = await rootBundle.load('assets/certificates/my_cert.pem');
SecurityContext context = SecurityContext(withTrustedRoots: false);
context.setTrustedCertificatesBytes(data.buffer.asUint8List());
HttpClient httpClient = HttpClient(context: context);

2. Obfuscation (Kod Karartma) ile Tersine Mühendisliği Zorlaştırın

Dart kodu derlendiğinde, mantığınızı anlamak isteyen biri strings veya nm gibi araçlarla uygulama içindeki fonksiyon isimlerini ve metinleri okuyabilir. Obfuscation, bu isimleri anlamsız karakterlerle değiştirerek tersine mühendisliği ciddi oranda zorlaştırır.

İpucu: Obfuscation işlemini üretim aşamasında (release) şu komutla aktif edebilirsiniz: flutter build apk --obfuscate --split-debug-info=//debug-info/

Özet ve Tavsiyeler

  • SSL Pinning: Sertifika rotasyonunu (rotation) unutmayın, aksi takdirde sertifika süresi dolduğunda uygulamanız çalışmaz hale gelir.
  • Obfuscation: Hata izleme (Crashlytics) araçları için mapping dosyalarınızı mutlaka saklayın.
  • Veri Güvenliği: Kritik verileri asla SharedPreferences gibi basit yerlerde tutmayın, flutter_secure_storage kullanın.
| |