Privacy & Security

Zašto je obrada slika u pregledniku dobitak za privatnost

Kako vam moderni web API-ji omogućuju izradu doista privatnih alata za slike — i što to znači za ljude koji ih koriste.

The Wux Webtools Team The Wux Webtools Team 4 min čitanja
Editorial illustration of a closed laptop with a small lock icon, soft green and slate palette
Sadržaj
  1. Zadano očekivanje je pogrešno
  2. Što "client-side" zapravo znači
  3. Zašto je to važno u praksi
  4. Gdje kompromisi i dalje postoje
  5. Hladno pokretanje je teže
  6. Korisnikov hardver postavlja gornju granicu
  7. Ne možete obrađivati serije preko korisnika
  8. Neke operacije trebaju server
  9. Mala etička napomena
  10. Kamo dalje

Zadano očekivanje je pogrešno

Tijekom većeg dijela posljednjih dvadeset godina, učiniti išta netrivijalno sa slikom na webu značilo je prenijeti je na server. Pretvoriti HEIC fotografiju, ukloniti njezine EXIF metapodatke, generirati favicon — svaki od tih alata povijesno je živio iza multipart obrasca. Korisnik je kliknuo upload, datoteka je putovala javnim internetom, a neki je server negdje obavio posao.

Ta zadana postavka više nije tehnički nužna. Preglednici već godinama isporučuju API-je koji omogućuju da se cijeli tijek rada odvija lokalno:

  • <canvas> and OffscreenCanvas for pixel-level work
  • createImageBitmap() for fast, off-thread decoding
  • File and Blob for reading uploads without sending them anywhere
  • WebAssembly for libraries like libheif, libwebp and ffmpeg
  • Web Workers to keep the UI responsive while heavy work runs

Ako ih povežete, datoteka nikada ne napušta uređaj. Server je nikada ne vidi. Nema ničega za zapisati u logove, ničega što bi moglo procuriti, ničega što bi se moglo zatražiti sudskim nalogom.

Što "client-side" zapravo znači

Vrijedi biti precizan, jer je marketinški tekst mnogih "privatnih" alata prilično labav.

Alat je doista na klijentskoj strani kada, nakon što se stranica učita, nijedan dio sadržaja datoteke nikada ne putuje na server. Sama stranica učitava se sa servera (HTML, JavaScript, možda WebAssembly modul). Nakon toga vaša datoteka ulazi u memoriju preglednika i ostaje ondje dok ne zatvorite karticu.

Alat nije na klijentskoj strani ako:

  • šalje datoteku POST zahtjevom na /api/... endpoint
  • šalje sličicu ili pretpregled na server
  • poziva analitički endpoint s metapodacima datoteke (dimenzije, naziv, hash)
  • usmjerava datoteku kroz CDN treće strane koji vraća obrađeni URL

Mrežna kartica u alatima za razvojne programere vašeg preglednika govori istinu. Otvorite je, ubacite datoteku i provjerite što se prenosi. Ako vidite da vaš naziv datoteke ili veličina datoteke odlaze van, alat nije toliko privatan koliko tvrdi.

Zašto je to važno u praksi

Tri skupine ljudi tiho profitiraju kada se obrada slika premjesti u preglednik.

Novinari, aktivisti i istraživači rade s izvornim materijalom čije bi curenje bilo opasno. EXIF metapodaci mogu uključivati GPS koordinate uređaja kojim je fotografija snimljena. Uklanjanje EXIF podataka u pregledniku znači da izvorna datoteka nikada ne prelazi mrežu.

Tvrtke pod regulacijom — zdravstvo, financije, pravo — inače bi trebale ugovor o obradi podataka s onim tko upravlja alatom. Statična stranica koja posao obavlja lokalno nema DPA za potpisivanje jer nema obrađivača.

Svi ostali dobivaju očite prednosti: brži rezultat (nema vremena za upload), nema ograničenja veličine datoteka koje određuje račun za hosting, nema zastoja kada server ne radi.

Gdje kompromisi i dalje postoje

