Facebook'u Proxy Olarak Kullanma

Geçenlerde Facebook'un siteler için kullandığı og tagı ile araştırma yaparken ilginç bir durumla karşılaştım.Facebook bu kodlar için ufak bir debugger yapmış.Bu araç ile og taglarını analiz edebiliyorsunuz.Buraya kadar herşey normal.Ancak bu debugger'ın bir ozelliği olan sayfayı tarama ozelliği maniple edilebilecek cinsten.Buna gore yazdığınız sitenin kaynak kodlarını Facebook sizin yerinize çekip ekranınıza basıyor.Boylelikle bu araç ufak amaçlar için proxy olarak kullanılabilir.Bunu duşundukten hemen sonra internete bu konu ile daha once çalışma yapılmış mı diye baktığımda sadece birkaç yerde bu konudan bahsedilmiş.Hatta ufak bir scrapper orneğide yazılmış.

Facebook as a proxy

Kullanılan araç burası.Siteye girip anonim olarak bakmak istediğiniz siteyi yazın.Daha sonra Debug butonuna basın.Gelen sayfanın en altına yer alan Scraped Url linkine bastığınızda o sayfanın kaynak kodlarını ekranda goreceksiniz.

Yani bu aracı aşağıdaki linkteki www.halitalptekin.com yerine kullanmak istediğiniz sitenin adresini yazarak kullanabilirsiniz.

https://developers.facebook.com/tools/debug/og/echo?q=www.halitalptekin.com
  • Bu araç ile GET istekleri gonderip sayfaların HTML kodlarına bakabiliriz(Guvenliği olmadığını duşunduğunuz sitenin kaynak koduna bakıp daha sonra girebilirsiniz)

  • Ufak kodlar yazarak istediğimiz sitenin dizin ve dosyalarını listeleyebiliriz.(File and Directory Crawling)

  • Ama bu araç ile POST istekleri gonderemeyip, çerezler uzerinde değişiklik yapamayız.Bir de bu aracı kullanmak için giriş yapmak zorundayız.

Bu aracı direk olarak kodlarımıza ekleyerek kullanmanın yanında webserver(Tornado,Django vb) kurarak buradan çektiğimiz kodları tekrardan render edip sayfaya basabiliriz.Boylelikle gerçek bir proxy elde etmiş oluruz.Ben urllib2 kullanarak sayfadan veriyi çekip(cookie gondermeden olmaz) bunu parse ettim ve gereksiz kodlardan temizledim.Daha sonra da tornado web server kullanarak tekrardan render edip ekrana bastım.Şu anlık gayet guzel çalışıyor.Belki ileride bunun da paylaşımını yapabilirim.

comments powered by Disqus