Birçok kuruluşun brandx.site
ve fly-brandx.site
gibi farklı alan adlarına veya example.com
, example.rs
, example.co.uk
gibi farklı ülkelere ait alan adlarına sahip ilgili siteleri vardır.
Tarayıcılar, web'deki gizliliği iyileştirmek için üçüncü taraf çerezlerini kullanımdan kaldırma yönünde ilerliyor. Ancak bu tür siteler, alanlar arasında durum bilgisini yönetmeyi ve bu duruma erişmeyi gerektiren işlevler (ör. tek oturum açma ve izin yönetimi) için genellikle çerezlerden yararlanır.
Birinci Taraf Gruplar, aynı tüzel kişiliğe ait ve aynı tüzel kişi tarafından işletilen ilgili alan adlarının, birinci taraf ve üçüncü taraflara farklı şekilde muamele edildiği durumlarda birinci taraf olarak değerlendirilmesine izin verebilir. Birinci taraf grubundaki alan adları aynı taraf olarak kabul edilir ve aynı taraf bağlamında ayarlanması veya gönderilmesi amaçlanan çerezleri etiketleyebilir. Burada amaç, geçerli kullanım alanlarını ihlal etmeyen bir yol sürdürürken üçüncü tarafların siteler arası izlemeyi engellemek arasında denge kurmaktır.
Birinci Taraf Grup teklifi şu anda test aşamasındadır. Nasıl çalıştığını ve nasıl deneyebileceğinizi öğrenmek için okumaya devam edin.
Birinci taraf ve üçüncü taraf çerezleri arasındaki fark nedir?
Çerezler, doğası gereği birinci taraf veya üçüncü taraf değildir. Çerezler, çerezin dahil
edildiği mevcut bağlama bağlıdır. Bu, cookie
üst bilgisindeki bir istekte veya JavaScript'te document.cookie
aracılığıyla gerçekleşmiştir.
Örneğin, video.site
sitesinin bir theme=dark
çerezi varsa video.site
ürününe göz atarken video.site
için istek yapıldığında bu aynı site bağlamı olur ve dahil edilen çerez birinci taraf olur.
Bununla birlikte, video.site
için iframe oynatıcı yerleştiren my-blog.site
üzerindeyseniz my-blog.site
sitesinden video.site
sitesine istek yapıldığında bu, siteler arası bağlam ve theme
çerezi üçüncü taraf olur.
Çerez ekleme, çerezin SameSite
özelliği tarafından belirlenir:
SameSite=Lax
,Strict
veyaNone
ile yapılan aynı site bağlamı, çerezi birinci taraf yapar.SameSite=None
ile siteler arası bağlam, çerezi üçüncü taraf hale getirir.
Ancak bu her zaman net ve açık olmayabilir. brandx.site
adlı sitenin bir seyahat rezervasyonu sitesi olduğunu ve uçuş ile araç kiralama işlemlerini ayırmak için fly-brandx.site
ve drive-brandx.site
kullandıklarını düşünün. Bir yolculuk rezervasyonu sırasında, ziyaretçiler farklı seçeneklerini belirlemek için bu siteler arasında geçiş yapar. "Alışveriş sepetleri" seçimlerinin bu sitelerde aynı kalmasını beklerler. brandx.site
, siteler arası bağlamlarda izin vermek için kullanıcının oturumunu bir SameSite=None
çereziyle yönetir. Ancak kötü tarafı, çerezin artık Siteler Arası İstek Sahtekarlığı (CSRF) korumasına sahip olmamasıdır. evil.site
, brandx.site
için bir istek içerirse bu çerez de dahil edilir.
Çerez siteler arasıdır, ancak tüm bu sitelerin sahibi ve aynı kuruluş aynı kuruluş tarafından işletilir. Ziyaretçiler aynı kuruluş olduğunu anlar ve aynı oturumun, diğer bir deyişle, aralarında ortak bir kimlik olmasını ister.
Birinci Taraf Grup politikası
Birinci Taraf Grup, aynı tarafın sahip olduğu ve işlettiği birden çok sitede bu ilişkiyi açık bir şekilde tanımlamak için bir yöntem önerir. Bu işlem, brandx.site
ürününün fly-brandx.site
, drive-brandx.site
vb. ile birinci taraf ilişkisini tanımlamasını sağlar.
Çeşitli Özel Korumalı Alan tekliflerini destekleyen Gizlilik Modeli, siteler arası izlemeyi engellemek için kimliği bölümlendirme kavramına dayanır. Bu model, kullanıcıları tanımlamak için kullanılabilecek tüm bilgilere erişimi kısıtlayan siteler arasında bir sınır çizmektir.
Varsayılan seçenek, birinci taraf kullanım alanlarının çoğuna çözüm olan siteye göre bölümlendirme olsa da brandx.site
örneği, birinci tarafın birden fazla siteden daha büyük olabileceğini göstermektedir.
Birinci Taraf Grup teklifinin önemli bir parçası, tarayıcılar genelinde politikanın kötüye kullanımı veya hatalı kullanımı önlemesini sağlamaktır. Örneğin, Birinci Taraf Gruplar, alakasız siteler arasında kullanıcı bilgilerinin alışverişini veya aynı varlığa ait olmayan sitelerin gruplandırılmasını etkinleştirmemelidir. Buradaki fikir, Birinci Taraf Grubun bir kişinin birinci taraf olarak anladığı bir şeyle eşlenmesini ve kimliği farklı taraflar arasında paylaşma yöntemi olarak kullanılmamasını sağlamaktır.
Bir sitenin birinci taraf grubunu kaydetmesinin olası bir yolu, sitenin, önerilen alan adı grubunu tarayıcı politikasını karşılamak için gereken bilgilerle birlikte herkese açık bir izleyiciye (özel bir GitHub deposu gibi) göndermesi olabilir.
Birinci taraf grup onayı politikaya göre doğrulandıktan sonra tarayıcılar, güncelleme işlemi aracılığıyla grupların listelerini alabilir.
Kaynak denemesinin nihai olmayan tanımlı bir politikası vardır ancak ilkeler büyük olasılıkla aynı kalacaktır:
- Birinci taraf gruptaki alanlar aynı kuruluşa ait olmalı ve aynı kuruluş tarafından işletilmelidir.
- Alan adları, kullanıcılar tarafından grup olarak tanınabilmelidir.
- Alanlar ortak bir gizlilik politikasını paylaşmalıdır.
Birinci taraf grubu tanımlama
Kuruluşunuzun birinci taraf grubunun üyelerini ve sahibini belirledikten sonra, önerdiğiniz grubu onaya göndermek son derece önemli bir adımdır. Tam süreç hâlâ tartışılmaktadır.
Birinci taraf grup tanımlamak için üyeleri ve sahipleri listeleyen statik JSON kaynakları dahil edilen her alanın en üst düzeyinde /.well-known/first-party-set
adresinde barındırılmalıdır.
brandx
birinci taraf grubu örneğinde, sahip-alan adı https://brandx.site/.well-known/first-party-set
adresinde aşağıdakileri barındırır:
{
"owner": "brandx.site",
"version": 1,
"members": ["fly-brandx.site", "drive-brandx.site"]
}
Ayrıca grubun her bir üyesi, grubun sahibine işaret eden statik bir JSON kaynağı barındırır.
https://fly-brandx.site/.well-known/first-party-set
etkinliğinde:
{ "owner": "brandx.site" }
Ve https://drive-brandx.site/.well-known/first-party-set
adlı yerde:
{ "owner": "brandx.site" }
Birinci taraf kümeleri için birkaç kısıtlama söz konusudur:
- Her grubun yalnızca bir sahibi olabilir.
- Bir üye tek bir gruba ait olabilir, çakışma veya karışım olamaz.
- Üye listesinin nispeten kullanıcılar tarafından okunabilecek şekilde kalması ve aşırı büyük olmaması amaçlanmıştır.
Birinci Taraf Gruplar çerezleri nasıl etkiler?
Çerezler için eşleşen bileşen, önerilen SameParty
özelliğidir. SameParty
belirtilmesi, içeriğin bağlamı üst düzey bağlam olarak aynı birinci taraf kümesinin bir parçası olduğunda tarayıcıya çerezi dahil etmesini sağlar.
Yani, brandx.site
bu çerezi ayarlarsa:
Set-Cookie: session=123; Secure; SameSite=Lax; SameParty
Ardından, ziyaretçi fly-brandx.site
üzerindeyken brandx.site
adresine bir istek gittiğinde session
çerezi bu isteğe dahil edilir.
Birinci taraf grubunda yer almayan başka bir site (örneğin, hotel.xyz
) brandx.site
sitesine istek gönderirse çerez dahil edilmez.
SameParty
yaygın olarak desteklenene kadar, çerezler için yedek davranışı tanımlamak amacıyla bununla birlikte SameSite
özelliğini kullanın. SameParty
özelliğini, SameSite=Lax
ile SameSite=None
arasında bir ayar sağladığı için düşünebilirsiniz.
SameSite=Lax; SameParty
, desteklenen yerlerde aynı taraf bağlamlarını içerecek şekildeLax
işlevini genişletir ancak desteklenmiyorsaLax
kısıtlamalarına geri döner.SameSite=None; SameParty
, desteklenen yerlerdeNone
işlevini yalnızca aynı taraf içerikleriyle kısıtlar ancak desteklememesi durumunda daha kapsamlı olanNone
izinlerine geri döner.
Bazı ek şartlar vardır:
SameParty
çerezleriSecure
ürününü içermelidir.SameParty
çerezleriSameSite=Strict
içermemelidir.
Bu hâlâ siteler arası olduğundan Secure
zorunludur ve güvenli (HTTPS) bağlantılar sağlayarak bu riskleri azaltmanız gerekir. Benzer şekilde, bu da siteler arası bir ilişki olduğundan SameSite=Strict
yine de bir grup içinde sıkı bir şekilde site tabanlı CSRF korumasına izin verdiği için geçersizdir.
Birinci Taraf Gruplar için hangi kullanım alanları doğrudur?
Birinci Taraf Gruplar, bir kuruluşun farklı üst düzey sitelerde bir tür paylaşılan kimliğe ihtiyaç duyduğu durumlar için iyi bir eşleşmedir. Bu durumda paylaşılan kimlik, tam tek oturum açma çözümünden siteler arasında paylaşılan bir tercihe ihtiyaç duymaya kadar her şey anlamına gelir.
Kuruluşunuzun aşağıdakiler için farklı üst düzey alanları olabilir:
- Uygulama alanları:
office.com
,live.com
,microsoft.com
- Markalı alanlar:
amazon.com
,audible.com
/disney.com
,pixar.com
- Yerelleştirmenin etkinleştirileceği ülkeye özgü alan adları:
google.co.in
,google.co.uk
- Kullanıcıların hiçbir zaman doğrudan etkileşimde bulunmadığı ancak aynı kuruluşun sitelerinde hizmet sunduğu hizmet alanları:
gstatic.com
,githubassets.com
,fbcdn.net
- Kullanıcıların hiçbir zaman doğrudan etkileşimde bulunmadığı, ancak güvenlik nedeniyle mevcut korumalı alan alanları:
googleusercontent.com
,githubusercontent.com
Nasıl katılabilirsiniz?
Yukarıdaki kriterlere uyan bir site grubunuz varsa, çeşitli yöntemlerle katılabilirsiniz. Yapabileceğiniz en kolay yatırım, iki teklif hakkındaki tartışmayı okuyup katılmaktır:
Test aşamasında, --use-first-party-set
komut satırı işaretini kullanıp sitelerin virgülle ayrılmış bir listesini sağlayarak işlevselliği deneyebilirsiniz.
Chrome'u başlattıktan sonra aşağıdaki işaretle https://fps-member1.glitch.me/ adresindeki demo sitesinde bu işlemi deneyebilirsiniz:
--use-first-party-set=https://fps-member1.glitch.me,https://fps-member2.glitch.me,https://fps-member3.glitch.me
Geliştirme ortamınızda test yapmak veya birinci taraf grubunun çerezleri nasıl etkileyeceğini görmek için canlı bir ortamda SameParty
özelliğini eklemeyi denemek istiyorsanız bu yöntem faydalı olacaktır.
Denemeler ve geri bildirim için yeterli bant genişliğiniz varsa Chrome'da 89 ile 93 arası sürümleri kullanarak sunulan Birinci Taraf Gruplar ve SameParty için Kaynak Deneme'ye de kaydolabilirsiniz.
Kaynak denemesi için çerezleri güncelleme
Kaynak denemesine katılıyor ve çerezlerinizdeki SameParty
özelliğini test ediyorsanız dikkate almanız gereken iki kalıp vardır.
1. Seçenek
Öncelikle, SameSite=None
olarak etiketlediğiniz çerezleriniz olduğu halde bu verileri birinci taraf bağlamlarıyla kısıtlamak istiyorsanız bunlara SameParty
özelliğini ekleyebilirsiniz. Kaynak denemesinin etkin olduğu tarayıcılarda çerez, grubun dışındaki siteler arası bağlamlarda gönderilmez.
Ancak, kaynak denemesi dışındaki tarayıcıların çoğunluğu için çerez, her zamanki gibi siteler arası gönderilmeye devam eder. Bunu, ilerlemeye yönelik bir yaklaşım olarak düşünebilirsiniz.
Önce:
set-cookie: cname=cval; SameSite=None; Secure
Sonra:
set-cookie: cname=cval; SameSite=None; Secure; SameParty
2. Seçenek
İkinci seçenek daha fazla çalışma olanağı sunar ancak kaynak denemesini mevcut işlevlerden tamamen ayırmanıza imkan tanır ve özellikle SameSite=Lax; SameParty
kombinasyonunun test edilmesine olanak tanır.
Önce:
set-cookie: cname=cval; SameSite=None; Secure
Sonra:
set-cookie: cname=cval; SameSite=None; Secure
set-cookie: cname-fps=cval; SameSite=Lax; Secure; SameParty
Gelen isteklerde çerez olup olmadığını kontrol ederken, yalnızca dahil olan siteler kümede yer alıyorsa ve tarayıcı kaynak denemesindeyse siteler arası istekte cname-fps
çerezini görmeyi beklersiniz. Bu yaklaşımı, önceki sürümü kapatmadan önce güncellenmiş bir özelliğin eş zamanlı olarak kullanıma sunulması gibi düşünün.
Neden birinci taraf grubuna ihtiyacınız olmayabilir?
Çoğu sitenin site sınırı, bölüm veya gizlilik sınırını çizmek için kabul edilebilir bir yerdir. Bu, CHIPS (Bağımsız Bölümlü Duruma Sahip Çerezler) ile teklif edilen rotadır. Bu rota, sitelere Partitioned
özelliği üzerinden tercih etme rotasını sağlar. Bu rota, söz konusu kritik siteler arası yerleştirme, kaynak, API ve hizmetlere sahip olmaya devam eder ve kimlik bilgilerinin siteler arasında sızdırılmasını önler.
Sitenizin bir sete ihtiyaç duymadan iyi olabileceği anlamına gelen, göz önünde bulundurmanız gereken birkaç nokta daha:
- Barındırıcınız farklı siteler yerine farklı kaynaklar üzerinden yapılır. Yukarıdaki örnekte,
brandx.site
alanındafly.brandx.site
vedrive.brandx.site
varsa bunların tamamı aynı site içinde bulunan farklı alt alanlardır. ÇerezlerSameSite=Lax
kullanabilir ve herhangi bir ayar yapılmasına gerek yoktur. - Diğer sitelere üçüncü taraf yerleştirmeleri sağlıyorsanız. Giriş bölümünde,
video.site
sitesindenmy-blog.site
sitesine yerleştirilmiş bir videonun örneği, net bir üçüncü taraf dağılımına sahiptir. Siteler farklı kuruluşlar tarafından işletilmektedir ve kullanıcılar bunları ayrı varlıklar olarak görür. Bu iki site birlikte bir kümede olmamalıdır. - Üçüncü taraf sosyal oturum açma hizmetleri sunuyorsanız. OAuth veya OpenId bağlantısı gibi teknolojilerden yararlanan kimlik sağlayıcılar, kullanıcılara daha sorunsuz bir oturum açma deneyimi sunmak için genellikle üçüncü taraf çerezlerinden yararlanır. Bu geçerli bir kullanım alanı olsa da kuruluşlar arasında net bir fark olduğundan Birinci Taraf Gruplar için uygun değildir. WebID gibi ilk teklifler, bu kullanım alanlarını etkinleştirmenin yollarını arıyor.