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
PDF 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.