Güvenli Bir Belge Görüntüleyici Yerleştirme: Ön Uç Geliştiricilerin Çoğunlukla Kaçırdığı 7 Temel Özellik
3/6/2026

Güvenli Bir Belge Görüntüleyici Yerleştirme: Ön Uç Geliştiricilerin Çoğunlukla Kaçırdığı 7 Temel Özellik

Güvenli Bir Belge Görüntüleyici Yerleştirme: Ön Uç Geliştiricilerin Çoğunlukla Kaçırdığı 7 Temel Özellik

PDF, PPT veya faturaları görüntülemek için cilalı bir UI sunduğunuzda, genellikle estetik, duyarlılık ve yükleme süresine odaklanırsınız. Bununla birlikte gözden kaçan şey, belgelerin sunucunuzdan kullanıcının tarayıcısına nasıl ulaştığıdır. Tek bir yanlış adım, sağlam bir uygulamayı veri sızıntısı vektörüne dönüştürebilir.

Bu rehberde, gizlilik odaklı bir belge görüntüleyici entegre ederken kutudan çıkar çıkmaz yerleştirmeniz gereken yedi güvenlik odaklı özelliği adım adım inceleyeceğiz. Kontrol listesi, gömülerini gereksiz karmaşıklık eklemeden güçlendirmek isteyen ön uç mühendisleri için hazırlanmıştır.


1. Belge Akışının Uçtan Uca Şifrelenmesi

Neden Önemlidir

Dosyaları HTTPS üzerinden servis etseniz bile, ham belge, görüntüleyiciye ulaşmadan önce yanıtı okuyan bir tarayıcı uzantısı ya da kötü amaçlı bir script tarafından ele geçirilebilir.

Nasıl Uygulanır

