Bahasa Indonesia

Gambar & foto · Alat Privasi Metadata Gambar

Bagaimana Browser Membaca EXIF Dari JPEG Tanpa Mengunggahnya

· Cara kerjanya

exik privasi gambar pemrosesan browser format file

Sebuah foto menjadi byte lokal, segmen JPEG dan bidang EXIF yang dapat dibaca dalam satu browser
Ilustrasi vektor ToolAcre asli

Panduan tentang apa yang sebenarnya terjadi antara menjatuhkan JPEG pada laman dan melihat metadatanya: byte dibaca secara lokal, segmen APP1 berada, dan direktori TIFF di dalamnya didekodekan dalam JavaScript, tanpa melibatkan server.

Klaim untuk menguji: 'tidak ada yang diunggah' — mengapa pemeriksa metadata hanya perlu membaca byte yang sudah dimilikinya, dan cara mengonfirmasi tidak ada permintaan yang keluar dari tab

Klaim bahwa sebuah foto tidak diunggah lebih bersifat menguji dan bukan sekedar hiasan. Alat ini membaca File yang dipilih menjadi ArrayBuffer, mengubahnya menjadi byte, dan meneruskan byte tersebut langsung ke pembaca metadata. Pernyataan privasinya membatasi janji tersebut dengan hati-hati: foto diurai di tab browser, tidak ada salinan yang disimpan, dan permintaan analitik yang diungkapkan terpisah dari jalur kode yang menangani file.

Membaca file secara lokal dengan File API — cara browser memberikan alat ArrayBuffer foto Anda tanpa byte meninggalkan perangkat

Pemilih file menyediakan objek File browser, dan file.arrayBuffer() membuat kontennya tersedia untuk JavaScript yang sudah berjalan di halaman tersebut. ToolAcre menerapkan batas atas 50 MB, lalu mengidentifikasi JPEG, PNG, atau WebP dari byte itu sendiri. Pembacaan lokal ini tidak memerlukan pengiriman formulir atau titik akhir pengunggahan gambar, dan pengujian isolasi jaringan menggunakan ketiga format yang didukung tanpa merekam permintaan.

Menemukan segmen APP1 — berjalan penanda JPEG dari SOI ke header 'Exif', dan melewatkan segmen yang membawa ICC atau XMP sebagai gantinya

Untuk JPEG, pembaca memulai setelah penanda awal gambar dan menelusuri segmen penanda hingga penanda awal pemindaian. Ia mengenali muatan APP1 yang dimulai dengan Exif dan mem-parsingnya, sementara XMP terdeteksi hanya untuk dihapus dan ICC sengaja disimpan sebagai data rendering. Segala sesuatu mulai dari penanda pindaian dan seterusnya adalah milik jalur gambar terkompresi dan bukan laporan EXIF.

Mendekode header TIFF dan IFD — urutan byte (II atau MM), offset ke IFD0, dan entri 12-byte yang mengarah ke subdirektori Exif dan GPS

Payload EXIF berisi blok TIFF. Parser membaca penanda urutan byte II atau MM, memeriksa nilai ajaib TIFF dan mengikuti offset ke IFD0. Setiap entri direktori menyediakan tag, jenis, jumlah, dan nilai sebaris atau offset. Dari IFD0 kode hanya mengikuti penunjuk subdirektori Exif dan GPS, menjaga traversal tetap terbatas alih-alih mengejar setiap kemungkinan struktur pribadi.

Mengubah nilai tag mentah menjadi bidang yang dapat dibaca — ID tag, tipe data, alasan, dan string ASCII, dan mengapa beberapa nilai memerlukan tabel pencarian

Nilai mentah menjadi berguna hanya setelah tipe dan tagnya diinterpretasikan. Bidang ASCII menjadi string, tipe numerik menggunakan urutan byte TIFF, dan pasangan rasional menjadi angka setelah pembilang dan penyebut dibaca. Kamus tag memberi label merek kamera, model, stempel waktu, perangkat lunak, bidang serial, dan nilai GPS, lalu mengklasifikasikan lokasi dan identitas perangkat sebelum bidang teknis yang kurang sensitif.

Contoh praktis: foto ponsel diurai di thread utama

Buku kerja menjelaskan contoh ini berjalan di Web Worker, namun panel yang dikirimkan memanggil readMetadata secara langsung setelah menunggu file.arrayBuffer(); tidak ada pekerja yang berpartisipasi dalam jalur ini. Oleh karena itu, ponsel yang dipilih JPEG dibaca dan diurai pada thread utama halaman, setelah itu setiap garis lintang dan bujur dicetak sebagai angka dan tabel bidang lengkap ditampilkan. Koreksi ini penting karena pemrosesan lokal dan pemrosesan pekerja merupakan klaim yang berbeda.

Apa yang tidak tercakup di sini — Internal MakerNote, format RAW, HEIC dan penampung video berada di luar panduan ini dan di luar alat

Pembaca sengaja tidak lengkap. Itu tidak memecahkan kode internal MakerNote, IFD1 bidang gambar mini, JPEG XMP konten atau wadah RAW, HEIC, AVIF, TIFF, GIF, dan SVG yang tidak didukung. Segmen EXIF yang rusak dilewati sehingga tidak dapat memblokir penghapusan selanjutnya. Laporan yang kosong hanya berarti bahwa pengurai yang dibatasi ini tidak menemukan bidang yang dapat dibaca, bukan berarti tidak ada saluran informasi yang memungkinkan.

Kesimpulan: membaca metadata adalah pekerjaan lokal tingkat byte — Alat Privasi Metadata Gambar melakukan hal ini, sehingga Anda dapat memeriksanya sebelum membagikannya tanpa memercayai server

Membaca metadata adalah pekerjaan tingkat byte lokal ketika implementasi menyimpan byte yang dipilih di tab dan tidak melakukan permintaan dengannya. Gunakan laporan untuk mengidentifikasi apa yang dapat dilihat parser ini, lalu gunakan tindakan penghapusan terpisah ketika salinan yang sudah dibersihkan diperlukan. Inspeksi tidak pernah mengubah foto asli, dan kode sumber serta pengujian isolasi jaringan memberikan bukti yang lebih kuat dibandingkan lencana pemrosesan browser umum.