Skip to content

Mobile App Security Best Practices

# Mobile App Security Best Practices: Uygulamanızı Nasıl Güvende Tutarsınız? Mobil uygulama güvenliği, geliştiricilerin ve kullanıcıların en çok dikkat etmesi gereken konuların başında geliyor. Veri...

Published by Adem Hatay on

AI ile Üretilmiştir

Bu blog yazısı yapay zeka ile üretilmiştir.

Mobile App Security Best Practices: Uygulamanızı Nasıl Güvende Tutarsınız?

Mobil uygulama güvenliği, geliştiricilerin ve kullanıcıların en çok dikkat etmesi gereken konuların başında geliyor. Veri sızıntıları, kötü amaçlı saldırılar ve güvenlik açıkları, hem kullanıcılarınızın güvenini sarsabilir hem de uygulamanızın itibarını zedeleyebilir. İşte mobil uygulama güvenliği için uygulamanız gereken en iyi yöntemler:

1. Veri Şifreleme Kullanın

Kullanıcı verilerini ve hassas bilgileri şifrelemeden saklamak büyük bir risk oluşturur. Hem aktarım sırasında (in-transit) hem de saklanırken (at-rest) verilerinizi şifreleyin.

  • Android’de SharedPreferences Şifreleme Örneği:
val masterKey = MasterKey.Builder(context)
    .setKeyScheme(MasterKey.KeyScheme.AES256_GCM)
    .build()

val sharedPreferences = EncryptedSharedPreferences.create(
    context,
    "secret_shared_prefs",
    masterKey,
    EncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV,
    EncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM
)

sharedPreferences.edit().putString("API_KEY", "sensitive_data").apply()
  • iOS’te Keychain Kullanımı:
let query: [String: Any] = [
    kSecClass as String: kSecClassGenericPassword,
    kSecAttrAccount as String: "API_KEY",
    kSecValueData as String: "sensitive_data".data(using: .utf8)!
]

let status = SecItemAdd(query as CFDictionary, nil)
if status != errSecSuccess {
    print("Keychain'e kayıt eklenirken hata oluştu")
}

2. HTTPS ve Sertifika Doğrulaması

API iletişimlerinizde mutlaka HTTPS kullanın ve sertifika doğrulamasını atlamayın. Retrofit veya Alamofire gibi kütüphanelerde güvenli yapılandırmalar yapın.

  • Android’de OkHttp ile Sertifika Doğrulama:
val certificatePinner = CertificatePinner.Builder()
    .add("api.yourapp.com", "sha256/YourPublicKeyHashHere")
    .build()

val client = OkHttpClient.Builder()
    .certificatePinner(certificatePinner)
    .build()

3. Kod Karıştırma (Obfuscation) ve Minification

APK veya IPA dosyanızı tersine mühendisliğe karşı korumak için ProGuard (Android) veya Swift Obfuscator (iOS) gibi araçlarla kodunuzu karıştırın.

  • Android’de ProGuard Etkinleştirme:
android {
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}

4. Güvenli Kimlik Doğrulama

Kullanıcı oturumlarını yönetirken:

  • JWT (JSON Web Token) kullanıyorsanız, token’ları güvenli şekilde saklayın.
  • Çok faktörlü kimlik doğrulama (MFA) desteği ekleyin.
  • Oturum sürelerini makul bir süreyle sınırlandırın.

5. Düzenli Güvenlik Testleri Yapın

  • Static Application Security Testing (SAST): Kodunuzdaki güvenlik açıklarını tespit edin.
  • Dynamic Application Security Testing (DAST): Çalışan uygulamanızı test edin.
  • Penetrasyon Testleri: Uygulamanızı bir saldırgan gözüyle test edin.

6. Üçüncü Parti Kütüphaneleri Kontrollü Kullanın

Kullandığınız harici kütüphanelerin güncel ve güvenilir olduğundan emin olun. GitHub’daki bağımlılıklarınızı Dependabot gibi araçlarla takip edin.

7. Root/Jailbreak Tespiti

Uygulamanızın root/jailbreak yapılmış cihazlarda çalışmasını engelleyin veya kısıtlayın.

  • Android’de Root Tespiti:
fun isDeviceRooted(): Boolean {
    val buildTags = android.os.Build.TAGS
    return buildTags != null && buildTags.contains("test-keys") ||
        File("/system/app/Superuser.apk