27 Mayıs 2014 Salı

Gizliliği Referrers ile Korumak

Geçen hafta Wall street muhabirlerinden biriyle yaptığımız görüşme sonucu reklamlcılarımızın bir takım istenmeyen sorunla karşılaştığımı farkettik. Bu hata reklama tıklandığında gözükmekte.

Ufak bir hatırlatma: bazı durumlarda referrer ziyaret ettiğiniz profilin kullanıcı id'sini ve sizinkini alır. fakat reklama tıklandığı zaman referrer da user IDyi tespit etmenin bir yolu olduğunu fark etmedik. User id'yi referrerdan komple kaldırmak için farklı testler yaptık.

Fakat nadiren oluşan durumlarda Facebook Urlinin yapısı hakkında reklamcı bilinirliği reklama tıklayan kişinin kendi profiline bakıp bakmadığını tespit etmek için referrer kullanılır. bu şeklilde, potensiyel olarak o kişinin user id'sini çıkartmak mümkün. hiç bir reklamcının bunu yaptığına ihtimal vermiyoruz ve bunuı yapmak bizim kurallarımıza aykırıdır.

Ayrıca kişisel bilgileri reklamcılarla paylaşmadğımızı söylemekte fayda var. ve satmıyoruzda. sadece reklamcılar ne tarz kullanıcalara ulaşmak istediklerini seçebiliyorlar.

sektünde ilerisnde bir şeyler yapmak istiyoruz. Artık web tarayıcılar linkleri dış bağlantılı websitelerine (reklamcılar dahil) göndermeden önce referrer linklerden user Id leri komle kaldırdık. son bir kaç ayır bu değişiklikle uğraşıyoruz. Firefox, Chrome, Safari ve Opera'da çalışıyor. İnternet explorer içinse halen bir çözüm arıyoruz.

Aşağıda yapıtğımız değişiklilklerin teknik detaylarını açıkladık ki diğer websiterleri diğer websiteleri eğer isterlerse user id'yi referrer linklerden kaldırsınlar.

Teknik Uygulama

Facebookta insanların sitemizle ve internetin geri kalan kısmıyla nasıl bir etkileşim içinde olduklarını anlıyortuz. Trajik yazım hatasına rağmen, HTTP standard'ının browser tarafından gönderilen "referrrer" header'ı wensitesine kullanıcının onları nasıl bulmak istediklerini saklayan bilgiyi verir.

Referrers: her zaman iyi karşılamazlar

fakat bazen referrerlar doğru yerde olmaz. belkide URL'de kiritk bir veri olduğu için yada site kullanıcının verileri görmesini istemez. Bir çok browser kullanıcıya bu özelliğ kapatmak için seçenekte verirken, kimse de yapmaz ve bir websitesinin browser'a referrer göderme demesininde yolu yoktur.

Kullanıcılarımız bilgilerini korumak adına dış bağlantıalrdan da korumaya çalışıyoruz. Bunun için aşağıdaki öselliklerle çalışan bir redirector yaptık. redirector'un yapması gerekenler:

- her türlü durumda redirect edebilmeli
- kullanıcın tıkladığı sayfanın referrer'ını kaldırmalı
- Facebook.com'da tıklamayı iletmek
- açık bir redirector olmamalı

Bunları güvenli bir şekilde oluşturmak için cross-browser yöntemi tek yöntem değildir. Bu yyüzden bunu açacağız.

Arkladaşlarımız, Web Sayfaları

Bu tartışma amacıyla alttaki 3 web sitesini refer edeceğiz.

A.com/source
A.com/redirect
B.com

Varsayalım ki kullanıcı A.com/source içeriğğine bakıyor ve B.com'a gideceğini belirten bir linke tıklıyor. A.com kullanıcıyı B.com'a öyle bir şeki,lde göndermeyi planlıyoruki B.com kullanıcın A.com'dan geldiğini bilsin. Fakat kullanıcın direkt A.com/source'dan gelidğini gizlemeli. Bu yüzden kullanıcıyı direk B.com'a göndermek yerine kullanıcıyı önce A.com/redirect sayfasına gönderiyor. Bu ekstra adımın bazı yararları var. B.com'un kötğ amaçlı bir yazılım olup olmadığını kontrol edebiliyor. fakat biz buna şimdi değinmicez.

So how can we make this happen? There are number of approaches, each with its own advantages and disadvantages. You can see each approach outlined in the following table, and discussed in detail below it.

Peki bunu nasıl yapıcaz. Bununla ilgili bazı yaklaşımlar mevcut her biri kendi avantajına sahip. alttaki tabloda yaklaşımın taslağını görebilirsiniz.

The 302

En basit yöntem HTTP 3012 Foun response dur ki bir çok browser kullanıcın A.com/source dan geldiğini gösterir.

PHP code:

header('Location:http://B.com’);

Yenilemek

Yönlendirmenin en basit yolalrında biride HTTP 200 response'dur. HTTP Refresh header ise "Refresh:0;URL=http://B.com" şeklindedir. Bu tip yönlendirmenin sonuçöları her browserda farklılık gösterir.

- Firefox, ve Internet Explorer (IE)'de bu tip yönlendirmeler B.com'a gönderilen referr'In blank olmasına neden oalcaktır. Gizlilik için iyidir fakat B.com'un trafiğin nereden geldiğini anlaması adına kötü.

- Opera ve webkit browserlarının (Safari, Chrome, iPhone, ve Android) bu gibi yönlendirmeleri ise mükemmel sonuçlanır. "a.com/redirect" being sent as the referrer to B.com - perfect!

PHP code:
header(‘Refresh:0;URL=http://B.com’);

Meta Yenileme

HTML code:

< meta http-equiv="refresh" content="0;URL=http://B.com" />

Document.location.replace()

Biraz daha trick yapalım. varsayalım ki kullanıcın browser'ı Javascript'i desteklesin, biz HTTP 200 response gönderebilelim ve bir javascirpt kodu 'document.location.replace('http://B.com');' oalrak yanıt versin. bu tip bir yönlendirme bile farklı sonuçlar verir.

***kaynağını hatırlayamadığım bir haber sitesinden çeviridir***

0 yorum:

Yorum Gönder