Files
image-apiv2/SECURITY.md
Beyhan Oğur 71eff2d979 first commit
2026-04-26 22:09:32 +03:00

2.3 KiB
Raw Blame History

Güvenlik İyileştirmeleri

Bu dokümanda production'a hazırlık için yapılan güvenlik iyileştirmeleri listelenmektedir.

Yapılan İyileştirmeler

1. Debug Bilgilerinin Kaldırılması

  • Production console.log ifadeleri kaldırıldı
  • API response'lardan debug bilgileri çıkarıldı
  • Hata mesajlarında hassas bilgi sızıntısı önlendi

2. File Upload Güvenliği

  • Dosya boyutu limiti eklendi (maksimum 10MB)
  • MIME type validasyonu eklendi
  • Sadece resim dosyaları kabul ediliyor (jpeg, jpg, png, gif, webp, avif)
  • Path traversal koruması (nanoid kullanımı)

3. Input Validasyonu

  • Width/Height validasyonu (1-10000px arası)
  • Quality validasyonu (1-100 arası)
  • Format validasyonu (sadece izin verilen formatlar)
  • Image ID validasyonu (uzunluk ve tip kontrolü)

4. Security Headers

  • Strict-Transport-Security (HSTS)
  • X-Frame-Options
  • X-Content-Type-Options
  • X-XSS-Protection
  • Referrer-Policy
  • Permissions-Policy

5. Authentication & Authorization

  • Tüm API endpoint'lerinde authentication kontrolü
  • User-based authorization (kullanıcılar sadece kendi resimlerini görebilir/silebilir)
  • Better Auth kullanımı (güvenli session yönetimi)

6. Database Security

  • Drizzle ORM kullanımı (SQL injection koruması)
  • Parameterized queries
  • Foreign key constraints

7. Environment Variables

  • Hassas bilgiler environment variable'larda
  • .env.example dosyası oluşturuldu
  • .gitignore'da .env dosyaları ignore ediliyor

Production Checklist

  • BETTER_AUTH_SECRET güçlü bir secret olarak ayarlanmalı (min 32 karakter)
  • BETTER_AUTH_URL production domain'i ile güncellenmeli
  • DATABASE_URL production veritabanı bağlantısı ile güncellenmeli
  • HTTPS kullanılmalı (production'da)
  • Rate limiting eklenmeli (opsiyonel, yüksek trafik için)
  • Monitoring ve logging kurulumu yapılmalı
  • Regular backup stratejisi oluşturulmalı

Notlar

  • File upload limiti 10MB olarak ayarlanmıştır. Gerekirse artırılabilir.
  • Tüm hata mesajları generic olarak döndürülmektedir (hassas bilgi sızıntısını önlemek için).
  • Console.log ifadeleri production'dan kaldırılmıştır, ancak geliştirme ortamında gerekirse eklenebilir.