Güvenlik Mimarisi ve Tehdit Modeli
Güvenlik, CopyPatch'in temel tasarım sütunlarından biridir. Rastgele HTML veya Markdown depolayan geleneksel CMS platformlarının aksine CopyPatch; depolanmış XSS açıklarını önlemek, kaba kuvvet saldırılarını engellemek ve yönetim oturumlarını yalıtmak için sıkı mimari sınırlar uygular.
Temel Güvenlik İlkeleri
1. Sıkı Düz Metin İlkesi (Sıfır XSS)
CopyPatch yalnızca düz metin dizgilerini kabul eder, doğrular ve saklar:
- HTML etiketleri (örneğin
<script>,<iframe>,<img onerror>) hiçbir zaman DOM üzerinde aktif eleman olarak yorumlanmaz veya çalıştırılmaz. - React metin enterpolasyonu, değerleri standart güvenli metin düğümü olarak render eder (%0
dangerouslySetInnerHTML). - Sunucu tarafı doğrulaması Unicode boşluklarını normalize eder ve 64 KB üzerindeki aşırı büyük yükleri anında reddeder.
- Düzenleme alanlarına girilen potansiyel XSS kodları tamamen zararsız düz metin dizgisi olarak işlenir.
2. Aynı Köken (Same-Origin) Sınırı
CopyPatch v2 yalnızca ana uygulamanızın kendi kökeni içinde çalışır:
- Gömülü API rotası,
Originbaşlığı host etki alanıyla tam olarak eşleşmeyen tüm değişiklik (mutasyon) isteklerini403 ORIGIN_REJECTEDile reddeder. - CopyPatch harici CORS izin başlıkları üretmez ve güvensiz etki alanları arası proxy yapılandırmalarını desteklemez.
3. Argon2id Parola Hashleme Parametreleri
Dahili parola kimlik doğrulaması, GPU ve ASIC donanımlı kaba kuvvet saldırılarına karşı yüksek bellek direnci sağlayan Argon2id (RFC 9106 standart önerisi) ile korunur:
| Parametre | Değer | Gerekçe |
|---|---|---|
| Algoritma | Argon2id | Hem yan kanal hem de GPU kaba kuvvet saldırılarına karşı hibrit direnç. |
| Bellek Maliyeti (m) | 19 MiB (19456 KiB) | Saldırı donanımlarında tahmin denemesi başına yüksek RAM tahsisine zorlar. |
| Zaman Maliyeti (t) | 2 yineleme | Giriş gecikmesi yaşatmadan sağlam bir işlem yükü sağlar. |
| Paralellik (p) | 1 hat (lane) | Tek çekirdekli bulut ortamlarında kararlı ve öngörülebilir yürütme. |
| Tuz (Salt) Uzunluğu | 32 bayt (256 bit) | Her hash için kriptografik rastgele tuz üretilir. |
4. Sertleştirilmiş Oturum Yönetimi
- Yüksek Entropi: Oturum belirteçleri
node:cryptoile üretilen 256 bit kriptografik rastgelelik içerir. - Veritabanında Hashli Saklama: Depolama adaptörleri oturum ve hız sınırı belirteçlerinin yalnızca SHA-256 özetlerini saklar. Veritabanı dosyası sızsa bile geçerli oturum token'ları kurtarılamaz.
- Güvenli Çerezler:
HttpOnly,SameSite=StrictveSecurebayraklarıyla korunur. HTTPS ortamında__Host-öneki zorunlu kılınarak alt alan adı enjeksiyonu engellenir.
5. Çift Belirteçli (Dual-Token) CSRF Koruması
Tüm durum değiştiren mutasyon istekleri (taslak kaydetme, yayınlama) iki bağımsız doğrulama faktörü gerektirir:
- Tarayıcı tarafından otomatik iletilen
HttpOnlyoturum çerezi. - JavaScript belleğinde tutulan ve özel
x-copypatch-csrfbaşlığıyla gönderilen CSRF belirteci.
Tehdit Analiz Matrisi
| Saldırı Türü | Kritiklik | CopyPatch Mimari Koruması |
|---|---|---|
| Depolanmış XSS (Stored XSS) | Kritik | Sıkı düz metin normalizasyonu; standart React metin düğümü enterpolasyonu; sıfır HTML çalıştırma. |
| CSRF Saldırısı | Yüksek | Tam same-origin kontrolü + SameSite=Strict çerezler + zorunlu x-copypatch-csrf bellek başlığı. |
| Kaba Kuvvet (Brute-Force) | Yüksek | Kalıcı IP ve anahtar bazlı hız sınırlama + 19 MiB Argon2id bellek sertliği. |
| SQL Enjeksiyonu | Kritik | better-sqlite3 ve pg içinde %100 parametreli sorgular; sıkı anahtar ve dil regex denetimi. |
| Oturum Sızıntısı | Yüksek | Veritabanında SHA-256 token hashleme; HttpOnly + Secure + __Host- önekleri. |
| Revizyon Ezilmesi | Orta | Taslak ve yayın revizyon sayaçlarında atomik karşılaştır-ve-değiştir (CAS) doğrulaması. |
Önerilen İçerik Güvenlik Politikası (CSP)
Üretim ortamındaki sunucunuza aşağıdaki CSP yanıt başlığını eklemeniz önerilir:
Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; connect-src 'self';