Güvenlik

Güvenlik, sade biçimde

MyFina ev muhasebesidir. Finansal veri özeldir — pazarlama lafı olmadan nasıl korunduğunu gösteriyoruz.

Önemli sorulara üç kısa cevap

Nasıl şifreleniyor

İletimde TLS 1.3 (Let's Encrypt). Harici API anahtarları, banka token'ları ve broker sırları — kayıt başına benzersiz IV ile AES-256-GCM. Şifreler — bcrypt (12 tur). Şifreleme anahtarı veritabanında değil, env'de yaşar.

Nerede saklanıyor

PostgreSQL 16, Hetzner'deki (Almanya, AB) yönetilen örnekte. İzole Docker ağı, veritabanına dış bağlantı yok. Yedekler — günlük, yüklemeden önce şifrelenir, 30 gün saklama.

Nasıl siliniyor

Hesap hard-delete tek seferde: işlemler, hesaplar, kategoriler, para birimleri, token'lar art arda kaldırılır. Soft-delete tabloları yok, «ne olur ne olmaz» arşivi yok. Aynı e-postaya bağlı pazarlama lead'leri — ayrı erase-hook (GDPR Mad. 17).

Savunmanın altı sütunu

Kimlik doğrulama

JWT üzerinde NextAuth.js v5, şifreler bcrypt ile hash'lenir. Login throttling — identifier başına 5 deneme / 15 dk ve IP başına 20 / 15 dk. İsteğe bağlı Google OAuth. Şifre sıfırlama 32-byte token kullanır; veritabanında yalnızca SHA-256'sı saklanır.

«At rest» şifreleme

Harici API anahtarları (bankalar, Resend, Anthropic) ve broker sırları AES-256-GCM ile şifrelenir. Anahtar sunucudan asla çıkmaz. Her banka bağlantısı kendi 32-byte hex webhook sırrını taşır.

Kullanıcı verisi izolasyonu

Her UPDATE/DELETE `userId`'ye göre filtreler. IDOR koruması `assertCanAccessAccount/Category` içinde merkezileştirilmiştir — başkasının hesabına erişim 403 döner, 404 değil. Paylaşılan aile hesapları açık OWNER/MEMBER/VIEWER rolleri kullanır.

Oturumlar ve revocation

Artan `session_version`'lı JWT. Şifre değişikliği, hesap engelleme veya rol değişikliği tüm aktif oturumları geçersiz kılar. Mobil API refresh token'ları her yenilemede rotasyona girer.

GDPR ve gizlilik

Hesap hard-delete tüm işlemleri, hesapları ve kategorileri tek bir işlemde art arda kaldırır. Veri ihracı — tek tıkla CSV/XLSX/PDF. İki kategorili (essential / functional) çerez onayı, analitik yok, tracker yok.

Denetim ve gözlemlenebilirlik

Tüm admin eylemleri ve hassas kullanıcı işlemleri IP, user-agent ve source ile `audit_log`'a yazılır. Login deneme logları 30 gün tutulur. Stripe webhook olayları, hata durumunda güvenli replay için ayrı bir idempotency journal'ında oturur.

Yapmadığımız şeyler

  • Verilerinizi üçüncü taraflara satmıyoruz veya paylaşmıyoruz. Gelir kaynağımız Pro abonelik, reklam değil.
  • Kullanıcı sayfalarında web analitiği veya tracker çalıştırmıyoruz — Google Analytics, Mixpanel, Hotjar yok.
  • Şifreleri açık metin olarak saklamıyoruz — 12 turlu bcrypt, backdoor-recovery yok.
  • Bakiyenizi veya işlemlerinizi partner sitelere gömmüyoruz — widget yok, sızdıracak bir şey yok.

Banka senkronizasyonu — tam olarak ne paylaşılıyor

Monobank veya GoCardless üzerinden bir PSD2 bankası bağladığınızda, yalnızca işlemleri senkronize etmek için gerekenleri alırız: giden ödemeler, gelen transferler, hesap bakiyeleri. Banka tarafında hiçbir kişisel veri yok (pasaport, fotoğraf, biyometri). Banka API token'ı AES-256-GCM ile şifrelenmiş saklanır; Ayarlar → Bankalar üzerinden tek tıkla erişimi iptal edebilirsiniz. GoCardless onayı PSD2 gereği her 90 günde bir sona erer — 7 gün önceden hatırlatırız.

Güvenlik hakkında sık sorulan sorular

Sunucular fiziksel olarak nerede ve verilerin sahibi kim?

Sunucular Almanya Frankfurt'taki Hetzner veri merkezinde (AB). Veri sorumlusu MyFina sahibidir — agregatör aracı yok, ABD merkezli bulut sağlayıcı yok. Tam alt işleyici listesi /security/subprocessors sayfasında.

MyFina kapanırsa verilerime ne olur?

En az 30 gün önceden e-posta ile bildirim ve tek tıkla "Tümünü indir" düğmesi (CSV / XLSX / PDF formatlarında) göndereceğiz. Grace süresinden sonra veritabanı yok edilir. Bu Şartlarımızdaki operasyonel bir taahhüttür, pazarlama vaadi değil.

Hesabımı tamamen silebilir miyim?

Evet. Ayarlar → Veri → Hesabı sil tek DB işleminde hard-delete'tir: işlemler, hesaplar, kategoriler, tokenlar ve aynı e-postaya bağlı pazarlama lead'leri kademeli olarak silinir. Soft-delete yok, "ne olur ne olmaz" arşivleri yok. GDPR Madde 17 ile tam uyumlu.

MyFina içinde finansal verilerimi kim görür?

"Personel"den hiç kimsenin finansal verilerinize rutin erişimi yok. Sahip ancak güvenlik olayı sırasında veya açık support talebinizle veritabanına erişebilir. Tüm admin işlemleri IP ve user-agent ile audit_log'a kaydedilir.

Dizüstüm çalınırsa — MyFina şifresi beni korur mu?

Tarayıcı oturumları TTL'li JWT'lerdir, "sonsuza dek oturum açık" değil. Mevcut tarayıcınız çıkış yapmışsa, kimse şifre olmadan giremez. Oturum aktifse — OS kilit ekranını kullanın ve/veya başka bir cihazdan şifreyi değiştirin (bu tüm aktif oturumları anında geçersiz kılar).

Google Analytics, Facebook Pixel veya başka takipçilere bağlı mısınız?

Hayır. Kullanıcı sayfalarında tek bir analytics scripti çalıştırmıyoruz. Çerez banner'ı yalnızca iki kategori gösterir — essential (NextAuth oturum) ve functional (yönlendirme bağlantıları). Analytics kategorisi yok, çünkü analiz edilecek bir şey yok.

Kendiniz doğrulayabilecekleriniz

Yukarıdaki her iddia kod ve API üzerinden denetlenebilir.

  • Şifreleme: src/lib/crypto.ts (AES-256-GCM, randomBytes IV, auth tag).
  • Kimlik doğrulama: src/auth.ts, src/lib/auth/rate-limit.ts.
  • Yetkilendirme: src/lib/auth/ownership.ts (assertCanAccessAccount).
  • Açık API: https://app.my-fina.com/api/openapi (OpenAPI 3.1).
  • Health endpoint: https://app.my-fina.com/api/health (genel liveness).

Güvenlik bildirimlerini alın

CVE'ler, güvenlik yamaları ve tehdit modeli değişiklikleri hakkında haberdar olmak için abone olun. Pazarlama yok.

Pro hazır olduğunda haber ver

Tek bir e-posta. Spam yok. Tek tıkla çıkış.

GDPR uyumlu · veri AB'de işlenirSon güncelleme: 3 Haziran 2026