Merhaba,
Bu yazımda sizlere 2 eScooter girişiminin daha yazılım teknolojisi altyapısını anlatacağım.. Daha önce bildiğiniz gibi MARTI ve BİNBİN i anlatmıştım.. Burada da yazı içinde ve sonunda onları karşılaştırma içine koyacağım..
Bunlardan biri DOST diğeri ise PALM..
DOST ve PALM tamamen native Android Java ile yazılmışlar.. DOST kodlarını neredeyse hiç obfuscation yapmamış PALM ise çok az yapmış.. Şimdi önce DOST a bakalım sonra PALM a bakarak karşılaştıralım..
DOST uygulama başlar başlamaz bir app objesi oluşturuyor ve içinde user ve token objeleri var.. Daha önce incelediğim BİNBİN de kullanıcı token ı yoktu.. TOKEN dediğimiz aynen bir unique değer olan bitcoin adresi gibi bir değer.. Bunu ilk giriş yaptığında o kullanıcı için oluşturuyor ve hem bir cookie gibi kullanıcının cihazında tutuyor hem de kendi veritabanında.. Bunu tamamen security açısından yapıyor.. Dolayısı ile BİNBİN buradan kaybediyor.. DOST da bu iş çok alenen yapılıyor ve token dolu da olsa boş da olsa problem yok çalışıyor.. Ancak veritabanı tarafında token bazlı yani kişi bazlı engelleme koyarsalar sadece bu kullanıcı erişebilir ve sisteme sızmak çok çok zorlaşır hatta imkansıza yakın hale gelir.. Yapın bunu !.. Bir de INTERCEPTION kullandık ya güvenlik tamam diye düşünmeyin olmaz mı ?
DOST un API uç noktaları çok açık görünüyor..
PALM de ise çok ilginç bir güya gizleme ! yapılmış.. Bizim so uzantılı C++ shared derlenmiş kütüphanelerimiz olur Android de.. İşte bunlardan birinin içine gizlemiş ve sisteme önce yükledikten sonra getsecrets isimli bir metodla bu değerleri buradan okuyor.. Siz bunu okuyabilir misiniz.? Eğer buradan farklı karmaşık bir yapıda so dosyasına koysaydı evet zor ama Android uygulaması yapıp aynı package isimleriyle bu so dosyasını da koyup derleyip çalıştırıp okuyabilirsiniz.. Ama buna dahi gerek kalmıyor bazan !.. Neyse sonuçta içindeki API nin sadece bir tek uç noktasını ve KRİPTOLAMA seçeneklerini görüyorum !.. Aman Allahım kriptolama da yapmışlar.. Bravo diyorum..
DOST a dönersek API ve yanında APICLIENT, SERVICE ler ve tabii INTERFACE ler hepsi görünüyor. Hangi servise bağlanmak istersem küçük bir program yazıp aynı yapıyı kurup kolayca bağlanabiliyorum !.. Kötü yani..
PALM ise biraz uğraştırıyor.. Üstte DOST un yapısı yerine bir APIMETHOD enum ı içine metodları gömmüş hem de ne gömmek.. Burada anlatsam kafanız karışır.. Örneğin aynı işi kredi kartı için enum yaparak içeride RegEx pattern leri ile kart no girişinde kontrolü kolayca yapıyor arkadaşlar.. Ancak APIMETHOD da ki enum oldukça karışık.. Toplam 26 adet metod var.. ve class ları runtime da istenilen request neyse ona göre kod içinden reflection benzeri yöntemle ulaşıp işlem yapıyor.. AAA tamam ya ben uç noktayı ve metodu biliyorum derseniz ilgili kodları yazıp veritabanından veri OKUYAMAZSINIZ ona göre.. Dedim ya kriptolama var.. APIMETHOD enum ı içindeki her bir parça içinde aynı zamanda metod classları ve parametreler var. Buna göre işlem yaparsanız ki azıcık kasıyor o zaman verileri okumak mümkün isterse bilmem ne kriptosu bilmemne sertifikası olsun ..
Sonuç olarak;
En iyi kod karıştırma MARTI da.
En iyi Token kullanımı PALM ve hemen arkasından MARTI geliyor..
MARTI, DOST ve PALM native Android Java kodlamışlar 8-10 MB toplam paket. BİNBİN cross platform xamarin ve doğal olarak C# ile yazmış.
DOST ve PALM kodlarını mutlaka obfuscation yapmalı yani kod karıştırma yapmalı..
Tümü mutlaka security konusuna eğilmeliler.. Hepsinin açıkları var.. Umarım burayı okuyup bunları yaparlar..
Bunun yanında ben yazılımı tanıtıyorum diye cihazıma yükleyip test yapmadım.. Onu başkaları yapsın.. Dolayısıyla bug olur yazılım patlar vb ben bunlara bakmıyorum..
Artık Scooter kelimesini duymak istemiyorum.. Yoruldum..
Hepinize sağlık dolu günler diliyorum..
Selcuk Celik
Bunlar yerine full stack developer olmak lazım hocam. Amerikada full stack developer olmak lazım. Görüntü işlemede olabilir.
Full stack developer lık şirketlerin tek kişiyi her işte kullanmak için icat ettiği sömürü araçlarından biri.. Zaten yıllardır ülkemizde bu tip çok fazla özellik ararlardı ve ismi daha yeni full stack oldu.. Gerçek full stack developer ı kolay kolay bulamazsınız.. öyle react, 2 tane api bağlantı biraz nodejs vs bilmekle olmaz o iş.. zaten geçmişte de bizim insanlarımız birden fazla yeteneğe sahiptiler.. ABD veya buradaki geliştiriciler arasında çok fazla fark yok.. Önemli olan detaylar var…
Selçuk bey merhaba bu konudaki tecrübelerinizi bildiğim için söylüyorum Şişli Beşiktaş başakşehir civarında tazı scooter Adında bir firma çıktı üç aydır piyasadalar sistemlerinde bazen sorunlar ortaya çıkıyor normal ödeme yöntemlerinden farklı olarak İyzico yerine paycell kullanıyor müsait bir zamanınızda incelemenizi isterim iyi çalışmalar