first commit

This commit is contained in:
Beyhan Oğur
2026-04-26 22:09:32 +03:00
commit 71eff2d979
78 changed files with 10173 additions and 0 deletions

61
SECURITY.md Normal file
View File

@@ -0,0 +1,61 @@
# 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.