Privacy & Security

Proč je zpracování obrázků v prohlížeči výhrou pro soukromí

Jak moderní webová API umožňují vytvářet skutečně soukromé nástroje pro práci s obrázky — a co to znamená pro lidi, kteří je používají.

The Wux Webtools Team The Wux Webtools Team 5 min čtení
Editorial illustration of a closed laptop with a small lock icon, soft green and slate palette
Obsah
  1. Výchozí očekávání je mylné
  2. Co „na straně klienta“ skutečně znamená
  3. Proč na tom v praxi záleží
  4. Kde stále zůstávají kompromisy
  5. Studený start je těžší
  6. Hardware uživatele určuje strop
  7. Nemůžete dávkovat napříč uživateli
  8. Některé operace server potřebují
  9. Malá etická poznámka
  10. Kam dál

Výchozí očekávání je mylné

Po většinu posledních dvaceti let znamenalo dělat s obrázkem na webu cokoli netriviálního nahrát ho na server. Převést HEIC fotografii, odstranit její EXIF metadata, vygenerovat favicon — každý z těchto nástrojů historicky žil za multipart formulářem. Uživatel klikl na upload, soubor putoval přes veřejný internet a server někde provedl práci.

Tento výchozí stav už není technicky nutný. Prohlížeče už před lety dodaly API, která umožňují spustit celý proces lokálně:

  • <canvas> a OffscreenCanvas pro práci na úrovni pixelů
  • createImageBitmap() pro rychlé dekódování mimo hlavní vlákno
  • File a Blob pro čtení nahraných souborů, aniž by se kamkoli odesílaly
  • WebAssembly pro knihovny jako libheif, libwebp a ffmpeg
  • Web Workers pro udržení responzivního UI, zatímco běží náročná práce

Když je poskládáte dohromady, soubor nikdy neopustí zařízení. Server ho nikdy neuvidí. Není co logovat, není co uniknout, není co předvolat k vydání.

Co „na straně klienta“ skutečně znamená

Stojí za to být přesný, protože marketingové texty mnoha „soukromých“ nástrojů jsou volné.

Nástroj je skutečně na straně klienta tehdy, když po načtení stránky žádná část obsahu souboru nikdy necestuje na server. Samotná stránka se načte ze serveru (HTML, JavaScript, případně modul WebAssembly). Poté váš soubor vstoupí do paměti prohlížeče a zůstane tam, dokud nezavřete kartu.

Nástroj není na straně klienta, pokud:

  • POSTuje soubor na endpoint /api/...
  • Odesílá náhled nebo preview na server
  • Volá analytický endpoint s metadaty souboru (rozměry, název, hash)
  • Směruje soubor přes CDN třetí strany, která vrací zpracovanou URL

Panel sítě v devtools vašeho prohlížeče je zdrojem pravdy. Otevřete ho, vložte soubor a zkontrolujte, co se nahrává. Pokud vidíte, že ven letí název vašeho souboru nebo jeho velikost, nástroj není tak soukromý, jak tvrdí.

Proč na tom v praxi záleží

Tři skupiny lidí tiše těží z toho, když se zpracování obrázků přesune do prohlížeče.

Novináři, aktivisté a výzkumníci pracují se zdrojovými materiály, jejichž únik by byl nebezpečný. EXIF metadata mohou obsahovat GPS souřadnice zařízení, které fotografii pořídilo. Odstraňovač EXIF na straně prohlížeče znamená, že původní soubor nikdy nepřejde přes síť.

Společnosti podléhající regulaci — zdravotnictví, finance, právo — by jinak potřebovaly smlouvu o zpracování dat s tím, kdo nástroj provozuje. Statická stránka, která práci provede lokálně, nevyžaduje žádnou DPA k podpisu, protože neexistuje žádný zpracovatel.

Všichni ostatní získávají zjevné výhody: rychlejší výsledek (žádný čas nahrávání), žádné limity velikosti souboru dané účtem za hosting, žádné selhání, když je server nedostupný.

Kde stále zůstávají kompromisy

Zpracování na straně klienta není magie. Existují skutečné náklady, které byste měli promyslet, než ho zvolíte pro konkrétní problém.

Studený start je těžší

Balíček WebAssembly pro dekódování HEIC má několik set kilobajtů. ffmpeg zkompilovaný do WASM má několik megabajtů. První návštěva tuto cenu zaplatí. Cache pomáhá a code-splitting pomáhá ještě víc — načtěte jen kodek, který si uživatel skutečně vybral.

Hardware uživatele určuje strop

