Web görüntüleyici
Web görüntüleyici güvenliği ve gizlilik
vivePDF web görüntüleyicinin neyi kime gönderdiği, başka sitedeki PDF'lerin nasıl gösterileceği ve denenmiş İçerik Güvenliği Politikaları.
Görüntüleyici, gizliliği önemseyen ve sıkı güvenlik politikaları çalıştıran sitelerde güvenle kullanılmak için yapıldı. Bu sayfa ne indirdiğini, neyi asla yapmadığını ve sunucunun hangi ayarlara ihtiyaç duyabileceğini anlatıyor.
Ziyaretçinin tarayıcısından ne çıkar
Ziyaretçi ya da belge hakkında vivePDF’e hiçbir şey gönderilmez. Tarayıcı yalnızca şu istekleri yapar:
| İstek | Nereye |
|---|---|
| Görüntüleyicinin kendi dosyaları (yükleyici, görüntüleyici, işçiler, motor) | Senin sunucun ya da onları yüklediğin CDN |
src içindeki adres |
|
Yedek fontlar; yalnızca fonts özniteliğiyle ve yalnızca belgenin ihtiyaç duyduğu diller için |
Belirttiğin klasör |
Analiz aracı, çerez ya da hesap yok. Ziyaretçinin open(file) ile açtığı bir dosya onun tarayıcısında kalır. Çizimler de senin sayfan onları annotations() ya da save() ile okuyana kadar orada kalır.
Araç çubuğundaki vivePDF işareti, adresinde ?ref=viewer bulunan düz bir bağlantıdır. Ziyaretçi tıklamadıkça vivepdf.com’dan hiçbir şey yüklenmez.
PDF içindeki bağlantılar
Bir PDF bağlantılar içerebilir. Görüntüleyici başka sayfalara atlamaları izler, web ve e-posta bağlantılarını o sekmeye senin sayfana erişim vermeden yeni bir sekmede açar, betik bağlantılarını ve diğer bütün adres türlerini yok sayar. İçindekiler listesindeki bağlantılar da aynı şekilde denetlenir.
Başka sitedeki PDF’ler
PDF’i ziyaretçinin tarayıcısı indirir; bu yüzden başka bir alan adındaki dosyanın senin sayfanın onu okumasına izin vermesi gerekir. O site PDF ile birlikte şu başlıkları göndermelidir:
Access-Control-Allow-Origin: https://senin-siten.example
Access-Control-Expose-Headers: Content-Range
İkinci başlık, görüntüleyicinin büyük bir dosyanın yalnızca ekrandaki kısımlarını indirmesini sağlar; o olmadan görüntüleyici dosyanın tamamını indirir. İlki olmadan dosya okunamaz ve görüntüleyici network bildirir.
Güvenlik politikası (CSP)
Görüntüleyici 'unsafe-inline' ya da 'unsafe-eval' istemez. Stilleri oluşturulmuş stil sayfalarıyla (constructed style sheets) uygulanır; bu yüzden style-src onun için bir şey gerektirmez. Aşağıdaki politikalar Chromium ve WebKit’te denendi ve hiçbir ihlal raporuna yol açmıyor.
Görüntüleyici dosyaları kendi sitende
default-src 'none';
script-src 'self' 'wasm-unsafe-eval';
worker-src 'self';
connect-src 'self';
img-src 'self' blob:
Görüntüleyici dosyaları bir CDN’den
Başka bir CDN kullanıyorsan https://cdn.jsdelivr.net yerine onu yaz.
default-src 'none';
script-src 'self' https://cdn.jsdelivr.net 'wasm-unsafe-eval';
worker-src blob: https://cdn.jsdelivr.net;
connect-src 'self' https://cdn.jsdelivr.net;
img-src 'self' blob:
Bunlar yalnızca görüntüleyiciyi gösteren bir sayfa için eksiksiz politikalar; sayfanın geri kalanının ihtiyacı olanları ekle.
Her kayıt ne için
| Yönerge | Neden |
|---|---|
Görüntüleyicinin kaynağıyla script-src |
Yükleyici ve onun yüklediği görüntüleyici kodu |
'wasm-unsafe-eval' |
PDF motoru WebAssembly’dir ve onsuz başlayamaz |
worker-src |
Motor bir işçide (worker) çalışır. CDN’den gelirken işçi, asıl işçiyi yükleyen küçük bir blob: betiğiyle başlar; bu yüzden ikisi de gerekir |
connect-src |
PDF, motor dosyası ve fonts varsa font klasörü |
img-src blob: |
Sayfalar tarayıcıda üretilen resimler olarak gösterilir |
PDF ya da fontlar başka bir sitedeyse o siteyi connect-src’ye ekle:
connect-src 'self' https://dosyalar.example.com
Bazı sunucular aynı politikayı görüntüleyicinin betikleri dahil her dosyayla gönderir; tarayıcı o zaman politikayı motorun işçisinde de uygular. Yukarıdaki politikalar bu durumu da karşılar.
Önbellek
Motor (sıkıştırmadan önce yaklaşık 4,5 MB) sitenin Cache Storage’ında, adı vivepdf-engine- ile başlayan bir alanda tutulur; ziyaretçi onu her sürüm için bir kez indirir. Yeni sürüm kaydedilince eskileri silinir. Politikaya ek bir şey gerektirmez.
Dışarıdan gelen çizim verisi
setAnnotations() yalnızca görüntüleyicinin bildiği alanları kabul eder, her sayıyı, rengi ve uzunluğu denetler, bir kayıt hatalıysa hiçbir şeyi değiştirmez. Güvenilmeyen bir kaynaktan gelen liste PDF’e bağlantı, resim ya da betik koyamaz. Sınırlar çizim araçlarıyla birlikte listeleniyor.