Canlı · durum OK
OW Consent · v1.4.3 · GPL-2.0-or-later

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.

v1.4.3GPL-2.0-or-laterWordPress 6.2+PHP 7.4+
Neden

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.

İzleyicilerden sonra gelen bir banner

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.

Sayfa önbelleğine karşı rıza

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.

Ortaya konamayan bir kanıt

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.

Kaputun altında

Somut olarak ne değişiyor

Slogan yok. İşte bu ürünü farklı kılan teknik kararlar.

İzleyiciler HTML çıktısında engellenir

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.

Sayfa önbelleğinin arkasında çalışmak için tasarlandı

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.

On bir uyumluluk profili, dokuz adlandırılmış rejim

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.

Doğrulayabileceğin bir rıza kayıt defteri

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.

Site tarama aracı ve düzenlenebilir katalog

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.

Yasal belgeler ve talep portalı

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.

Karşılaştırma

Alternatiflere karşı

Doğrulanabilir veriler. Yalnızca rakipte gerçekten var olan işaretlenir.

KriterOW ConsentComplianzCookieYesBorlabs Cookie
Ticari modelÜcretsiz, GPL-2.0-or-laterFreemium (ücretli Pro)Freemium (ücretli Pro)Açıklanmadı
Etkinleştirilecek lisans anahtarıYokPro sürüm içinPro sürüm içinAçıklanmadı
İzleyici engelleme yöntemiSunucu tarafında HTML yeniden yazımı, 175 hazır ve düzenlenebilir imzaAçıklanmadıAçıklanmadıAçıklanmadı
Zincirlenmiş ve doğrulanabilir kanıt defteriHMAC-SHA-256 zinciri, tablo dışı çıpa, tek tıkla doğrulamaAçıklanmadıAçıklanmadıAçıklanmadı
Hazır gelen uyumluluk profilleri11 profil, 9 adlandırılmış rejimAçıklanmadıAçıklanmadıAçıklanmadı
Yapılandırılabilir rıza banner'ı4 konum, açık / koyu / otomatik tema
Hak taleplerinin iletildiği portalDahil: form, e-posta doğrulaması, md. 12.3 süresiAçıklanmadıAçıklanmadıAçıklanmadı
Kaydedilen rızalar nerede dururKendi barındırmanın veritabanında, üçüncü taraf servis yokAçıklanmadıAçıklanmadıAçıklanmadı
Entegrasyon

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. -->
Teknik sorular

Makul şüpheler, doğrudan cevaplar

İzleyiciler rızadan önce gerçekten engelleniyor mu?

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.

Sayfa önbelleğimle uyumlu mu?

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.

Uyumluluk profili somut olarak neyi değiştirir?

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.

Kayıt defteri gerçekten bir şey ispatlıyor mu?

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.

IAB TCF modülü sitemi sertifikalı bir CMP yapar mı?

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.

Eklentiyi devre dışı bırakırsam ya da silersem ne olur?

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ı.

Ücretsiz. Yıldız işareti yok.

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ı.
Julien Daniel · Châtelet, Belçika tarafından geliştirildi