Obrada na klijentskoj strani nije čarolija. Postoje stvarni troškovi o kojima treba razmisliti prije nego što je odaberete za određeni problem.

Hladno pokretanje je teže

WebAssembly paket za HEIC dekodiranje ima nekoliko stotina kilobajta. ffmpeg kompiliran u WASM ima nekoliko megabajta. Prvi posjet plaća taj trošak. Predmemoriranje pomaže, a razdvajanje koda pomaže još više — učitajte samo kodek koji je korisnik stvarno odabrao.

Korisnikov hardver postavlja gornju granicu

RAW datoteka od 200 megapiksela ostat će bez memorije na jeftinom telefonu mnogo prije nego na serveru. Budite iskreni u sučelju o tome što je realistično na uređaju.

Ne možete obrađivati serije preko korisnika

Obrada na serveru može deduplicirati i amortizirati trošak. Ako milijun korisnika pretvara istu stock sliku, server je može obraditi jednom. Na klijentskoj strani to se radi milijun puta. Za većinu opterećenja osobnih alata to je u redu — posao je ionako jedinstven — ali vrijedi znati.

Neke operacije trebaju server

Obrnuto pretraživanje slika treba indeks. Moderiranje sadržaja treba model koji je prevelik za isporuku. Sve što uspoređuje vašu datoteku s korpusom koji ne posjedujete treba backend.

Mala etička napomena

Ako je vaš alat doista na klijentskoj strani, recite to glasno i dokažite. Povežite na izvorni kod, uputite na mrežnu karticu, objasnite što se gdje izvršava. Fraze poput "ne pohranjujemo vaše podatke" ne znače ništa bez arhitekture koja ih podupire — svaki serverski alat iz kojeg su ikada procurili korisnički podaci rekao je upravo to, i tada je to mislio.

Vrijedi i obrnuto. Ako je vaš alat serverski, nemojte se pretvarati da nije. Korisnici su naučili prepoznavati taj obrazac, a gubitak povjerenja kada vas uhvate trajan je.

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

💡 Isprobajte ovo: Pogledajte obradu na strani klijenta na djelu uz Image Compressor, koji smanjuje slike u potpunosti u vašem pregledniku kako se ništa nikada ne bi prenijelo na poslužitelj.

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

Kamo dalje

Ako danas gradite mali alat za slike, zadano krenite od klijentske strane i posegnite za serverom samo kada imate konkretan razlog. Preglednik će vas iznenaditi koliko daleko može iznijeti posao — a ljudi s druge strane mrežne veze tiho će vam zahvaliti za bajtove koji nikada nisu napustili njihov stroj.

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

Često postavljana pitanja

Je li obrada na klijentskoj strani uvijek privatnija od obrade na serveru?
Kada je ispravno implementirana, da — datoteka nikada ne prelazi mrežu, pa se ne može presresti, zapisati u logove ni kompromitirati. Upozorenje je implementacija: alat se može učitati preko HTTPS-a, prikazivati u vašem pregledniku i svejedno poslati vašu datoteku na endpoint treće strane. Uvijek provjerite mrežnu karticu.
Zašto onda svi alati ne rade na taj način?
Iz tri razloga. Neke operacije doista trebaju server (obrnuto pretraživanje, moderiranje sadržaja, indeksiranje). Neki naslijeđeni proizvodi zahtijevali bi potpuno prepisivanje. A neke tvrtke žele analitički signal koji dolazi iz uvida u ono što korisnici prenose.
Usporava li WebAssembly moje računalo?
Ne na značajan način. Moderni WASM radi brzinom bliskom nativnoj. Vidljivi trošak je početno preuzimanje modula. Nakon što je u predmemoriji, sljedeća pokretanja praktički su besplatna.
Što je s vrlo velikim datotekama?
Memorija preglednika je gornja granica. Telefoni i slabiji laptopi ostanu bez memorije mnogo prije nego što bi server. Dobro izgrađen alat unaprijed vam kaže kada je datoteka vjerojatno prevelika za uređaj, umjesto da sruši karticu.

Izvori i daljnje čitanje

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

Zadnje ažurirano:

Nastavite čitati