İçeriğe geç

Güvenlik ve Gizlilik Rehberi

Bu rehber, Kilavuz’un proje tarafından kontrol edilen güvenlik ve gizlilik yüzeylerini özetler. Wasp SDK’sının iç form kontrolleri İngilizce kalır; bu istisna bilinçli bir kapsam kararıdır ve README içinde ayrıca belgelenmiştir.

Kimlik doğrulama

  • Tüm hesap açma ve oturum açma işlemleri Wasp’ın sağladığı kimlik doğrulama katmanı üzerinden yürür. Parolalar bcrypt ile çözümsüz biçimde saklanır.
  • Doğrulama e-postaları noreply@kilavuz.app adresinden, noreply@kilavuz.app ile gönderilen tek gönderici kimliği üzerinden iletilir. Gönderici alan adı için gerekli DNS ve Resend doğrulamaları docs/deploy/kilavuz-readiness.md belgesinde listelenmiştir.

Oturum yönetimi

  • Oturum çerezleri HttpOnly ve Secure olarak ayarlanır.
  • Üretim ortamında (kilavuz.app, admin.kilavuz.app) tüm trafik HTTPS üzerinden zorunlu kılınır; HSTS başlığı Strict-Transport- Security: max-age=31536000; includeSubDomains; preload değeri ile yüklenir.
  • API katmanı (api.kilavuz.app), isteklere yalnızca izin verilen kaynak listesi (CORS_ALLOWED_DOMAINS) üzerinden yanıt verir. Liste sunucu başlangıcında ayrıştırılır; geçersiz bir girdi sunucunun açılmasını engeller ve hata günlüğüne yazılır.

Yönetim paneli ayrımı

admin.kilavuz.app ve kilavuz.app aynı kaynak kodu tabanını paylaşır, ancak farklı istemci paketleri olarak derlenir. Genel web nginx yapılandırması, /admin yolu için sabit bir 404 döner; üretim ortamında curl -o /dev/null -w '%{http_code}' https://kilavuz.app/admin komutunun 404 döndürmesi beklenir.

Yönetim paneli tarafı, sunucu tarafında isAdmin kontrolüyle korumalıdır. Bir yöneticinin (isAdmin === true) erişebildiği API uç noktaları sıradan kullanıcılara 403 döner; bu davranış kullanıcının seçtiği dilden bağımsızdır.

Çerez onayı

  • Çerez onayı diyaloğu, app/src/client/components/cookie-consent/ altında tanımlı sözlüklerden beslenir ve seçilen dille birlikte güncellenir.
  • Tercih localStorage["kilavuz.cookie-consent"] altında saklanır ve zorunlu çerezler dışındaki tüm çerezler bu tercih olmadan yüklenmez.
  • Tercih anahtarı eksikse diyalog kontrollü biçimde Türkçe içerikle görüntülenir; kullanıcı İngilizce’yi seçtikten sonra bile diyalog metinleri yeni dilde yeniden yüklenir.

Veri saklama

  • Sıradan kullanıcı verileri, uygulamanın Prisma şemasında tanımlı tablolarda Postgres üzerinde saklanır.
  • Bir kullanıcı hesabını sildiğinde, kullanıcıya ait kişisel veriler geri dönüşü olmayan biçimde silinir; anonimleştirilmiş denetim kayıtları (örneğin fatura dönem bilgisi) yasal saklama süresi boyunca tutulabilir.
  • Yumuşak silinen sorular, projenin kendi “çöp kutusu” sorgusunda görünür kalır ve proje sahibi tarafından kalıcı olarak temizlenene kadar veritabanında deletedAt damgasıyla saklanır.

Geliştirme ortamında e-posta doğrulamayı atla

SKIP_EMAIL_VERIFICATION_IN_DEV ortam değişkeni true olarak ayarlandığında, geliştirme ve uçtan uca test koşumlarında e-posta doğrulama adımı atlanır. Bu değişken yalnızca geliştirme ortamlarında etkindir; üretim yapılandırmasında göz ardı edilir.

İhlal bildirimi

Güvenlik açıklarını security@kilavuz.app üzerinden bildirin. Bu adres şu anda bir yönlendirme olarak çalışır ve gönderilen postalara yanıt verilmez; gerçek bir dağıtım adresi, dağıtım hazırlık belgesinde ayrıca yayımlanacaktır.