Güvenli Bir Doküman Görüntüleyici Yerleştirme: Ön‑Uç Geliştiricilerin Çoğu Zaman Kaçırdığı 7 Temel Özellik
06.03.2026

Güvenli Bir Doküman Görüntüleyici Yerleştirme: Ön‑Uç Geliştiricilerin Çoğu Zaman Kaçırdığı 7 Temel Özellik

Güvenli doküman görüntüleyici yerleştirmeleri için 7 zorunlu güvenlik özelliğini—şifreleme, CSP, sandboxlı iframe'ler, token kimlik doğrulaması, filigranlar, denetim günlükleri ve daha fazlasını—öğrenin.

Bir PDF, PPT ya da fatura görüntülemek için cilalı bir UI yayınladığınızda, genellikle estetik, duyarlılık ve yük‑leme süresine odaklanırsınız. Ancak gözden kaçan şey, belgelerin sunucunuzdan kullanıcının tarayıcısına nasıl yol aldıklarıdır. Tek bir adım hatası, sağlam bir uygulamayı veri sızıntısı vektörüne dönüştürebilir.

Bu rehberde, gizlilik‑odaklı bir doküman görüntüleyici entegrasyonu yaparken kutudan çıkar çıkmaz yedi güvenlik‑odaklı yeteneği nasıl yerleştirmeniz gerektiğini anlatacağız. Kontrol listesi, gereksiz karmaşıklık eklemeden gömülülerini güçlendirmek isteyen ön‑uç mühendisleri için hazırlanmıştır.


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

Neden Önemli

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

Nasıl Uygulanır

AdımEylem
Sunucu‑tarafı şifrelemeDosyayı (AES‑256‑GCM sağlam bir seçimdir) depolamadan veya akışa vermeden önce şifreleyin.
Ulaşım 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 canvas'ına besleyen bir Web Worker başlatın.
Anahtarı asla ortaya çıkarmayınŞifre çözme anahtarını kısa ömürlü, sunucu‑tarafı oluşturulmuş bir token içinde tutun (bkz. Özellik #4).

Görüntüleyici render edildiğinde, belge ağda ya da ana iş parçacığında asla düz metin olarak ortaya çıkmamış olur.


2. İçerik‑Güvenlik‑Politikası (CSP) Beyaz Listeleme

Risk

Gevşek bir CSP, saldırganın kötü amaçlı betikler enjekte etmesine ya da izinsiz kaynakları yüklemesine izin vererek görüntüleyicinin canvas verilerini okuyabilir.

Anahtar noktalar

  • ‘unsafe‑inline’ ve ‘unsafe‑eval’ betikler için yasaktır.
  • Yalnızca görüntüleyicinin CDN'i (veya kendi barındırdığınız paket) JavaScript sunabilir.
  • Çerçeveler yalnızca güvenilen görüntüleyici alanına sınırlıdır.

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


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

Neden sandbox?

CSP olsa bile, bozulmuş bir sayfa görüntüleyicinin DOM'una ulaşmaya çalışabilir. İzole bir <iframe> güvenlik kafesi oluşturur; ana sayfa açıkça izin vermedikçe bu kafeyi 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ı amaçlı beklenmedik pop‑up'ları engeller.

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


4. Token‑Tabanlı Erişim Kontrolü

Doğrudan URL'lerin sorunu

Herkese açık, statik URL'ler dosyayı kalıcı olarak indirmeye 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 ve Dinamik Katmanlar

Amaç

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

Uygulama İpuçları

  • PDF sayfalarının üzerine oturan bir canvas katmanı üzerinde filigranı render edin.
  • Oturumun e‑posta adresi ya da rastgele bir UUID kullanarak her görüntüleyici örneğini benzersiz kılın.
  • Performans yükünü minimumda tutmak için basit bir bayrakla katmanı 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 ve Yazdırma Kısıtlamaları

Tarayıcı varsayılanları

Çoğu tarayıcı, canvas'ı resim olarak kaydetmeye yarayan bir sağ‑tık menüsü sunar; bu da sayfanın dışa aktarılmasını sağlar.

Bir görüntüleyicinin yapabilecekleri ve yapamayacakları

Bir doküman görüntüleyici SDK'sı araç çubuğundaki dışa aktarım eylemlerini gizleyebilir ve Doconut özellik kataloğu, tarayıcı yazdırma ve PDF dışa aktarma gibi yeteneklerin sunulup sunulmayacağını belirlemenize olanak tanır. Kurulum yaptığınız sürümün belgelerine bakın; bu makaledeki gibi yapılandırma anahtarları sürümler arasında değişir.

Daha da önemlisi, hiçbir araç çubuğu ayarı bu kısmı kapsamaz. Bir düğmeyi gizlemek bir iş akışı seçeneğidir, erişim kontrolü değildir. Sunucu hâlâ her sayfa, küçük resim, dışa aktarım, indirme ve yazdırma isteğini ayrı ayrı yetkilendirmelidir, çünkü bu uç noktalar doğrudan çağrılabilir. Ve pikseller ekranda göründükten sonra ekran görüntüleri, kameralar ve erişilebilirlik araçları mevcuttur; aksi takdirde vaat eden bir görüntüleyici size sunamayacağı bir şeyi satmaktadır.


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

Görünürlüğün değeri

En sağlam görüntüleyici bile kötüye kullanılabilir. Kimlerin hangi belgeyi ne zaman açtığını ve hangi eylemleri yaptığını kaydetmek, adli bir iz bırakır.

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


Sonuç

Bir doküman görüntüleyici yerleştirmek sadece UI değil, aynı zamanda bir güvenlik sorumluluğudur. Belge akışının şifrelenmesi, katı bir İçerik‑Güvenlik‑Politikası, izole bir iframe sandbox, token‑tabanlı erişim, dinamik filigranlar, UX odaklı dışa aktarım kısıtlamaları ve denetim günlüğü, savunulabilir bir gömme ile savunulamaz bir gömme arasındaki farkı oluşturur.

Bu yedi maddeden ikisi, hangi görüntüleyiciyi seçerseniz seçin, sizin sorumluluğunuzdadır: yetkilendirme ve denetim. Hiçbir bileşen bu kararı sizin yerinize veremez.

Gömeyi oluşturmaya hazır mısınız?

  1. Kurulum yaptığınız sürümün sağlayıcısının belgelerinden başlayın. Doconut için bu, doconut.com — paketler, kurulum kılavuzları ve örnekler. Makalelerden kopyalanan yapılandırma anahtarları, yükseltmelerde entegrasyonların kırılmasına yol açar.
  2. Yedi maddelik kontrol listesini pull‑request şablonunuza ekleyin böylece güvenlik incelemesi birleştirmeden önce yapılır, olaydan sonra değil.
  3. Negatif senaryoları önce test edin: başka bir kiracının belge tanımlayıcısı, süresi dolmuş oturum, doğrudan sayfa ya da dışa aktarım uç noktasına istek. Bu testler gerçek açıkları ortaya çıkarır.