Last updated on 24 Şubat 2020
not: “Mobil yazılımda performans arttırma” adlı blog yazımı da hazırlamaktayım.
Adım 1- PROGUARD
Java’nın JVM ile çalışma mantığına az çok hakimseniz bilirsinizki compile edilince dex adlı bir dosya ortaya çıkıyor. Bu dosyaya reverse engineering(Tersine Mühendislik) yapılarak java kodlarına tekrar ulaşabilirsiniz.
Android üzerinde de bu geçerlidir. Evet çalışan bir APK dosyasının kodlarına bakabilirsiniz. Üstelik çokta zor değil. Bunu online yapan siteler var fakat en çok beğendim açık kaynak kodlu olan jadx . Birkaç küçük apk atıp deneyin. Fazla basit olduğunu fark ediceksiniz. Bu durumda ProGuard devreye giriyor.
ProGuard sınıf, değişken ve fonksiyon isimlerini random yapar. Yani kodların işlevi bozulmadan anlaşılmayacak hale getiriyor.
Adım 2 – WEB SERVİSİNİZDE SSL KULLANIN
Birazcık HTTP protokolü hakkında bilgi sahibiyseniz 3.parti yazılımlar sayesinde lokal ağınız üzerinden internet’e çıkan verilerinizin ne kadar kolay izlenebileceğinizi biliyorsunuzdur. Ancak araya SSL sertifikası girdiğinde gönderilen veriler hiç bir şekilde izlenemez.
Adım 3 – WEB SERVİSİNİZDE DOĞRU TEKİL VERİ KULLANMAK
Adım başlığında gayet açık olduğunu düşünüyorum ancak biraz daha açacak olursak web servisine veri gönderirken / alırken aradaki bağlantının Android app’inizin decompile edilip nasıl yapılacağını öğrenip bot yazabilirler.Bu durumda eğer aradaki bağlantı kısmında ayrıştırıcı olarak basit bir değer (id vb.) verilirse sıkıntı çıkabilir bu yüzden key tarzı bir veri kullanırsanız iyi olur.
Adım 4 – Kullandığınız kütüphaneleri iyi araştırın
GitHub üzerinde iyi olduğu kadar kötü kütüphane de var. Kötü’den kastım birçok açıdan olabilir. Mesela Android 5’ten sonra izinleri ekranda istemeye başladı, bunu istemek android’in saf kodlarında biraz sıkıntılı o yüzden kütüphane kullanıyoruz genelde. Bu ihtiyacımızı karşılamak için 100’lerce kütüphane var. Issue’s lerinde çok fazla açık olan ve yıldız sayısı az olanları olabildiğinde az tercih etmek gerek. Bunun nedeni ya çökerse? veya rehber iznini alınca kullanıcın rehber datasını kendi sunucusuna çekerse ?
örnekler çoğaltılabilir…
Adım 5 – Native tercih edin
Birçok nedenden dolayı hybrid sistemler native sistemlerden çok daha fazla güvenlik zaafiyeti barındırıyor. Platforma özgü dahili güvenlik özelliklerini sonuna kadar kullanabilmeleri sebepler arasındadır. Ayrıntılı araştırılması gerekiyor.
Adım 6 – Yerel veri depolaması
Local veritabanlarınızı tuttuğunuz yerde mutlaka bir şifreleme kullanın.