
Bezpečnostní úvahy pro .NET prohlížeče dokumentů v podnikových aplikacích
Úvod

Budování .NET‑based prohlížeče dokumentů znamená, že musíte myslet na bezpečnost od prvního dne. Když vložíte prohlížeč do podnikového .NET aplikace, hlavní otázkou je jak udržet obsah důvěrný a zároveň uživatelům poskytnout bohatý, interaktivní zážitek. Ať už vytváříte DMS, zákaznický portál nebo workflow pro právní technologie, musíte chránit duševní vlastnictví, osobní údaje i informace vyžadované regulacemi v každém kroku zobrazovacího řetězce. V tomto článku provedeme senior vývojáře a architekty nejčastějšími vektory útoků, architektonickými volbami, které udržují riziko nízké, a proč je univerzální prohlížeč dokumentů Doconut postavený jako bezpečný základ pro jakékoli .NET řešení zaměřené na dokumenty.
1. Hrozby pro vložené prohlížeče
I když je UI krásně navrženo, může se stát povrch útoku, pokud prohlížeč uniká data nebo spouští nedůvěryhodný kód. Níže jsou tři kategorie hrozeb, se kterými se pravděpodobně setkáte:
| Hrozba | Typická manifestace | Obchodní dopad |
|---|---|---|
| Data exfiltration | Přímé odkazy ke stažení, nezabezpečené API nebo client‑side renderování, které odesílá surové bajty do prohlížeče. | Ztráta důvěrných smluv, úniky osobních údajů (PII), regulatorní pokuty. |
| Cross‑site scripting (XSS) & injection | Škodlivý markup uvnitř PDF nebo Office souboru, který spustí skript při renderování. | Převzetí relace, krádež přihlašovacích údajů, ransomware pivot. |
| Unauthorized manipulation | Uživatelé přidávají nebo upravují anotace a poté exportují změněný soubor bez auditních stop. | Právní spory, falšované záznamy, porušení souladnosti. |
Protože prohlížeče často potřebují renderovat složité formáty (PDF, DOCX, DWG atd.) a podporovat funkce jako annotation a OCR, rozšiřují se kódové cesty – a tím i povrchy útoku. První obranná linie? Udržet jasné oddělení mezi trusted server‑side processing a controlled client‑side interaction.
2. Server‑side vs. client‑side renderování v .NET
Proč je důležité renderování na serveru
- Žádné úniky dat – Surový soubor nikdy neopustí důvěryhodný backend. Do prohlížeče putují jen renderované obrázky nebo bezpečné HTML fragmenty.
- Centralizovaná vynucení politik – Šifrování, redakce a vizuální označení lze aplikovat jednotně před tím, než dokument dosáhne jakéhokoli uživatele.
- Škálovatelná izolace – Náročná konverze (např. převod CAD DWG na rastrový obrázek) může běžet v izolovaných background jobech, čímž se omezuje dopad kompromitovaného požadavku.
Kdy je akceptovatelné renderování na klientovi
- Náhledy s nízkou citlivostí (veřejné brožury), kde je hlavní prioritou latence.
- Prostředí, kde je celá infrastruktura air‑gapped a klient běží na důvěryhodném korporátním zařízení.
Vyvážená architektura Doconut
Doconut udržuje těžkou konverzi, OCR a přípravu anotací na serveru, zatímco poskytuje lehký, HTML5‑based viewer, který běží v jakémkoli moderním prohlížeči. Viewer nikdy nevyžaduje třetí‑stranné pluginy a veškeré renderování pochází ze streamů, které vznikají v server‑side komponentě Viewer. Tento design eliminuje vzor „stáhnout‑originální‑soubor“, na který se mnoho nebezpečných řešení spoléhá.
Jak zaregistrovat Doconut v ASP.NET Core pipeline
Místo ukázky kódu si představte registraci jako přidání middleware komponenty, která zachytí požadavky na Doconut endpoint pro obrázky (např. DocImage.axd) a nasměruje je přes renderovací engine Doconut. Middleware ověří každý požadavek vůči vaší existující autentizační/autorizační logice, než povolí odeslání image streamu klientovi. Nastavením middleware tak, aby odmítl jakýkoli požadavek, který nesplňuje vaše bezpečnostní kritéria, zajistíte, že budou renderovány jen prověřené dokumenty.
3. Řízení přístupu, autentizace a autorizace
Strategie řízení přístupu
Místo vystavení statické cesty k souboru nebo veřejné URL integrujte Doconut s vaším existujícím poskytovatelem identity. Když uživatel požaduje dokument, váš server‑side kód by měl:
- Ověřit identitu uživatele a role pomocí standardního ASP.NET Core autentizačního pipeline.
- Proved další kontrolu obchodní logiky (např. ověření, že uživatel patří do správného oddělení nebo má konkrétní claim).
- Pokud kontroly projdou, zavolat Doconut viewer k vygenerování secure stream pro požadovanou stránku dokumentu. Stream je svázán s aktuálním HTTP požadavkem, takže po ukončení relace nelze znovu použít.
Oprávnění k anotacím
Doconut Annotation Plugin funguje na úrovni jednotlivých stránek. Po potvrzení práv uživatele server vytvoří AnnotationManager pro požadovanou stránku. Pokud uživatel postrádá odpovídající claim (např. CanAnnotate), server vrátí pouze read‑only view a jakýkoli pokus o odeslání změn anotací bude odmítnut odpovědí 403. Tím je zajištěno, že jen oprávněný personál může přidávat nebo měnit recenzní komentáře.
4. Prevence úniku dat: šifrování, vizuální označení a kontrolovaný tisk
End‑to‑End šifrování
Všechny dokumentové streamy zpracovávané Doconut přenáší HTTPS a jsou šifrovány v klidu pomocí vámi zvoleného úložiště (Azure Blob, SQL Transparent Data Encryption atd.). Viewer přijímá jen rasterizované stránky, nikdy originální soubor, takže klient nikdy nezíská přímý přístup ke zdrojovému dokumentu.
Vizuální označení (watermarks) pomocí anotací
Protože renderování probíhá na serveru, můžete před odesláním stránky do prohlížeče přidat uživatelskou anotaci – například poloprůhledný textový overlay obsahující jméno, e‑mail a časové razítko prohlížeče. Tento přístup odrazuje od screenshotování a poskytuje forenzní důkaz v případě úniku, přičemž zůstává v rámci ověřených anotací Doconut.
Kontrolovaný tisk
Mnoho podniků vyžaduje, aby dokumenty byly tisknutelné pouze na autorizovaných zařízeních nebo s omezeným počtem kopií. Funkce Controlled Printing v Doconut vám umožní zachytit tiskový příkaz na serveru, ověřit roli uživatele a případně vložit poznámku „Printed on“ do generovaného PDF. Tisková úloha je vytvořena na serveru, takže klient nikdy neobdrží neoznačenou verzi dokumentu.
5. Auditing, logging a soulad pro OCR a anotace
Neměnné auditní stopy
Každá operace s anotacemi – přidání, úprava, smazání – vytvoří XML payload, který lze uložit do neměnného logu (např. Azure Append Blob nebo neměnná databázová tabulka). Metoda Doconut GetAnnotationXml() vrací přesný stav po každé změně, což vám umožní uložit XML spolu s časovým razítkem a identifikátorem uživatele. V kombinaci s bezpečnostními kontrolami na úrovni požadavku můžete rekonstruovat kdo co viděl, kdy a jak s tím interagoval.
Bezpečné zpracování OCR
OCR je nezbytné pro prohledávatelné PDF, ale zavádí také riziko: OCR engine může nechtěně vystavit surový text klientovi. Doconut provádí OCR server‑side a vrací jen data indexu pro vyhledávání. Originální naskenovaný obrázek zůstává šifrovaný a prohledávatelný text žije v read‑only cache, která respektuje stejné pravidla životního cyklu požadavku jako zbytek vieweru.
Soulad s regulacemi
Protože veškeré zpracování zůstává on‑premise (nebo v privátním cloudu pod vaší kontrolou), Doconut vám pomáhá splnit požadavky GDPR, HIPAA a PCI‑DSS, které zakazují odesílání chráněných dat na třetí‑stranné SaaS endpointy. Architektura produktu také podporuje audit‑ready logy, což značně usnadňuje tvorbu souladových zpráv.
6. Jak Doconut promění bezpečnostní požadavky v konkurenční výhodu
| Bezpečnostní požadavek | Funkce Doconut | Obchodní výhoda |
|---|---|---|
| Zero data exfiltration | Server‑side konverze a renderování na bázi streamu | Důvěrné soubory nikdy neopustí důvěryhodné prostředí. |
| XSS protection | Sanitizovaný HTML výstup, žádné spouštění skriptů na klientovi z dokumentů | Snižuje povrch útoku bez nutnosti dalšího kódování. |
| Granular permission enforcement | Claims‑aware middleware, per‑page annotation manager | Soulad s existujícími RBAC modely a menší administrativní zátěž. |
| Controlled printing & visual markings | Vestavěný tiskový workflow s overlay anotacemi | Odrazuje od úniku dat a poskytuje forenzní stopu. |
| Auditability | GetAnnotationXml(), request‑scoped streams, server logs | Zjednodušuje souladové reportování pro finance, právní a zdravotnické oddělení. |
| Scalable OCR | Server‑side OCR plugin, vyhledávací index vrácený jako JSON | Umožňuje okamžité vyhledávání v milionech stránek bez vystavení surového textu. |
| Cross‑platform delivery | HTML5 viewer funguje v jakémkoli prohlížeči, integruje se s React, Angular, Vue nebo Blazor | Zajišťuje budoucí kompatibilitu napříč desktopem, mobilem i kiosky. |
Tím, že těžkou práci provádí server, Doconut vám umožní soustředit se na obchodní logiku – ať už jde o směrování smlouvy skrze víceúrovňový schvalovací workflow nebo o zpřístupnění technických výkresů v zabezpečeném portálu. Stejný kód funguje napříč .NET 6, .NET Core i nejnovějším .NET 8, což vám poskytuje řešení bez vendor lock‑in.
Vyzkoušejte to sami – Doconut nabízí free trial, který zahrnuje všechny pluginy pro viewer, anotace, OCR i konverzi. V během několika minut si nasadíte ukázkovou ASP.NET Core aplikaci a pocítíte, jak bezpečnostní model funguje v praxi.
Klíčové poznatky
- Server‑side renderování a stream‑based doručení eliminují útoky pomocí zastaralých odkazů a udržují surové soubory uvnitř důvěryhodného perimetru.
- Centralizovaná politika (šifrování, redakce, vizuální označení pomocí anotací) se aplikuje před tím, než data dorazí k uživateli.
- Jemné kontroly claimů před otevřením dokumentu nebo povolením anotací zajišťují soulad s firemními RBAC politikami.
- Kontrolovaný tisk a overlay anotace odrazují od úniku dat a poskytují forenzní důkaz.
- Neměnné auditní logy generované metodou
GetAnnotationXml()zjednodušují regulatorní reportování. - HTML5 viewer funguje v jakémkoli moderním prohlížeči, což jej činí ideálním pro front‑endy v React, Angular, Vue nebo Blazor.
- Doconut’s free trial vám umožní ověřit bezpečnost, výkon i vývojářskou zkušenost před závazným nasazením.
Časté otázky
Q1: Vyžaduje Doconut instalaci Microsoft Office na serveru pro konverzi Word nebo Excel souborů?
A: Ne. Doconut Converter Plugin provádí všechny konverze Office → PDF a další formáty na serveru bez nutnosti lokální instalace Office.
Q2: Můžu Doconut použít v prostředí bez připojení k síti (air‑gapped)?
A: Ano. Protože Doconut zpracovává dokumenty výhradně on‑premise a nevyžaduje externí SaaS služby, funguje i v izolovaných sítích.
Q3: Jak Doconut zachází s velkými soubory?
A: Doconut streamuje stránky dokumentu na vyžádání, načítá do paměti jen požadované části. Tento paging přístup dobře spolupracuje s background joby a velkými pracovními zátěžemi.
Q4: Je viewer přístupný pro uživatele s postižením?
A: HTML5 viewer dodržuje standardní postupy přístupnosti a lze jej rozšířit o ARIA atributy tak, aby splňoval požadavky WCAG.
Q5: Kde mohu získat free trial?
A: Navštivte oficiální stránku Doconut (https://doconut.com) a požádejte o trial licenci. Trial zahrnuje všechny hlavní pluginy – viewer, anotace, OCR i konverzi.