Files
kolaytercih/docs/ekip-raporlari/2026-10-05/cerez-uyum.md
bilalgursen 9e4c5608eb
All checks were successful
Deploy / deploy (push) Successful in 6m27s
feat(kvkk): çerez politikası, ölçümü kapatma ve ilk ziyaret bilgi bandı
- /cerez-politikasi: çerez aydınlatma metni (ad, amaç, süre, taraf),
  Rybbit ölçümünün kapsamı ve hukuki dayanağı (KVKK md. 5/2-f,
  Çerez Rehberi Temmuz 2025 §5.9)
- OlcumTercihi: Rybbit'i tarayıcıda kapatan düğme (disable-rybbit)
- CerezBilgi: ilk ziyarette bir kez görünen bilgilendirme (onay
  penceresi değil; rıza gerektiren çerez yok)
- gizlilik: analitik bölümü kodla eşitlendi (e-posta/ad gönderilmiyor)
- alt bilgi ve sitemap'e sayfa eklendi
- docs: hukuki analiz ve meşru menfaat denge testi

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-05 10:11:38 +03:00

134 lines
8.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Çerez ve analitik uyumu (5 Ekim 2026)
Soru: Rybbit ile ölçüm yapıyoruz, çerez izni istemiyoruz. Yasal mı, ne eksik?
**Sonuç:** Onay penceresi (kabul/ret) gerekmiyor. Ama aydınlatma eksikti ve Rybbit
panelinde üç ayar politikanın söylediğiyle uyuşmalı. Kod tarafı yapıldı; panel
tarafı Bilal'de (en altta).
> Bu bir avukat görüşü değildir. Kaynak metinler okunarak hazırlandı; yayından önce
> bir KVKK avukatına 30 dakikalık okuma yaptırmak makul.
## 1. Hukuki çerçeve
| Kaynak | Bize etkisi |
|---|---|
| **5809 sayılı Elektronik Haberleşme Kanunu md. 51/3** (cihaza bilgi yazma → açık rıza) | **Uygulanmaz.** Yalnız BTK yetkili "işletmeciler" için. Rehber bunu açıkça söylüyor (§3): site operatörleri kapsam dışı. Türkiye'de AB'deki ePrivacy md. 5/3'ün genel karşılığı yok. |
| **KVKK (6698) md. 4, 5, 10, 11, 12** | **Uygulanır.** Çerez ya da ölçümle kişisel veri işleniyorsa hukuki sebep (md. 5) ve aydınlatma (md. 10) gerekir. |
| **KVKK Çerez Uygulamaları Hakkında Rehber, Temmuz 2025 (Yayın No 69)** | Asıl referans. Bağlayıcı değil ama Kurul kararları bunu izliyor. |
| **Kurul kararı 2020/173** ve 2022'deki 300 bin TL'lik çerez cezası | İkisi de rızasız **reklam/üçüncü taraf analitik** çerezi + aydınlatma yokluğu. Bizim durumumuz değil. |
| **GDPR / ePrivacy** | Site Türkçe, Türkiye'deki YKS adaylarına yönelik; AB'ye hizmet sunma ya da AB'dekileri izleme yok → GDPR md. 3/2 kapsamında değiliz. AB'ye açılırsak `rybbit-user-id` yazımı ePrivacy'de rıza ister; o gün yeniden bakılır. |
### Rehberin bizi ilgilendiren üç hükmü
1. **§5.9 — Birinci taraf analitik çerezler "Kriter B" (rıza gerekmeyen) sayılır.**
2022 sürümünde analitik rıza istiyordu; Temmuz 2025 güncellemesi bunu değiştirdi.
Şartları: yalnız kitle ölçümü, veri ölçülü olmalı ve IP maskelenmeli, **yalnız
anonim istatistik** üretilmeli, siteler arası takip olmamalı, süre makul olmalı,
veri üçüncü tarafa gitmemeli.
2. **§1.2 — local storage, parmak izi, piksel için rehber yönlendirme yapmıyor.**
Yani "çerezsiz" olmak bizi kapsam dışına çıkarmaz ama rıza da doğurmaz; genel
KVKK md. 5 değerlendirmesi yapılır (aşağıdaki denge testi).
3. **§9 — Aydınlatma, hukuki sebepten bağımsız olarak siteye girişte yapılmalı**
("pop-up gibi bir bilgilendirme yoksa aydınlatma yükümlülüğüne aykırılık gündeme
gelebilir") ve çerezin adı, amacı, süresi, birinci/üçüncü taraf oluşu yazılmalı.
Gizlilik metninin içine gömülü tek paragraf yeterli sayılmıyor.
## 2. Sitede gerçekte ne var (koddan ve canlı betikten doğrulandı)
- **Çerezler (hepsi birinci taraf, zorunlu):** better-auth oturum çerezleri,
`kolaytercih.profil`, `kolaytercih.liste-sayi`. Reklam/üçüncü taraf çerez yok.
- **Rybbit:** kendi sunucumuzda, sunucu Türkiye'de (178.211.130.206, Pentech/Bursa)
→ yurt dışı aktarım yok. Çerez yazmıyor. Ama canlı betik (`/api/script.js`)
incelendiğinde:
- Her ziyaretçide localStorage'a `rybbit-visitor-id` yazıyor (yalnız feature flag
açıkken gönderilir; bizde kapalı → gönderilmiyor).
- Girişte localStorage'a `rybbit-user-id` yazıyor ve her olaya ekliyor.
- Anonim ziyaretçiyi IP + tarayıcı bilgisinin özetiyle tanıyor.
- Panel ayarı (herkese açık `tracking-config` ucundan okundu): `trackCopy: true`,
`trackFormInteractions: true`, `trackButtonClicks: true`, `trackUrlParams: true`,
`trackErrors: true`, `webVitals: true`, `sessionReplay: false`.
- **Bulgu A — kopyalama izleme açık.** Kullanıcının kopyaladığı metnin ilk 500
karakteri Rybbit'e gidiyor. Danışman cevabını ya da kendi mesajını kopyalayan
öğrencinin metni analitiğe düşer. "Kitle ölçümü" sınırını aşar; **kapatılmalı.**
- **Bulgu B — gizlilik metni eskimişti.** "E-posta adresin ve adın analitiğe
kaydedilir" diyordu; kod 21 Eylül'den beri (c055e82) yalnız kimlik numarası
gönderiyor. Metin düzeltildi. Rybbit'te o tarihten önce yazılmış e-posta/ad
kayıtları duruyorsa silinmeli.
- **Bulgu C — form izleme zararsız.** Yalnız alan adı/türü gidiyor, değer gitmiyor.
- Ham sıralama: sayfa adreslerinde artık `?sira=` taşınmıyor (yalnız `/api/…`
çağrılarında; Rybbit bunları görmez), `/sonuc` maskeli. Eski satırlar panelde
duruyor olabilir (BACKLOG #31).
## 3. Meşru menfaat denge testi (KVKK md. 5/2-f)
Rehber §4 bu testi yapmayı tavsiye ediyor; kayıt olarak burada dursun.
- **Menfaat:** sitenin hangi sayfalarının kullanıldığını, sihirbazın nerede
bırakıldığını ve hataları görmek. Gerçek, güncel, hukuka uygun.
- **Zorunluluk:** bu bilgi ölçüm olmadan elde edilemiyor; daha az veriyle çalışan
bir yol seçildi (çerez yok, IP saklanmıyor, sıralama bantlı, hassas adresler
maskeli, ekran kaydı kapalı, veri kendi sunucumuzda).
- **Kişiye etkisi:** düşük. Siteler arası takip yok, reklam yok, profil
çıkarılmıyor, üçüncü tarafa aktarım yok. Makul beklenti içinde.
- **Güvenceler:** ayrı çerez politikası, ilk ziyarette bilgilendirme, tek tıkla
kapatma (itiraz hakkı), e-posta/ad analitikte yok.
- **Zayıf nokta:** girişli kullanıcının ziyareti hesap kimliğiyle eşleşiyor. Bu
"anonim istatistik" değil, takma adlı veri; §5.9'un en dar okumasının dışında.
Savunması: yalnız hesabı olan kullanıcıda, yalnız kendi sitemizde, açıkça
bildirilmiş, kapatılabilir. **Kalan risk: düşük-orta.** Sıfıra indirmek istersek
`RybbitIdentify` kaldırılır; bedeli "sihirbaz → giriş → ödeme" hunisinin kişi
bazında birleşmemesi.
- **18 yaş altı:** kitlenin bir kısmı 17 yaşında. Ölçüm pazarlama için
kullanılmadığından ek rıza doğmuyor; metin sade dille yazıldı (Rehber §9).
## 4. Yapılanlar (kod)
- `src/app/cerez-politikasi/page.tsx` — çerez politikası + çerez aydınlatma metni
(ad, amaç, süre, taraf; ölçümün ne topladığı; hukuki dayanak; yönetim).
- `src/components/olcum-tercihi.tsx` — "Ölçümü kapat" düğmesi (Rybbit'in kendi
`disable-rybbit` kapısı; kimlik kayıtlarını da siler).
- `src/components/cerez-bilgi.tsx` + `layout.tsx` — ilk ziyarette bir kez görünen
bilgi bandı. Kabul/ret yok, çünkü sorulan rıza yok.
- `src/app/gizlilik/page.tsx` — "Çerezler ve analitik" bölümü gerçeğe göre düzeltildi.
- Alt bilgiye ve `sitemap.ts`'e sayfa eklendi.
## 5. Bilal'in yapacakları
**Yayından önce (politika bunları doğru varsayıyor):**
1. Rybbit paneli → site ayarları → **kopyalama izlemeyi (Copy) kapat.** Doğrulama:
`curl -s https://rybbit.kolaytercih.com/api/site/tracking-config/f2cb042c657e`
çıktısında `"trackCopy":false` görünmeli.
2. Aynı ekranda **IP adresi saklama (Track IP Address) kapalı** mı bak (varsayılan
kapalı). Açıksa kapat.
3. **Oturum kaydı (Session Replay) kapalı kalsın.** Açılacaksa önce politika ve
denge testi güncellenir.
**Yakın zamanda:**
4. Rybbit kullanıcılar ekranında 21 Eylül öncesinden kalan **e-posta/ad** kayıtları
varsa sil.
5. "User ID Salting" ayarı: açılırsa anonim ziyaretçi kimliği her gün sıfırlanır
(en temiz hâl), bedeli girişsiz ziyaretçide "geri dönen" ölçümünün kaybı. Karar
senin; politika iki hâlde de doğru.
6. Ölçüm verisi için saklama süresi belirle (öneri: 24 ay) ve belirleyince
politikaya yaz.
7. Gizlilik sayfasındaki `[şirket unvanı ve adresi eklenecek]` hâlâ boş; çerez
politikası veri sorumlusu için o sayfaya atıf yapıyor.
8. Bilgi bandını telefonda bir kez gözle kontrol et (alt kenarda, `KaydetBanner`
ile aynı yerde, onun üstünde açılır).
## 6. Ne zaman onay penceresi gerekir
Şunlardan biri eklendiği gün: Google Analytics / Meta Pixel / TikTok Pixel, reklam
ya da yeniden hedefleme, gömülü YouTube/sosyal eklenti, Rybbit oturum kaydı, Rybbit
bulut sürümüne geçiş (üçüncü taraf + yurt dışı). O gün "Kabul et" ile "Reddet"
eşit görünürlükte olmalı ve rıza verilmeden betik yüklenmemeli.
## Kaynaklar
- KVKK, Çerez Uygulamaları Hakkında Rehber (Temmuz 2025): https://www.kvkk.gov.tr/Icerik/7353/Cerez-Uygulamalari-Hakkinda-Rehber
- Erdem & Erdem, rehber güncellemesi notu (28.07.2025): https://www.erdem-erdem.av.tr/bilgi-bankasi/kisisel-verileri-koruma-kurumu-cerez-uygulamalari-hakkinda-rehberi-guncelledi
- Rybbit site ayarları: https://rybbit.com/docs/site-settings