200megapixelový RAW soubor vyčerpá paměť na levném telefonu mnohem dřív než na serveru. Buďte v UI upřímní ohledně toho, co je na daném zařízení realistické.

Nemůžete dávkovat napříč uživateli

Zpracování na straně serveru může deduplikovat a amortizovat náklady. Pokud milion uživatelů převede stejný stockový obrázek, server ho může zpracovat jednou. Na straně klienta se to udělá milionkrát. Pro většinu zátěží osobních nástrojů je to v pořádku — práce je stejně jedinečná — ale stojí za to o tom vědět.

Některé operace server potřebují

Reverzní vyhledávání obrázků potřebuje index. Moderování obsahu potřebuje model, který je příliš velký na odeslání do prohlížeče. Cokoli, co porovnává váš soubor s korpusem, který nevlastníte, potřebuje backend.

Malá etická poznámka

Pokud je váš nástroj skutečně na straně klienta, řekněte to nahlas a dokažte to. Odkazujte na zdrojový kód, ukažte na panel sítě, vysvětlete, co běží kde. Fráze jako „neukládáme vaše data“ nic neznamenají bez architektury, která je podpoří — každý serverový nástroj, ze kterého kdy unikla zákaznická data, říkal přesně totéž a tehdy to myslel vážně.

Platí i opak. Pokud váš nástroj je serverový, nepředstírejte opak. Uživatelé se tento vzorec naučili rozpoznávat a ztráta důvěry, když vás při tom přistihnou, je trvalá.

<!-- tool-cta:start -->

💡 Vyzkoušejte toto: Podívejte se na klientské zpracování v akci s Image Compressor, který zmenšuje obrázky zcela ve vašem prohlížeči, takže se nikdy nic nenahrává na server.

<!-- tool-cta:end -->

Kam dál

Pokud dnes stavíte malý nástroj pro obrázky, berte jako výchozí zpracování na straně klienta a po serveru sáhněte až tehdy, když k tomu máte konkrétní důvod. Prohlížeč vás překvapí tím, jak daleko dokáže práci nést — a lidé na druhém konci síťového spojení vám tiše poděkují za bajty, které nikdy neopustily jejich počítač.

Diagram showing a browser-only image processing flow where the page loads once, then the file stays in browser memory and never reaches a server
InfographicWhat truly client-side image processing looks like — A genuinely client-side tool loads code first, then keeps the file entirely inside the browser
Two-column comparison of genuine client-side tools versus tools that still send files, thumbnails, or metadata to servers
InfographicClient-side vs fake-private processing — The network panel is the simplest test: if file contents, thumbnails, or metadata leave the browser, it is not fully client-side
Checklist-style visual summarizing privacy and speed benefits of browser processing alongside cold start, hardware, batching, and backend limits
InfographicWhere browser-side processing wins — and where it doesn't — Browser-side tools remove upload risk, but cold starts, device limits, and corpus-scale tasks still define the boundary

Často kladené otázky

Je zpracování na straně klienta vždy soukromější než zpracování na straně serveru?
Při správné implementaci ano — soubor nikdy nepřejde přes síť, takže ho nelze zachytit, zalogovat ani z něj utrpět únik. Háček je v implementaci: nástroj se může načíst přes HTTPS, vykreslit ve vašem prohlížeči, a přesto odeslat váš soubor na endpoint třetí strany. Vždy zkontrolujte panel sítě.
Proč tedy takto nefungují všechny nástroje?
Ze tří důvodů. Některé operace skutečně potřebují server (reverzní vyhledávání, moderování obsahu, indexování). Některé starší produkty by vyžadovaly kompletní přepis. A některé společnosti chtějí analytický signál, který plyne z toho, že vidí, co uživatelé nahrávají.
Zpomalí WebAssembly můj počítač?
Ne nijak významně. Moderní WASM běží rychlostí blízkou nativnímu kódu. Viditelným nákladem je počáteční stažení modulu. Jakmile je v cache, další spuštění jsou prakticky zdarma.
A co velmi velké soubory?
Stropem je paměť prohlížeče. Telefony a levné notebooky narazí na limit mnohem dřív než server. Dobře postavený nástroj vám předem řekne, kdy je soubor pro zařízení pravděpodobně příliš velký, místo aby nechal spadnout kartu.

Zdroje a další čtení

  1. MDN — File API
  2. MDN — Web Workers
  3. WebAssembly.org — Use cases
O autorovi
The Wux Webtools Team

Naposledy aktualizováno:

Pokračujte ve čtení