Tarayıcının yüklediklerinden tek bir envanter oluşturun
Temsil edici sayfalarla başlayın: ana sayfa, açılış, detay, arama, sepet, ödeme, hesap ve kampanyalar. Chrome DevTools'ta temiz ve geri dönüş ziyaretlerini kaydedin. Tarayıcı kanıtını etiket yöneticisi, CMS eklentileri ve kod bağımlılıklarıyla karşılaştırın; tek bir görünüm enjekte edilen betikleri kaçırabilir.
Her satırda yalnızca URL değil, satıcı veya entegrasyon başına bir satır kullanın. İletişim kurduğu alan adlarını ve etiket ekleyip ekleyemeyeceğini yakalayın. Amacı savunabilecek ve kaldırmayı onaylayabilecek bir iş sahibi atayın. Kampanyalar, satıcı değişiklikleri, şablon sürümleri ve yeniden tasarımlar sonrasında yeniden kontrol edin.
Sayfa, yolculuk, satıcı alan adları, istekler, transfer boyutu, ana iş parçacığı işi ve test koşullarını kaydedin. Bir laboratuvar izi tanısal kanıttır, her ziyaretçi için mutlak bir vaat değildir.
Amacı, sahibi, rıza kategorisini, tetikleyiciyi, açığa çıkan verileri, bağımlılık sırasını, yedek planı ve gözden geçirme tarihini dahil edin.
Tutma, kaldırma ve bütçe kararlarını görünür kılın
Her sahibine entegrasyon kaybolursa neyin daha kötü olacağını sorun. Belirsizse, devre dışı bırakın veya kaldırın. web.dev, bütçeleri, işlev tekrarından kaçınılmasını ve gereksiz betiklerin temizlenmesini önerir.
Bütçe bir ekip kılavuzudur, evrensel eşik değil. Bayi ve sayfa bazında bayt, istek, ana iş parçacığı süresi ve yükleme zamanlaması için izinler belirleyin. Değişiklikle karşılaştırın. Sahipten izin içinde kalmasını, başka bir maliyeti kaldırmasını veya süresi dolacak bir istisna almasını isteyin. Karşılaştırılabilir yolculuklar ve kullanıcı merkezli metrikler kullanın.
Güncel amacı, sahibi tarafından kabul edilen maliyet ve veri kullanımını ve kabul edilebilir bir hata yolunu gösteren bağımlılıkları tutun.
Süre dolmuş pikselleri, yinelenen analitikleri, etkin olmayan sohbetleri, kullanılmayan deneyleri ve terkedilmiş eklentileri kademeli bir sürümle emekliye ayırın.
Nedeni, maliyeti, onaylayanı, telafi edici eylemi ve gözden geçirme tarihini kaydedin.
Gecikmiş yükleme yalnızca geç olduğunda güvenliyse yapılmalı
Yükleme davranışını kasıtlı seçin. Async, defer veya module davranışı olmayan klasik harici bir betik, HTML ayrıştırılması devam etmeden önce alınır ve yürütülür. async ile indirme paralel çalışır ancak yürütme hazır olduğunda başlar; bu nedenle sıra garanti edilmez. defer ile klasik harici betikler ayrıştırmadan sonra ve belge sırasına göre DOMContentLoaded'den önce çalışır. Defer, sıralı betikler için uygundur; evrensel değildir.
İsteğe bağlı sohbet, sosyal, harita, video veya öneri arayüzleri için hafif bir yer tutucu render edin ve satıcıyı bir tıklamadan sonra veya ilgili olduğunda yükleyin. Bu yüzlendirme (facade) deseni, tam gömmeden önce kontrolün sizde başlamasını sağlar. Klavye etkileşimini koruyun ve alan ayırın. Fiyat hesaplamak, oturum açmak, ödeme işlemek, gerekli erişilebilirliği sağlamak veya doğrulanmış bir yükümlülüğü yerine getirmek için gereken kodu, gözden geçirilmiş bir alternatif olmadan ertelemeyin.
Yalnızca ilk görev bağımlılığı için hemen yükleyin; sıralı kod için ayrıştırma sonrası, isteğe bağlı gömmeler için etkileşim veya görünürlük tetikleyicisi kullanın.
Bağımlı betiklere async atayıp sıranın korunacağını beklemeyin. Yayınlanan zinciri belgeleyin ve test edin.
Kritik UI öğelerini window load'a bağlamayın; üçüncü taraf gömmeler async veya defer kullansa bile bunu geciktirebilir.
Rızayı kapı (gate) yapın, sonradan düşünce yapmayın
Her satıcıyı, yasama bölgelerini ve veri akışlarını anlayan gizlilik ve yasal paydaşlarla sınıflandırın. Rıza-kapılı bir entegrasyon için, etiketi ilgili veriyi göndermeden önce rıza durumunu belirleyin. Google, varsayılan consent komutunun ölçüm komutlarından önce çalıştırılması gerektiğini ve değişiklikte güncellemelerin takip edilmesi gerektiğini belirtir. Bu ürün rehberliği hukukî tavsiye değildir.
İlk ziyaret için seçim yapılmamış, kabul edilmiş, reddedilmiş ve geri çekilmiş durumları test edin. Arayüzü ve ağı kontrol edin: gizli bir widget, isteğin veya tanımlayıcının gönderilmediğini kanıtlamaz. Rıza platformu asenkron yükleniyorsa zamanlamayı test edin. Seçimleri uygun şekilde kalıcılaştırın ve değişiklikleri mevcut sayfada ve sonraki ziyaretlerde uygulayın.
Bir satıcı etiketine güvenmeyin. Etiketin neden zorunlu, isteğe bağlı veya bir bölge/yolculuk için yasak olduğunu kaydedin ve onay alın.
Geri çekme sonrası, yapılandırılmış gereksiz etiketlerin yüklenmediğini veya veri göndermediğini teyit edin ve test kanıtını saklayın.
Kontrolünüz dışında kalan kodun etki alanını azaltın
OWASP, istemci tarafı değişiklikler üzerindeki kontrol kaybını, tarayıcılarda rastgele kod yürütmeyi ve hassas veri ifşasını merkezi riskler olarak tanımlar. Etiket-yayınlama erişimini sınırlayın, özel HTML veya keyfi kod özelliklerini inceleyin ve izin verilen data-layer alanlarını belgeleyin. Yüksek riskli entegrasyonlar için satıcı sözleşmeleri ve nitelikli güvenlik incelemesi yardımcı olabilir; bunların hiçbiri testin yerini almaz.
Subresource Integrity (SRI), bir tarayıcının bir betiği kriptografik bir hash'e karşı doğrulamasını sağlar. Bu, yalnızca bir kaynağın sabitlenebildiği ve çapraz kökenli teslimatın CORS'u desteklediği durumlarda yardımcı olur; W3C, CORS olmadan SRI kullanmanın mantıksal bir hata olduğunu belirtir. Birçok değişen satıcı URL'si için uygun değildir. Bir iframe sandbox ana DOM ve çerezlere doğrudan erişimi azaltabilir, ancak uzman incelemesi gerektirir. Ödeme ve güvenlik açısından hassas akışlar nitelikli inceleme gerektirir.
Amaç için gereken belgelenmiş alanların dışında veri geçirmeyin. Gizli anahtarları, ödeme verilerini veya gereksiz müşteri özelliklerini açığa çıkarmayın.
SRI baytları doğrular, verinin kullanımı veya sonraki isteklerin uygunluğunu değerlendirmez; izolasyon tek başına çözüm değildir.
Müşterilerle karşılaşmadan önce satıcı arızasını prova edin
Tutulan her satıcı için, test ortamında veya tarayıcı istek engelleyicisinde alan adlarını engelleyin ve yolculuğu çalıştırın. Ayrıca yavaş yanıtları ve etiket yöneticisi yapılandırmasında entegrasyon olmadan senaryoları test edin. Birincil içerik, gezinme, formlar, ödeme ve hesap erişiminin amaçlandığı gibi davrandığını doğrulayın. Bu, varsayımları yayına almadan önce ortaya çıkarır.
Bir olaydan önce iyileştirme tanımlayın: hangi kişinin etiketi devre dışı bırakabileceği, bir flag veya etiket-yöneticisi yayınının gerekip gerekmediği, nasıl geri alım yapılacağı ve nasıl doğrulanacağı. SIU, proaktif çalışma süresi optimizasyonu ve iyileştirmedir: bağınt-envanter, bütçeler, ön test (preflight) ve geri alma provası kullanarak bağımlılık riskini azaltın. SIU satıcı altyapısını kontrol edemez, kullanılabilirliği garanti edemez veya incelemenin yerine geçemez.
Satıcı olmadan neyin kullanılabilir kaldığını, neyin bozulabileceğini, yedeği ve devre dışı bırakma öncesi maksimum gecikmeyi belirtin.
Değişiklik kaydına öncesi ve sonrası bir iz, rıza sonucu, engellenmiş satıcı sonucu ve geri alma sahibini ekleyin.