Adımİşlem
Sunucu‑tarafı şifrelemeDosyayı (AES‑256‑GCM sağlam bir tercihtir) depolamadan ya da akışa almadan önce şifreleyin.
İletim güvenliğiŞifreli bloğu TLS 1.3 üzerinden iletin.
İstemci‑tarafı şifre çözmeŞifreli akışı alan, bellekte şifre çözen ve düz metni doğrudan görüntüleyicinin tuvali (canvas) içine besleyen bir Web Worker başlatın.
Anahtarı Asla Açığa ÇıkarmaŞifre çözme anahtarını, kısa ömürlü, sunucu‑tarafı üretilen bir token içinde tutun (özellik #4’e bakın).

Görüntüleyici render edildiğinde, belge ağda veya ana iş parçacığında bir hiç şifresiz olarak ortaya çıkmamış olur.


2. Content‑Security‑Policy (CSP) Beyaz Listesi

Risk

Gevşek bir CSP, saldırganın kötü amaçlı scriptler enjekte etmesine veya görüntüleyicinin tuval (canvas) verilerini okuyabilecek sahte kaynakları yüklemesine izin verir.

Anahtar noktalar

  • ‘unsafe‑inline’ ve ‘unsafe‑eval’ scriptler için yasaktır.
  • Yalnızca görüntüleyicinin CDN'i (veya kendi barındırılan paketi) JavaScript sunabilir.
  • Çerçeveler (frames) güvenilir görüntüleyici alanına (domain) kısıtlanır.

Sıkı bir CSP, gömünün barındırıldığı sayfanın saldırı yüzeyini büyük ölçüde azaltır.


3. iframe Sandbox ile Aynı Köken İzolasyonu

Sandbox Neden?

CSP bile olsa, tehlikeye düşmüş bir sayfa görüntüleyicinin DOM'una ulaşmaya çalışabilir. İzole bir <iframe> güvenlik kafesi oluşturur ve ana sayfa bunu açık bir izin olmadan kıramaz.

Kaçınılması gereken sandbox bayrakları

  • allow-top-navigation – görüntüleyicinin üst‑seviye pencereyi ele geçirmesini önler.
  • allow-popups – kimlik avı için kullanılabilecek beklenmedik pop‑up'ları engeller.

Görüntüleyicinin üst sayfa ile iletişim kurması gerekiyorsa (ör. UI senkronizasyonu için), açık bir origin kontrolü ile postMessage kullanın.


4. Token‑Tabanlı Erişim Kontrolü

Doğrudan URL'lerin Problemi

Genel, statik URL'ler bağlantıyı elinde bulunduran herkesin dosyayı süresiz olarak indirmesine izin verir.

Token sunucu‑tarafı imzalandığı için, herhangi bir manipülasyon isteği geçersiz kılar ve görüntüleyici yüklemeyi reddeder.


5. Filigranlama & Dinamik Katmanlar

Amaç

Dinamik, istemci‑tarafı bir filigran, orijinal dosyayı değiştirmeden sorumluluk katmanı ekler.

Uygulama İpuçları

  • Filigranı, PDF sayfalarının üzerine yerleştirilen bir canvas katmanı üzerine çizin.
  • Oturumun e‑posta adresini veya rastgele bir UUID'yi kullanın; böylece her görüntüleyici örneği benzersiz olur.
  • Performans yükünü düşük tutmak için katmanı basit bir bayrakla açıp kapatın.

Eğer sızdırılan bir belge ortaya çıkarsa, gömülü tanımlayıcı doğrudan kaynağa işaret eder.


6. İndirme & Yazdırma Kısıtlamaları

Tarayıcı Varsayılanları

Çoğu tarayıcı, tuvali bir görüntü olarak kaydedebilen sağ‑tık bağlam menüsü sunar; bu da belgeyi etkili bir şekilde dışa aktarır.

Savunma Bayrakları

Görüntüleyici seçeneğiEtki
disableDownload: true“İndir” arayüzünü gizler ve Ctrl+S kısayollarını devre dışı bırakır.
disablePrint: trueCtrl+P tuşunun gömü için yazdırma iletişim kutusunu açmasını engeller.
preventContextMenu: trueGörüntüleyici alanı üzerindeki yerel bağlam menüsünü engeller.

Bunları iframe sandbox'ı ile birleştirerek, ana sayfanın JavaScript aracılığıyla bunları atlatmasını engelleyin.


7. Denetim Günlüğü & Olay Kancaları

Görünürlük Değeri

En sağlam şekilde güçlendirilmiş görüntüleyici bile kötüye kullanılabilir. Kimlerin, ne zaman hangi belgeyi açtığını ve hangi eylemleri gerçekleştirdiğini kaydetmek adli bir iz oluşturur.

Gerçek‑zamanlı günlüklerle, bir kullanıcının saniyeler içinde onlarca gizli PDF açması gibi anormal kalıpları tespit edip uyarı veya erişim iptali tetikleyebilirsiniz.


Sonuç

Bir belge görüntüleyici yerleştirmek sadece bir UI meselesi değil; aynı zamanda bir güvenlik sorumluluğudur. Uçtan uca şifreleme, katı bir Content‑Security‑Policy, izole bir iframe sandbox, token‑tabanlı erişim, dinamik filigranlar, indirme/yazdırma kısıtlamaları ve kapsamlı denetim günlüğü ekleyerek basit bir gömüyü sağlam, ihlale dayanıklı bir bileşene dönüştürürsünüz.

Bir sonraki uygulamanızı güvence altına almaya hazır mısınız?

  1. https://doconut.com adresinden ücretsiz SDK’yı indirin – eklenti yok, ekstra bağımlılık yok.
  2. Yedi maddelik kontrol listesini pull‑request şablonunuza kopyalayarak güvenliği bir alışkanlık haline getirin.
  3. İlk özelliği bugün uygulayın ve ilerlemenizi yorumlarda paylaşın—topluluk sorumluluğu herkesin güvende kalmasına yardımcı olur.

Güvende kalın, hızlı kalın ve kodlamanın tadını çıkarın!