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ı, Origin başlığı host etki alanıyla tam olarak eşleşmeyen tüm değişiklik (mutasyon) isteklerini 403 ORIGIN_REJECTED ile 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:crypto ile ü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=Strict ve Secure bayrakları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:

  1. Tarayıcı tarafından otomatik iletilen HttpOnly oturum çerezi.
  2. JavaScript belleğinde tutulan ve özel x-copypatch-csrf baş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:

HTTP Yanıt Başlığı
Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; connect-src 'self';