27 Mayıs 2014 Salı

Link Shim - Facebook Kullanıcılarını Kötü Amaçlı Linklerden Korumak

Facebook site entegrasyon ekibinin üyesi olarak ilk amacım kullanıcıalrı spam veya kötü amaçlı yazılımlardan korumak. Site Entegrasyon Ekibi bu mücadelede bize yardımcı olamsı için bir çok güçlü araç üretti. En önemli araçlardan birise 2008'de yazılan "link shim" olarak adlandırılan sistem. Lİnk shim'in çalışma mantığı şu şekildedir: sitede her link tıklandığında link shim URL adresini kendi içinde bulunan kötü amaçlı url listesinde kontrol eder. Bu listenin içerisnde McAfee, Google, Web of Trust ve Websense'in de listeleri vardır. Eğer url adresinin zararlı olduğunu tespit edersek, hedef sitenin zararlı olabilieceğini gösteren bir ara sayfa gösteriyoruz. Bu ara sayfanın amaçlarından bazıları şunlardır:

İnsanları Korur

Emin olduğumuz (yada şüphelendiğimiz) websitesinin spam veya kötü amaçlı olup olmadığından emin olamlıyız. Tıklama olduğu andan itibaren, çok yönlü bir sınıflandırma yapıyor. Bize ait listenin yanında başka kaynakların kara listesini de geziyor.

Gizliliği ve Kimliği Korur

Bazen facebook'da bulunan URL ler kendi kendine özel içerik barındıryor olabilir. Örneğin, zaman tünelinizde bir çok url bulunabilir. link shim olamdan zaman tünelinizde bulunan bir linke tıkladığınızda tarayıcınız referrer'a 3. taraf site oalrak gönderebilir. linke kime tıkladğı belli olur.

Şuanda, 3üncü taraf gördüğünde bilgileri sızdırmayacak şekilde Url'lerimizi randomize etmek uygulanabilir değil. Bu yüzden link shim'in adres defterini referrer olarak kullanıyoruz.

Çalışma Mantığı Nasıldır?

Peki gerçek te link shim nasıl çalışır? Bu facebook.com/l.php veya facebook.com/l/ ile sonuçlanan son noktadır. İki parametre ile çalışır. (1) Url yönlendirme (2) user-specific hash (kullancıya özel hash). Bu hash olmadan herşey güzel çalışabilirdi. tabiki url in güvenli olduğunu varsayarak url yönlendirseydik. Yine de, user-specific hash'i dahil etemden "open redirector" oalrak adlandırılan bir güvenlik koridoru oluşturabiliyoruz. Rastgele seçilmiş URL'ler yönlendiren bitiş noktası kötü amaçlı linkler tarafından patlatılabilinir. Facebook.com url'ini görülürse, URL in kendi yönlendirmesi oladan sayfaya gğvenmeliler.

Open redirector'dan kaçınmak adına kullancıya özel olan her bir link shim url'i için hash üretiyoruz. Sonra, kullanıcı ara link shim sayfasını doldurunca, hash'in kullanıcı için uyumlu olup olmadığını kontrol eder. Eğer uyumlu ise, kullanıcıyı siteye göndeririz. Eğer değilse uyarı sayfası şu şekilde çıkar.

Good UX

Daha basit bir kullanıcı tecrübesi için, bu link shim linklerini doğrudan siteye ayzmak istemedik. Eğer yapsaydık, linkin üzerine gelindiğinde broser hedef bağlantıyı değil facebook bağlantısını gösterirdi. Bunun üstesindne gelmek için, Lİnki moıdifiye etmeye yarayan onmousedown handler yükledik. Eğer kullanıcı javascirpti kapatırsa bu url'i görebilir.

Related Posts:

  • Laravel Dil DosyasıLaravel projelerinde kullanabileceğiniz, özellikle validasyon yapımında işinize yarayacak dil dosyalarını bu linkten bulabilirsiniz. İçinde Tükçeden Arapçaya bir çok dil mevcut. Yetkilendirme uyarıları, sayfalandırma uyarıla… Read More
  • CSS3 ve Getirdiği YeniliklerSunum, reklam, pazarlama gibi ögelerin öne çıktığı günümüzde web tasarımcıları da kendi yeteneklerini sanal ortamda daha fazla görselleştirme çabası içinde. Daha karmaşık kodları en kısa ve öz biçimde yazarak zihinlerinden ge… Read More
  • Javascript Nesne ( OBJE ) Hakkında Herşeyİleri düzey javascript kodlamada en çok ihtiyaç duyulan Objeler yani nesneler bir kaç farklı yapıya ayrılır. Genel türleri Number, String, Boolean, Undefined ve Null iken diğer adları complex data type (karmaşık veri tipi), t… Read More
  • Php İle KombinasyonPhp ile kombinasyon oluşturmak için önce değerleri bir dizin içine alın sonra dizindeki toplam değer sayısınının karesini almanız yeterli olacaktır. Geri kalan işi for döngüsü içerisinde halledebilirsiniz. $words = array('ke… Read More
  • jQUERY İle Progress Bar Yapımı html yapısı <div class="progress-bar">     <div class="progressing" data-rate="67"></div> </div> iki div açtık. birinci div konteynır  görevi görecek. ikinci div ise progress il… Read More

0 yorum:

Yorum Gönder