Uyum, hukuk metninden önce teknik kararlarla başlar
Bir siteyi yayına alırken en çok ertelenen başlık KVKK uyumu oluyor. Oysa uyumun büyük kısmı devasa bir hukuk projesi değil; doğru kurulmuş küçük teknik kararların toplamı. Hangi veriyi topluyorsun, neden topluyorsun, ne kadar süre saklıyorsun, kimlerle paylaşıyorsun ve bunu kullanıcıya nasıl anlatıyorsun.
Aşağıdaki liste, bir siteyi yayına almadan önce sırayla geçtiğim maddeleri içeriyor. Her maddede "ne isteniyor" kadar "kodda karşılığı ne" tarafına da değiniyorum.
Önemli not: Bu yazı teknik bir kontrol listesidir, hukuki danışmanlık yerine geçmez. Metinlerin (aydınlatma, açık rıza, çerez politikası) hukuki içeriği ve VERBİS yükümlülüğün için mutlaka bir hukukçuya danış. Ben burada uygulamanın teknik tarafını anlatıyorum.
Önce çerçeve: KVKK bir siteden ne bekler?
6698 sayılı kanunun site tarafındaki karşılığı üç soruda özetlenebilir:
- Hangi kişisel veriyi, hangi hukuki sebeple işliyorsun?
- Kullanıcıyı bu konuda açık ve anlaşılır biçimde bilgilendirdin mi?
- Veriyi korumak için makul teknik ve idari tedbirleri aldın mı?
Kontrol listesinin tamamı aslında bu üç sorunun türevi. Uygulamada işleri karıştıran şey ise "kişisel veri"nin sandığından geniş olması: ad-soyad ve e-posta kadar, IP adresi, çerez kimliği ve form serbest metin alanına yazılanlar da bu kapsamda.
1. Aydınlatma metni: doğru yerde, doğru zamanda
Aydınlatma yükümlülüğü, veriyi topladığın an için geçerlidir; sitenin bir köşesinde metnin bulunması tek başına yetmez.
- Sabit ve erişilebilir bir adreste yayınla; alt bilgide (footer) her sayfadan link ver.
- Metin şunları içermeli: veri sorumlusunun kimliği, işleme amaçları, hukuki sebep, aktarılan taraflar ve amaçları, toplama yöntemi, ilgili kişinin hakları.
- Toplama noktasına bağla: iletişim formunun hemen yanında aydınlatma metnine giden görünür bir bağlantı olsun.
- Sade Türkçe kullan. Anlaşılmayan metin, hem uyumu hem güveni zayıflatır.
- Metnin bir sürüm tarihi olsun; güncellendiğinde tarihi de güncelle.
Bu sitede aynı yaklaşımı uyguluyorum: , ve ayrı ayrı yayında ve her sayfadan erişilebilir.
2. Açık rıza: her şey için gerekmez
En sık gördüğüm hata, her forma "kişisel verilerimin işlenmesine izin veriyorum" kutusu koymak. Açık rıza, ancak başka bir hukuki sebep yoksa gerekir; gereksiz yere rıza almak uyumu güçlendirmez, aksine yönetmesi gereken bir yük yaratır.
- İletişim formu: talebi cevaplamak çoğu senaryoda sözleşme hazırlığı veya meşru menfaat kapsamında değerlendirilir; burada aydınlatma öne çıkar.
- Bülten ve pazarlama: ayrı bir konudur ve ayrı, önceden işaretlenmemiş bir onay kutusu ister.
- Rıza özgür iradeyle, bilgilendirilmiş ve belirli bir konuya ilişkin olmalı. "Kabul etmezsen formu gönderemezsin" mantığındaki paket rıza sorunludur.
- Rızayı geri almak, vermek kadar kolay olmalı.
Teknik karşılığı: onay kutularını birbirinden ayır, varsayılanı işaretsiz bırak ve rıza kaydını (zaman damgası, hangi metin sürümü onaylandı) sakla. İspat yükü sende.
3. Çerez banner'ı: "zorunlu mu?"
Kısa cevap: zorunlu (teknik olarak gerekli) çerezler dışındaki her şey için önceden rıza gerekir. Analitik, reklam, ısı haritası ve gömülü içerik bu kapsamdadır.
Doğru kurulmuş bir banner:
- Kategori bazlıdır: zorunlu, işlevsel, analitik, pazarlama. Her kategori ayrı ayrı seçilebilir.
- Reddetmeyi kabul etmek kadar kolaylaştırır. "Kabul et" düğmesi renkli, "reddet" gizli bir link ise karanlık desen (dark pattern) tartışmasına girersin.
- Varsayılanı kapalıdır. Kullanıcı seçim yapmadan hiçbir izleme scripti çalışmamalıdır.
- Geri dönülebilir: kullanıcı tercihini sonradan değiştirebileceği kalıcı bir bağlantı bulunur.
- Politika ile eşleşir: çerez politikası sayfasında hangi çerez, hangi amaçla, ne kadar süreyle ve kim tarafından yerleştiriliyor yazar.
Banner'ın teknik doğruları
En sık rastladığım kusur, banner'ın yalnızca görsel bir katman olması: kullanıcı "reddet" dese bile analitik zaten sayfa açılışında yüklenmiş oluyor. Doğrusu, izleme scriptlerini rıza durumuna bağlamaktır.
// Analitik YALNIZ açık rıza varsa yüklenir; reddedilirse hiç enjekte edilmez.
if (consent.analytics === true) {
loadAnalytics();
}
İki ek pratik: banner ilk boyamayı bloklamamalı ve açılırken düzeni kaydırmamalı. Alanı baştan ayrılmamış bir banner, doğrudan CLS üretir; bunun nedenlerini ayrıntılı anlattım.
Uyumda en ucuz kazanç burada: toplamadığın veriyi korumak zorunda değilsin.
- Form alanlarını tek tek sorgula. T.C. kimlik numarası, doğum tarihi, adres gerçekten gerekli mi?
- Zorunlu ve isteğe bağlı alanları net ayır; gereksiz alanı isteğe bağlı yapmak yerine tamamen kaldır.
- Serbest metin alanında sağlık gibi özel nitelikli veri paylaşımını teşvik etme; alan etiketini buna göre yaz.
- Form gönderimi HTTPS üzerinden olmalı ve sunucu log'una form içeriği yazılmamalıdır. Hata ayıklarken tüm istek gövdesini log'lamak, sessizce ilerleyen bir veri sızıntısıdır.
- Spam koruması gereklidir; ancak seçtiğin captcha hizmeti de bir yurt dışı aktarımdır ve aydınlatma metninde yer almalıdır.
5. Saklama ve imha
Kişisel veri "ihtiyaç bitince" silinmelidir; süresiz saklama uyumsuzluktur.
- Her veri kategorisi için saklama süresi tanımla (form mesajları, e-posta kayıtları, analitik veri).
- Süre dolduğunda gerçekten sil. "Silindi" işareti koymak imha değildir; kayıt kaldırılmalı ya da geri döndürülemez biçimde anonimleştirilmelidir.
- Periyodik imha çalıştır; bunu takvime bağlı otomatik bir işe dönüştürmek en sağlıklısıdır.
- Yedekleri unutma: yedek saklama süresi de politikanın parçasıdır.
- Yönetim panelinde kaydın ne zaman imha edileceğini görünür kılmak, süreci sürdürülebilir yapar.
6. Veri sorumlusu bilgileri ve VERBİS
- Unvan, açık adres, e-posta ve telefon gibi iletişim bilgileri sitede görünür olmalı. Bu hem yasal bir gereklilik hem de güven sinyalidir.
- VERBİS kayıt yükümlülüğü herkes için geçerli değildir; çalışan sayısı ve mali büyüklük gibi eşiklere bağlıdır ve zaman içinde güncellenir. Kendi durumunu bir hukukçu ya da mali müşavirle netleştir.
- Kayıtlıysan VERBİS beyanların ile sitedeki metinler birbiriyle tutarlı olmalı. Beyan ettiğin veri kategorisi ile formda topladığın alanların uyuşmaması ilk göze çarpan tutarsızlıktır.
7. Yurt dışına aktarım: envanterini çıkar
Çoğu site sahibi veriyi yurt dışına aktardığının farkında bile değildir. Aktarım yapan tipik bileşenler:
- Analitik ve etiket yöneticisi hizmetleri
- Gömülü harita ve video oynatıcılar
- Yazı tipi (font) CDN'leri
- E-posta gönderim ve pazarlama servisleri
- Form spam koruması (captcha)
- Bulut barındırma ve depolama sağlayıcıları
Yapılacaklar:
- Envanter çıkar: hangi üçüncü taraf, hangi veriyi, hangi ülkeye aktarıyor?
- Aydınlatma metninde belirt: aktarım gerçeği ve hukuki dayanağı yazılı olsun.
- Azaltılabileni azalt: yazı tiplerini kendi alan adından servis et, videoyu gizlilik modunda göm, analitikte IP anonimleştirmeyi aç ya da yerel/AB barındırmalı bir alternatif seç.
Yazı tiplerini kendi sunucundan servis etmek aynı zamanda performans kazancıdır: üçüncü taraf bağlantısı ve ek DNS çözümlemesi ortadan kalkar.
8. İlgili kişi başvuru kanalı
Kullanıcı; verisine erişme, düzeltilmesini veya silinmesini isteme hakkına sahiptir. Bunun için işleyen bir kanal kurmalısın.
- Başvuru yolunu açıkça yaz: e-posta adresi, KEP veya başvuru formu.
- Kimlik doğrulama adımını tanımla; yanlış kişiye veri vermek, veriyi vermemekten daha büyük bir ihlaldir.
- Yasal süre içinde (en geç otuz gün) yanıt ver.
- Süreci dokümante et: talebi kim karşılıyor, kayıt nerede tutuluyor, hangi adımlar izleniyor?
- Silme talebinde tüm kopyaları düşün: veritabanı, e-posta kutusu, CRM, tablolar ve yedekler.
9. Teknik ve idari güvenlik tedbirleri
Bu bölüm hem KVKK'nın "veri güvenliğine ilişkin yükümlülükler" maddesinin karşılığı hem de zaten iyi mühendislik:
- HTTPS her yerde ve HSTS açık; karışık içerik yok.
- Yönetim paneli: güçlü parola politikası, iki adımlı doğrulama, makul oturum süresi.
- Kaba kuvvet koruması: giriş ve form uçlarında hız sınırlama (rate limit).
- En az yetki ilkesi: her kullanıcı yalnızca işini yapacak kadar yetki alır.
- Parolalar güçlü bir algoritmayla (ör. bcrypt) hash'lenir; asla düz metin saklanmaz ve asla log'lanmaz.
- Sırlar yalnızca ortam değişkenlerinde durur; kod deposuna girmez.
- Bağımlılıklar güncel tutulur; bilinen zafiyetler düzenli taranır.
- Güvenlik başlıkları (CSP, X-Content-Type-Options, Referrer-Policy) tanımlıdır.
- Erişim kayıtları tutulur ve olağandışı hareket fark edilebilir.
- İhlal planı hazırdır: ihlal öğrenildiğinde Kurul'a ve ilgili kişilere bildirim yükümlülüğü vardır; bunu olay anında düşünmek geç kalmaktır.
Bu maddelerin bir kısmı teknik SEO kontrol listesiyle de örtüşür; HTTPS ve güvenlik başlıkları için da bakabilirsin.
10. Hizmet sağlayıcı sözleşmeleri
Hosting sağlayıcın, e-posta servisin, CRM'in ve siteyi geliştiren ajans ya da freelancer, senin adına veri işler. İlişkinin yazılı olması gerekir.
Sözleşmede aranacaklar: işlemenin yalnızca senin talimatınla ve belirli amaçla sınırlı olması, gizlilik taahhüdü, uygulanacak güvenlik tedbirleri, alt hizmet sağlayıcıların bildirilmesi ve iş bitiminde verinin iadesi ya da imhası.
Hızlı kontrol listesi
Yayına almadan önce baştan sona geç:
- Aydınlatma metni yayında ve veri toplanan her noktadan bağlantılı.
- Açık rıza yalnızca gereken yerde; ayrı ve önceden işaretlenmemiş kutu.
- Çerez banner'ı kategori bazlı; reddetmek kabul etmek kadar kolay; scriptler rızaya bağlı.
- Çerez politikası sayfası gerçek çerez listesiyle uyumlu.
- Formlarda yalnızca gerekli alanlar; log'da form içeriği yok.
- Saklama süreleri tanımlı, periyodik imha çalışıyor.
- Veri sorumlusu iletişim bilgileri görünür; VERBİS durumu netleştirilmiş.
- Yurt dışı aktarım envanteri çıkarılmış, gereksiz aktarım azaltılmış.
- Başvuru kanalı çalışıyor; kimlik doğrulama ve süre takibi tanımlı.
- HTTPS, iki adımlı doğrulama, hız sınırlama, güvenlik başlıkları, sır yönetimi tamam.
- Hizmet sağlayıcılarla yazılı sözleşme mevcut.
Uyum bir kerelik iş değil
Yeni bir form alanı, yeni bir analitik aracı ya da yeni bir entegrasyon eklediğin an bu listenin en az üç maddesi tekrar açılır. Bu yüzden uyumu lansman görevi olarak değil, her değişiklikte kısa bir gözden geçirme adımı olarak kurgulamak en sürdürülebilir yol.
Kurmakta olduğun ya da devraldığın bir sitede bu maddelerin teknik tarafını birlikte geçirebiliriz — çerez rıza kurgusundan form veri minimizasyonuna ve güvenlik başlıklarına kadar. yaklaşımımı inceleyebilir ya da .