Güvenlik ve Altyapı
Son güncelleme: 29 Ekim 2026 · Sürüm 1.0
RandevuTR'nin verinizi nasıl koruduğunu, hangi teknolojileri kullandığını ve hangi ayarlarla çalıştığını — hem yönetici hem teknik ekip okuyabilecek şekilde — açıklıyoruz.
Bu sayfa bilgilendirme amaçlıdır. Hukuki bağlayıcılığı olan metinler KVKK Aydınlatma Metni, Gizlilik Politikası ve Kullanım Koşulları'dır.
1. Altyapı nerede, nasıl çalışıyor?
| Katman | Ne kullanıyoruz | Ne işe yarar |
|---|---|---|
| Sunucu | Contabo VPS — KVM, 4 vCPU, 8 GB RAM, Almanya | Uygulama ve veritabanı burada çalışır |
| İşletim sistemi | Ubuntu 24.04 LTS | Güvenlik yamaları düzenli alınır |
| Konteyner | Docker + Compose, Alpine/Node 24 | Uygulama izole çalışır, sistemden ayrışır |
| Ters vekil (reverse proxy) | Caddy 2 — otomatik TLS | HTTPS sertifikası otomatik yenilenir |
| CDN / WAF | Cloudflare (proxy + HTTP/3) | DDoS koruması, hız, TLS sonlandırma |
| Veritabanı | SQLite (WAL modu), sunucu diski | Tek dosya, şifreli disk, günlük yedek |
| Yedek | Günlük otomatik yedek + 10 dakikalık bekçi | Geri yükleme süresi 0,3 saniye (test edildi) |
2. Şifreleme ve trafik
- Aktarımda şifreleme: Tüm trafik TLS 1.2+ ile şifrelenir; HTTP istekleri HTTPS'e yönlendirilir.
- HSTS:
max-age=31536000; includeSubDomains; preload— tarayıcı bir daha şifresiz bağlanmayı denemez. - Disk şifreleme: Sunucu diski sağlayıcı tarafından şifreli tutulur.
- Yedekler: Yalnızca sunucu içinde, dosya izinleri kısıtlı (
600/700).
3. Kimlik doğrulama (giriş)
| Konu | Uygulama |
|---|---|
| Şifre saklama | scrypt + kullanıcıya özel salt. Şifrenin kendisi asla saklanmaz. |
| Oturum | HMAC ile imzalı httpOnly çerez; SameSite=Lax, üretimde Secure. |
| Tek kullanımlık kod (OTP) | 6 hane, 10 dakika geçerli, 5 deneme hakkı, tek kullanım, veritabanında SHA-256 özeti saklanır. |
| Hız sınırı | Giriş: IP başına 15 dakikada 10 deneme. Kod gönderimi: 10 dakikada 3 kod. Dosya yükleme: dakikada 10. |
| Panel koruması | Oturum çerezi yoksa /admin ve /platform istekleri girişe yönlendirilir; API uçları 401 döner. |
4. Yetkilendirme ve kiracı izolasyonu
- Her işletmenin verisi
business_idile ayrılır; her sorgu oturumdaki işletmeye göre filtrelenir. - Personel yalnızca kendi takvimini görür; sahip/yönetici tüm işletmeyi görür.
- Platform paneli ayrı bir yetki seviyesidir (
role=platform). - Yabancı erişim denemeleri test edilir:
/api/admin/queue,/api/admin/waitlist,/api/admin/notifications,/api/platform/businesses-csv→ 401.
5. Uygulama güvenliği
| Tehdit | Önlem |
|---|---|
| SQL enjeksiyonu | Tüm sorgular hazır ifade (prepared statement) ile parametreli çalışır. |
| XSS | React otomatik kaçış + CSP beyaz listesi. |
| Clickjacking | X-Frame-Options: SAMEORIGIN + frame-ancestors 'self' |
| MIME karışıklığı | X-Content-Type-Options: nosniff |
| Zararlı dosya yükleme | Oturum zorunlu, 2 MB sınır, magic-byte doğrulaması (dosyanın gerçek türü ilk baytlardan kontrol edilir), rastgele dosya adı. |
| Bilgi sızıntısı | /.env, /src, /package.json gibi yollar 404 döner; x-powered-by kapalı. |
6. Kayıt, izleme ve geri alma
- Denetim kaydı (audit log): Kritik işlemler (ödeme, iade, işletme değişikliği) kim/ne zaman/neden bilgisiyle saklanır.
- Geri alma: Her sürüm Git ile izlenir; sorun çıkarsa tek komutla önceki sürüme dönülür.
- Veri bekçisi: 10 dakikada bir çalışır; günlük yedek alır, veri kaybı tespit ederse otomatik onarır.
- Sağlık kontrolü: Yayın sonrası otomatik kontrol; başarısızsa yayın durur.
7. Olay müdahale (ihlal)
- Tespit — izleme, bekçi veya bildirim.
- Sınırlama — etkilenen erişim derhal kapatılır, oturumlar geçersizleştirilir.
- Değerlendirme — hangi veri, kaç kişi, ne kadar süre.
- Bildirim — KVKK gereği 72 saat içinde Kişisel Verileri Koruma Kurulu'na; etkilenen kişilere makul sürede.
- Kayıt — olay defterine tarih, etki ve alınan aksiyon yazılır.
8. Alt işleyenler (veriyi işleyen üçüncü taraflar)
| Sağlayıcı | Amaç | Konum |
|---|---|---|
| Cloudflare | Trafik, WAF, CDN | Global |
| Contabo | Sunucu barındırma | Almanya |
| Resend | E-posta gönderimi | ABD |
| Open-Meteo | Hava durumu (işletme adresi) | Almanya/İsviçre |
| Netgsm | SMS gönderimi | Türkiye |
| Apple / Google | Bildirim (push) altyapısı | Global |
9. Bağımsız doğrulama
- Üretim bağımlılıklarında bilinen açık: 0 (
npm audit). - Yetkisiz erişim testleri: tüm panel API'leri 401.
- Güvenlik başlıkları: 3 adreste canlıda doğrulandı.
- Açık bulursan: [email protected] — 48 saat içinde yanıt.