Bir belediye uygulamasının anatomisi ve tersine mühendislik!

Katılım
4 Temmuz 2017
Mesajlar
7.554
Makaleler
6
Çözümler
137
Yer
Izmir
Proxyman ile belediye uygulamalarını kullanmak çok hoş oluyor, ne kadar güvensiz inşa edildiklerini görebiliyorsunuz. Eğer hatam yoksa 24 saatlik tokenlar ile otobüslerin koordinatları veriliyor, 24 saat aralıkla da kafanıza göre yeni token alabiliyorsunuz. Bunu otomatikleştirip kendi sunucunuzda bir kopya API oluşturarak belediyenizin servislerinden yararlanabiliyorsunuz. Ahoy!

Nasıl yaptığıma gelirsek, Mac'te iPad destekleyen bazı uygulamalar indirilebilir oluyor, M1'den dolayı. Bu uygulama da onlardan birisiydi, indirip oynamaya başladım.


Öncelikle "uygulamaurli/token" adresine bir istek gönderiliyor, 86399 saniye (24 saat'e denk gelmekte.) süreniz oluyor. Masa 13'ü 24 saatlik açtırmış oluyorsunuz
Zaten 24 saat sonra işe yaramayacak bur token, dolayısıyla 24 saatte bir token almanız gerek. O token'ı almak için de bu gönderilen isteği kopyalayıp 24 saatte bir tekrar göndermeniz yeterli.

Her cihaza özel bir ID var anladığım kadarıyla, onunla gönderiyorsunuz. Ardından, "access_token" özelliğini kopyalayıp dilediğiniz işlemi gerçekleştirmeye devam edebiliyorsunuz.

Örneğin, bir otobüs durağına yaklaşan otobüsleri görmek için "uygulamaurli/api/YaklasanOtobusler/duraknumarası" şeklinde bir istek gönderiliyor. Durak numarasını kontrol etmek için "uygulamaurli/api/DurakAra/duraknumarası" şeklinde istek gönderiliyor ve o durak var mı yok mu emin oluyor uygulama. Bu "duraknumarası" dediğim alan şehirdeki otobüs duraklarındaki tabelalarda yazan 5 haneli bir numara, örneğin 20063, Karşıyaka'daki bir durağa denk geliyor. "duraknumarası" yerine 20063 giriyoruz ve "access_token"ımızla bu işlemi rahatça gerçekleştiriyoruz. Ancak unutmayın, bunu otomatik yenilemeniz gerek. Her token 1 gün sürelendirilmiş. Ardından reddedileceksinizdir.

Örneğin bu, duraktan geçen otobüs numaraları, durak koordinatları, durak numarası, durak adı gibi bilgileri görüyoruz ve bu durağın varlığından emin oluyoruz.

Şimdi, zurnanın "ZART!" dediği yere geliyoruz!..

Size anlattığım şeyler zaten İzmir belediyesinin Açık Veri projesi portalı ile sunduğu şeylerdi. Bu verileri kullanarak hazırladığım uygulamaya GitHub - efe3535/eshot-react-native: Izmir'deki otobus duraklarini arayabilen, konuma en yakin duragi bulabilen bir mobil uygulama. linkinden ulaşmanız mümkün, bu açık veri servisinin nasıl çalıştığını inceleyebileceğiniz dökümanı da bırakıyorum:

Zurnanı zart dediği yer şu, açık veri kısmında gerçek zamanlı olarak otobüslerin bulunduğu koordinatlar yani resimde gördüğünüz:

Bunlar bulunmuyor, bunları belli aralıklarla çekerek uygulamanızda oluşturduğunuz haritada otobüslerin konumlarını gösterebilirsiniz.

Bir diğer Açık Veri portalında bulunmayan özellik ise ilgili durağa otobüsün gelmesine kaç durak olduğu. Bu bilgi de bulunmuyor Açık Veri'de.

Ayrıca, bir uygulama üzerinden eklenen İzmirimkart bakiyesini görebiliyorsunuz, fakat bunu paylaşmam uygun olmayacaktır.

Şu anda üzerinde çalışıyorum bunların, biraz daha fikir sahibi olup 24 saatten uzun bir süre (token muhabbeti) test ettikten sonra bunları belediye ile paylaşacağım, sitedeki öneri / şikayet kısmından.

Buraya kadar gelen varsa; gözlerine sağlık, teşekkürler. Okuduğunuz için teşekkür ederim.
 
Son düzenleme:
Cok guzel olmus ellerinize saglik. Bunu iletmeniz durumunda hediye vereceklerini dusunuyorum.
Onlara tehlike sağlayacak bir şey yok, otobüs konumlarını risk olarak görmüyorlarsa.
Proxyman sanırım sadece Mac ve Windows için var, acaba Wine ile çalışıyor mu?
Alternatifi var. Linux'ta bunu kullanıyordum:
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…