Twitter Reverse Engineering

Merhaba arkadaşlar,

Bugün biraz Twitter‘ı kurcalayım dedim. Bir kaç şey gözüme çarptı. Biliyoruz ki twitter tamamen Server-Side JS ile çalışıyor ve tamamiyle API hizmetleriyle iletişime geçiyor. Twitter, her birinizin bütün click eventlerini nasıl topladığını inceleyeceğiz. Yani twitterda hangi elemente tıkladığınızı, hangi sonuç döndüğünü, nereden gelip nereye tıkladığınızı saniye saniye logladığını göreceğiz.

İşin detay kısmına girelim;

Browser Network Sniffer ile Request ‘leri inceliyoruz.

scribe” adlı bir POST methodu dikkatimizi çekiyor. Detayına inelim;

Test olarak en az 10 defa rastgele elemanlara tıkladım (Div, link, span vs… [İçeriği boş elemanlar dahil]). Form Data olarak Javascript bütün verileri toplamış ve twitter.com/scribe adresine POST etmiş. Peki Form Data‘larda neler var ?

Görmüş olduğunuz gibi tıklanan elemanın içeriği, ID’si zamanı, hangi browserdan ve cihazdan tıklandığı, Olay adı ve enterans bir şekilde görülen “noob_level” :) gibi bir çok veri içeriyor. En önemlilerinden biri de woeid ile Location bilgisinden tıklanan bölgeyi ve TT ‘deki yeri çekiyor. “23424969” ile Türkiye bölgesinden tıklanıldığı görülüyor.

Peki dışarıdan aynı verileri değiştirerek “POST” methodunu uygulasak :) Hemen deniyoruz…

Evet dışarıdan normal bir POST methodu ile “POST-Body” kısmına yazdığım JSON kodlarını kabul etti. Bir kaç verileri değiştirerek göndermeyi denedim ve yine kabul etti :) Bu demek oluyor ki İstatistik olarak Twitter bu verileri karşılaştırıyor. Büyük ihtimal Log servisinde JSON‘da ki hiç bir parametreleri kontrol etmemişler.

Genel olarak düşündüğümüzde Twitter bunları Log ve analiz için almış olabilir. Ama saniyede kaç trilyon işlem yapılıp POST işlemi gerçekleştiriliyor onu da high scalability’ciler düşünsün :)

Twitter Reverse Engineering ‘in devamı gelecektir.

 

2 thoughts on “Twitter Reverse Engineering

Leave a Reply

Your email address will not be published. Required fields are marked *