Bahasa Melayu

Imej & foto · Alat Privasi Metadata Imej

Cara Pelayar Membaca EXIF Daripada JPEG Tanpa Memuat Naiknya

· Bagaimana ia berfungsi

exif privasi imej pemprosesan pelayar format fail

Foto menjadi bait setempat, JPEG segmen dan medan EXIF yang boleh dibaca dalam satu pelayar
Ilustrasi vektor ToolAcre asal

Panduan tentang perkara yang sebenarnya berlaku antara menjatuhkan JPEG pada halaman dan melihat metadatanya: bait dibaca secara setempat, segmen APP1 terletak dan direktori TIFF di dalamnya dinyahkod dalam JavaScript, tanpa melibatkan pelayan.

Tuntutan untuk menguji: 'tiada apa-apa yang dimuat naik' — mengapa pemeriksa metadata sahaja perlu membaca bait yang sudah ada dan cara mengesahkan tiada permintaan meninggalkan tab

Dakwaan bahawa gambar tidak dimuat naik boleh diuji dan bukannya hiasan. Alat ini membaca Fail yang dipilih ke dalam ArrayBuffer, menukarnya kepada bait dan menghantar bait tersebut terus kepada pembaca metadata. Kenyataan privasinya mengehadkan janji dengan berhati-hati: gambar dihuraikan dalam tab pelayar, tiada salinan disimpan dan permintaan analitis yang didedahkan adalah berasingan daripada laluan kod yang mengendalikan fail.

Membaca fail secara setempat dengan Fail API — cara pelayar menyerahkan alat ArrayBuffer foto anda tanpa bait meninggalkan peranti

Pemilih fail membekalkan objek Fail pelayar dan file.arrayBuffer() menjadikan kandungannya tersedia kepada JavaScript yang sudah dijalankan dalam halaman. ToolAcre menguatkuasakan siling 50 MB, kemudian mengenal pasti JPEG, PNG atau WebP daripada bait itu sendiri. Bacaan setempat ini tidak memerlukan penyerahan borang atau titik akhir muat naik imej dan ujian pengasingan rangkaian melaksanakan ketiga-tiga format yang disokong tanpa merekodkan permintaan.

Mencari segmen APP1 — berjalan JPEG penanda dari SOI ke pengepala 'Exif' dan melangkau segmen yang membawa ICC atau XMP sebaliknya

Untuk JPEG, pembaca bermula selepas penanda permulaan imej dan berjalan segmen penanda sehingga penanda permulaan imbasan. Ia mengiktiraf muatan APP1 bermula dengan Exif dan menghuraikannya, manakala XMP dikesan sahaja untuk dialih keluar dan ICC sengaja disimpan sebagai data pemaparan. Segala-galanya daripada penanda imbasan dan seterusnya tergolong dalam laluan gambar termampat dan bukannya laporan EXIF.

Menyahkod pengepala TIFF dan IFD — tertib bait (II atau MM), pengimbangan kepada IFD0 dan entri 12-bait yang menghala ke sub-direktori Exif dan GPS

Muatan EXIF mengandungi blok TIFF. Penghurai membaca penanda tertib bait II atau MM, menyemak nilai ajaib TIFF dan mengikut offset kepada IFD0. Setiap entri direktori membekalkan teg, jenis, kiraan dan sama ada nilai sebaris atau ofset. Dari IFD0 kod sahaja mengikut penuding subdirektori Exif dan GPS, memastikan traversal dihadkan dan bukannya mengejar setiap kemungkinan struktur peribadi.

Mengubah nilai teg mentah kepada medan boleh dibaca — ID teg, jenis data, rasional dan rentetan ASCII dan sebab sesetengah nilai memerlukan jadual carian

Nilai mentah menjadi berguna sahaja selepas jenis dan tegnya ditafsirkan. Medan ASCII menjadi rentetan, jenis berangka menggunakan tertib TIFF bait dan pasangan rasional menjadi nombor selepas pengangka dan penyebut dibaca. Kamus teg melabelkan pembuatan kamera, model, cap masa, perisian, medan bersiri dan nilai GPS, kemudian mengelaskan identiti lokasi dan peranti mendahului medan teknikal yang kurang sensitif.

Contoh berfungsi: foto telefon dihuraikan pada utas utama

Buku kerja menerangkan contoh ini berjalan dalam Pekerja Web, tetapi panel yang dihantar memanggil readMetadata terus selepas menunggu file.arrayBuffer(); tiada pekerja mengambil bahagian dalam laluan ini. Oleh itu, telefon yang dipilih JPEG dibaca dan dihuraikan pada utas utama halaman, selepas itu sebarang latitud dan longitud dicetak sebagai nombor dan jadual medan penuh dipaparkan. Pembetulan itu penting kerana pemprosesan tempatan dan pemprosesan pekerja adalah tuntutan yang berbeza.

Perkara yang tidak dilindungi ini — Bahagian dalaman MakerNote, format RAW, HEIC dan bekas video berada di luar panduan ini dan di luar alat

Pembaca sengaja tidak lengkap. Ia tidak menyahkod dalaman MakerNote, IFD1 medan lakaran kecil, JPEG XMP kandungan atau tidak disokong RAW, HEIC, AVIF, TIFF, GIF dan SVG bekas. Seorang rasuah EXIF segmen dilangkau supaya ia tidak boleh menyekat penyingkiran kemudian. Laporan kosong sahaja bermakna bahawa penghurai sempadan ini tidak menemui medan yang boleh dibaca, bukannya setiap saluran maklumat yang mungkin tiada.

Bawa pulang: membaca metadata ialah kerja peringkat bait setempat — Alat Privasi Metadata Imej melakukan perkara ini, jadi anda boleh memeriksa sebelum anda berkongsi tanpa mempercayai pelayan

Membaca metadata ialah tugas peringkat bait tempatan apabila pelaksanaan menyimpan bait yang dipilih dalam tab dan tidak melakukan sebarang permintaan dengannya. Gunakan laporan untuk mengenal pasti perkara yang boleh dilihat oleh penghurai ini, kemudian gunakan tindakan pengalihan keluar yang berasingan apabila salinan yang telah dibersihkan diperlukan. Pemeriksaan tidak pernah mengubah gambar asal, dan kod sumber dan ujian pengasingan rangkaian memberikan bukti yang lebih kukuh daripada lencana pemprosesan pelayar generik.