WordPress rıza yönetimi
tıklamadan önce engeller.
OW Consent, ziyaretçi seçimini yapmadan önce izleyicileri HTML içinde etkisiz hale getirir, ziyaretçinin yargı bölgesindeki hukuki rejimi uygular ve her kararı doğrulayabileceğin zincirlenmiş bir kayıt defterine işler. On bir uyumluluk profili, dokuz adlandırılmış rejim — GDPR'den CCPA'ya. Ücretsiz, GPL, Pro sürüm yok.
Neden bir rıza eklentisi daha?
Sorun hiçbir zaman banner değildi. Neredeyse her sitede bir tane var ve izleyiciler yine de ilk bayttan itibaren yola çıkıyor: Analytics betiği temaya gömülü, reklam pikseli alt bilgiden çalışıyor, YouTube iframe'i banner üstte dururken çerezlerini bırakıyor. “Tümünü kabul et” tıklaması artık hiçbir şeye izin vermiyor; olup bitmiş olanı onaylıyor.
İkinci tuzak önbellek. Bir eklenti ziyaretçinin çerezini okuyup HTML'e karar vermeye başladığı anda sayfa önbelleğiyle bağdaşmaz hale gelir — ya da daha kötüsü, bir ziyaretçinin seçimlerini bir başkasına sunar. Üçüncüsü kanıt: 7.1 maddesi rızanın ispatlanmasını ister, veritabanının bir yerinde işaretlenmiş bir kutu ise hiçbir şeyi ispatlamaz.
OW Consent bu üç kısıttan yola çıkar. Sunulan HTML, etkisizleştirilmiş izleyiciler dahil herkes için aynıdır; ziyaretçinin verdiği izni serbest bırakan tarayıcıdır. Her karar imzalı bir hash zincirine eklenir. Uygulanan rejim de — opt-in mi opt-out mu, “Do Not Sell” bağlantısı var mı, GPC sinyali bağlayıcı mı — varsayılan bir kutucuğu değil, yargı bölgesini izler.
Varsayılan olarak açık gelen katı modda belge çıkışta yeniden yazılır: betikler text/plain ile etkisizleştirilir, iframe'ler tıklanabilir bir kutunun ardında about:blank'e çevrilir, pikseller saydam bir GIF ile değiştirilir, bağlantı ipuçları kaldırılır. Hiç tıklamayan ziyaretçi bu kaynakları hiç yüklemez.
Render yolundaki hiçbir şey çerezi okumaz. Ziyaretçinin durumu tarayıcıda yeniden kurulur ve ilk boyamadan önce html etiketine yazılır. LiteSpeed, WP Rocket, Varnish ya da bir CDN, iki ziyaretçiyi asla birbirine karıştırmadan sayfayı önbelleğe alabilir.
Her olay zincirlenmiş bir tabloya eklenir; her satır bir öncekinin hash'iyle birlikte HMAC ile imzalanır, baş çıpası tablonun dışında tutulur. Kayıt defteri yazmayı reddederse API 503 döner, çerezi iptal eder ve hiçbir izleyiciyi serbest bırakmaz: sitenin ispatlayamadığı rıza, sitenin öne sürmediği rızadır.
Somut olarak ne değişiyor
Slogan yok. İşte bu ürünü farklı kılan teknik kararlar.
Varsayılan olarak açık gelen katı modda belgenin tamamı çıkışta yakalanır ve beş geçişte yeniden yazılır: betikler type text/plain olur ve URL'leri data-owc-src içine kaldırılır, iframe'ler sağlayıcı adını taşıyan bir “Kabul et” kutusunun ardında about:blank'e geçer, ölçüm pikselleri saydam 1×1 GIF ile değiştirilir, preconnect ve dns-prefetch kaldırılır (basit bir ipucu bile TLS bağlantısı açar ve IP'yi ele verir), kataloğa girmiş üçüncü taraf medyalar autoplay özelliğini kaybeder. Hazır katalog 71 sağlayıcı için 175 imza içerir; yönetim ekranından imza ekleyebilir, düzeltebilir veya silebilirsin. Varsayılanda bilinmeyen bir üçüncü taraf betiği geçer, bilinmeyen bir iframe engellenir.
Sunucunun ürettiği hiçbir şey ziyaretçinin çerezine bağlı değildir: etkisizleştirilmiş aynı etiketler herkese sunulur, çalışma zamanı da bunları tarayıcıda, belge sırasına göre ve yalnızca izin verilen kategoriler için geri getirir. Durum, ilk boyamadan önce html etiketine yazılır; dolayısıyla yanıp sönen bir banner olmaz. Yazma token'ı her gönderimden hemen önce taze alınır, önbelleğe girmiş HTML'e asla gömülmez: alımı 4 saniyeyle sınırlıdır ve gelmemesi bir seçimi asla engellemez.
GDPR, UK PECR, İsviçre nLPD'si, Québec 25 sayılı Kanun, LGPD, CCPA, POPIA, PIPL, Hindistan DPDP'si, ayrıca bir Avustralya profili ve genel bir ABD profili. Profil süs değildir: hukuki modeli belirler (opt-in; CCPA, genel ABD ve Avustralya için ret gelene kadar verilmiş sayma), “Do Not Sell or Share” bağlantısının görünüp görünmeyeceğini — tek tık opt-out'u gerçekten uygular, panel açmaz —, Global Privacy Control sinyalinin bağlayıcı olup olmadığını, üretilen belgelerde anılan dili ve denetim otoritesini belirler. Ülkeye göre tespit vardır, varsayılan olarak kapalıdır.
Her kabul, ret, değişiklik ya da geri çekme kendi tablosuna eklenir: satır, bir öncekinin hash'iyle birlikte HMAC-SHA-256 (veya SHA3-256) ile imzalanır; baş çıpası, bir kırpma fark edilsin diye tablonun dışında tutulur. Kaydedilenler: takma adlı bir tarayıcı token'ı, kırpılmış IP, user-agent özeti, sayfa, yürürlükteki profil, gösterilen banner'ın tam revizyonu ve bağlı politikaların özeti — asla isim ya da adres değil. Bir düğme zincirin tamamını doğrular ve kopmanın yerini söyler; CSV veya JSON dışa aktarımı, üçüncü bir tarafın bir kesiti yeniden doğrulamasını sağlayan bir zarf taşır. Varsayılan saklama süresi: 5 yıl.
Kapalı gelir, istediğin zaman açarsın: tarama aracı WP-Cron üzerinden kendi sayfalarını dolaşır (varsayılan 25 URL, 500'e kadar ayarlanabilir) ve ana sayfa, sayfalar, yazılar, içerik türleri ile taksonomiler arasında sırayla geçer. Üçü de ayrı ayrı izlenen üç kaynak: sunulan HTML, Set-Cookie başlıkları — bir sunucu taramasının ispatlayabildiği tek çerezler ve hiçbir şeyin engelleyemediği çerezler — ve yalnızca oturum açmış yöneticilere gösterilen, bir etiket yöneticisinin çalışma zamanında enjekte ettiğini yakalayan sayfa içi sonda. Bir bulgu tek tıkla katalog kuralına dönüşür. Rapor da eksik bir taramayı tam envanter gibi göstermek yerine neyi okuyamadığını söyler.
Sürümlenmiş WordPress sayfaları olarak üretilen dört belge — çerez politikası, gizlilik politikası, yasal bilgiler, genel koşullar — yargı bölgesinin dilinde (Fransızca, İngilizce, Portekizce), denetim otoritesi ve taramadan çıkan izleyici tablosuyla birlikte. Yasal olarak zorunlu bir alan boşken yayın reddedilir ve her belge, metnin bir uzmana okutulmasını hatırlatan bir uyarı taşır. Haklar tarafında owc_dsar_form kısa kodu, e-posta gidiş-dönüşüyle doğrulanan yedi talep türünü açar; 12.3 maddesinin süresi kimlik doğrulandığında başlar ve talep, dışa aktarma ya da silmenin sitedeki tüm eklentileri kapsaması için paralelde bir WordPress yerel talebi de açar.
Alternatiflere karşı
Doğrulanabilir veriler. Yalnızca rakipte gerçekten var olan işaretlenir.
| Kriter | OW Consent | Complianz | CookieYes | Borlabs Cookie |
|---|---|---|---|---|
| Ticari model | Ücretsiz, GPL-2.0-or-later | Freemium (ücretli Pro) | Freemium (ücretli Pro) | Açıklanmadı |
| Etkinleştirilecek lisans anahtarı | Yok | Pro sürüm için | Pro sürüm için | Açıklanmadı |
| İzleyici engelleme yöntemi | Sunucu tarafında HTML yeniden yazımı, 175 hazır ve düzenlenebilir imza | Açıklanmadı | Açıklanmadı | Açıklanmadı |
| Zincirlenmiş ve doğrulanabilir kanıt defteri | HMAC-SHA-256 zinciri, tablo dışı çıpa, tek tıkla doğrulama | Açıklanmadı | Açıklanmadı | Açıklanmadı |
| Hazır gelen uyumluluk profilleri | 11 profil, 9 adlandırılmış rejim | Açıklanmadı | Açıklanmadı | Açıklanmadı |
| Yapılandırılabilir rıza banner'ı | 4 konum, açık / koyu / otomatik tema | |||
| Hak taleplerinin iletildiği portal | Dahil: form, e-posta doğrulaması, md. 12.3 süresi | Açıklanmadı | Açıklanmadı | Açıklanmadı |
| Kaydedilen rızalar nerede durur | Kendi barındırmanın veritabanında, üçüncü taraf servis yok | Açıklanmadı | Açıklanmadı | Açıklanmadı |
Bir formu entegre etmenin üç yolu
Dayatılan tescilli bir page builder yok. Stack'inize uyan yaklaşımı seçin.
<!-- Temanın bastığı çıktı -->
<script src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX"></script>
<iframe src="https://www.youtube.com/embed/VIDEO_ID"></iframe>
<!-- Ziyaretçinin, herhangi bir rıza öncesinde aldığı çıktı (katı mod, varsayılan) -->
<script type="text/plain"
data-owc-cat="analytics"
data-owc-vendor="Google"
data-owc-src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX"></script>
<span class="owc-embed-placeholder" data-owc-cat="social" data-owc-vendor="Google">
<span class="owc-embed-text">Google content blocked: this content uses cookies…</span>
<button type="button" class="owc-embed-accept" data-owc-cat="social">Accept Google</button>
<iframe data-owc-cat="social"
data-owc-src="https://www.youtube.com/embed/VIDEO_ID"
src="about:blank"></iframe>
</span>
<!-- Bu işaretleme, sayfa önbelleği dahil herkes için aynıdır.
İzin verilen kategorilerin etiketlerini belge sırasına göre
tarayıcıda geri getiren, çalışma zamanıdır. Rızanın geri
çekilmesi sayfayı yeniden yükler: çalışmış bir betik geri alınamaz. -->Makul şüpheler, doğrudan cevaplar
Evet, ve engelleme bir vaatte değil, HTML'in kendisinde yaşıyor. Varsayılan olarak açık gelen katı modda belge çıkışta yakalanır ve beş geçiş betikleri, iframe'leri, pikselleri, bağlantı ipuçlarını ve üçüncü taraf medyaları yeniden yazar. Bilmen gereken iki sınır var: gerçek engelleme 175 imzalık kataloğa ve satır içi kod imzalarına dayanır — bilinmeyen bir üçüncü taraf betiği varsayılanda geçer, bilinmeyen bir iframe engellenir — ve katı modu kapatırsan yalnızca WordPress'e kayıtlı betikler işlenir, temaya gömülü olanlar değil. Son olarak, 8 MB'ı aşan bir belge ya da düzenli ifade motorunun başarısız olması durumunda sayfa bozulmak yerine olduğu gibi sunulur.
Evet, zaten çıkış noktası bu kısıttı. Sunulan HTML, etkisizleştirilmiş izleyiciler dahil tüm ziyaretçiler için aynıdır; rıza durumu tarayıcıda çerezden yeniden kurulur ve ilk boyamadan önce uygulanır. Dolayısıyla hiçbir önbellek bir ziyaretçinin seçimlerini bir başkasına sunamaz. Bedeli açıkça söyleniyor: ziyaretçinin rejimine istemci tarafında karar verilir, yani JavaScript olmadan hiçbir şey kaydedilmez. JavaScript'i olmayan bir ziyaretçi bir noscript bloğu görür, zorunlu olmayan hiçbir şey yüklemez ve kapatamayacağı bir pencerenin ardında asla kilitli kalmaz.
Hukuki modeli belirler: GDPR, UK PECR, İsviçre nLPD'si, 25 sayılı Kanun, LGPD, POPIA, PIPL ve DPDP için opt-in; CCPA, genel ABD profili ve Avustralya için ret gelene kadar verilmiş sayma. Ayrıca “Do Not Sell or Share” bağlantısının gösterilip gösterilmeyeceğini (yalnızca CCPA ve genel ABD), GPC sinyalinin bağlayıcı olup olmadığını (aynı iki profil: diğerlerinde sinyal ekrana yansır ama hiçbir şey kaydedilmez) ve üretilen belgelerin dilini ve denetim otoritesini belirler. Ülkeye göre tespit isteğe bağlıdır ve varsayılan olarak kapalıdır; kapalı tarafa düşer, yani en katı rejime. Kabul edilmiş iki sınır: ABD eyaletleri ya da Kanada vilayetleri düzeyinde ayrım yoktur ve MaxMind dosyası eklenti tarafından ne indirilir ne de yüklenebilir — dosyayı uploads/ow-geoip/ altına kendin koyarsın.
Kendisini imzalayan anahtar kadar ispatlar ve eklenti bunu sana açıkça söyler. Her satır bir öncekinin hash'iyle birlikte HMAC ile imzalanır ve baş çıpası tablonun dışında tutulur; böylece bir değişiklik, bir kırpma ya da tablonun boşaltılması doğrulamada görünür. Ama AUTH_KEY ve AUTH_SALT senin wp-config.php dosyanda değilse ve OWC_LEDGER_KEY'i de tanımlamadıysan anahtar veritabanından gelir: veritabanına erişebilen herkes zinciri yeniden imzalayabilir. Bu durumda eklenti bir yönetim uyarısı gösterir ve iddiayı sürdürmek yerine zincirin artık kurcalamaya karşı kanıt taşımadığını kendisi bildirir.
Hayır, ve bunu sonradan değil en baştan söylemek gerekir. Modül TCF v2.2'yi tarayıcı tarafında uygular — __tcfapi API'si, kodlanmış TC dizesi, euconsent-v2 çerezi — ama bir CMP ID sağlamaz: bu numara kayıt sonrasında IAB Europe tarafından verilir ve o olmadan modül kesinlikle hiçbir şey yayımlamaz. Kapsam da sınırlıdır: yalnızca Core segmenti, hiçbir yayıncı kısıtlaması yayımlanmaz, iki özel özellik desteklenir, küresel kapsam yoktur. Açıkçası resmi olmayan, uyumlu bir CMP gibi çalışır; bu birçok entegrasyona yeter ama resmi kaydın yerini tutmaz — özellikle Google AdSense bunu AEA'da üretimde kabul etmez. Modül varsayılan olarak kapalıdır.
Devre dışı bırakmak hiçbir veriye dokunmaz: yalnızca zamanlanmış görevleri kaldırır. Silmede ise ayarın ne olursa olsun iki şey her zaman gider: zamanlanmış görevler ve hak talepleri tablosu — eklenti gittikten sonra hiçbir şeyin sınırlamadığı, üçüncü kişilere ait doğrudan kimlik belirtici veri içeren tek tablo. Geri kalanı — rıza kayıt defteri, tarama bulguları, izleyici kataloğu — varsayılan olarak işaretsiz gelen tam silme kutusunu bilerek işaretlemediysen yerinde kalır: 7.1 maddesi kapsamındaki rıza kanıtın bir kaldırma işlemiyle birlikte kaybolmamalı.
Pro sürüm yok, lisans anahtarı yok.
OW Consent, GPL-2.0-or-later lisansıyla yayımlanır. Bu sayfada anlatılan her şey indirdiğin .zip dosyasının içindedir: kilitli modül yok, abonelik yok, sayfa, rıza ya da talep sayısında sınır yok.
- Her şey dahil: banner, izleyici engelleme, tarama aracı, düzenlenebilir katalog, zincirlenmiş kayıt defteri, belge üreteci, talep portalı, Consent Mode v2, TCF v2.2 ve Global Privacy Control.
- .zip dosyası optionweb.dev üzerinden indirilir: Eklentiler → Yeni Ekle → Eklenti Yükle yolundan kurarsın. En az WordPress 6.2 gerekir — altındaki sürümlerde eklenti, hiçbir şeyi engellemeyen bir banner göstermek yerine çalışmayı reddeder ve bunu söyler.
- Üçüncü taraf servis yok, lisans doğrulaması yok, eklenen izleyici yok: rızalar, talepler ve belgeler kendi barındırmanın veritabanında kalır.
- Kod GPL-2.0-or-later altında, okunabilir ve değiştirilebilir; genişletme noktaları belgelenmiştir: owc_settings, owc_scripts_catalog, owc_blocker_allowlist, owc_policy_template filtreleri ve kayıt defteri aksiyonları.