ไทย

รูปภาพและภาพถ่าย · เครื่องมือความเป็นส่วนตัวของข้อมูลเมตาของรูปภาพ

วิธีที่เบราว์เซอร์อ่าน EXIF จาก JPEG โดยไม่ต้องอัปโหลด

· มันทำงานอย่างไร

exif ภาพความเป็นส่วนตัว การประมวลผลเบราว์เซอร์ ไฟล์รูปแบบ

ภาพถ่ายกลายเป็นไบต์ในเครื่อง JPEG ส่วนและฟิลด์ EXIF ที่อ่านได้ภายในเบราว์เซอร์เดียว
ภาพประกอบเวกเตอร์ต้นฉบับ ToolAcre

บทสรุปเกี่ยวกับสิ่งที่เกิดขึ้นจริงระหว่างการวาง JPEG บนหน้าเว็บและการดูข้อมูลเมตาของหน้านั้น: ไบต์จะถูกอ่านในเครื่อง ส่วน APP1 ตั้งอยู่ และไดเรกทอรี TIFF ภายในนั้นจะถูกถอดรหัสใน JavaScript โดยไม่มีเซิร์ฟเวอร์เกี่ยวข้อง

การอ้างสิทธิ์ในการทดสอบ: 'ไม่มีการอัปโหลด' - เหตุใดตัวตรวจสอบข้อมูลเมตาจึงต้องอ่านไบต์ที่มีอยู่แล้วเท่านั้น และวิธียืนยันว่าไม่มีคำขอใดออกจากแท็บ

การอ้างว่าไม่ได้อัปโหลดรูปถ่ายสามารถทดสอบได้มากกว่าการตกแต่ง เครื่องมือจะอ่านไฟล์ที่เลือกลงใน ArrayBuffer แปลงเป็นไบต์ และส่งไบต์เหล่านั้นไปยังเครื่องอ่านเมทาดาทาโดยตรง คำชี้แจงสิทธิส่วนบุคคลจำกัดสัญญาอย่างระมัดระวัง: ภาพถ่ายจะถูกแยกวิเคราะห์ในแท็บเบราว์เซอร์ ไม่มีการเก็บสำเนา และคำขอการวิเคราะห์ที่เปิดเผยจะแยกจากเส้นทางรหัสที่จัดการไฟล์

การอ่านไฟล์ในเครื่องด้วยไฟล์ API - วิธีที่เบราว์เซอร์ส่งเครื่องมือ ArrayBuffer ของรูปภาพของคุณโดยไม่มีไบต์ออกจากอุปกรณ์

ตัวเลือกไฟล์จัดเตรียมออบเจ็กต์ไฟล์ของเบราว์เซอร์ และ file.arrayBuffer() ทำให้เนื้อหาพร้อมใช้งานสำหรับ JavaScript ที่ทำงานอยู่แล้วในเพจ ToolAcre บังคับใช้เพดาน 50 MB จากนั้นระบุ JPEG, PNG หรือ WebP จากไบต์นั้นเอง การอ่านในเครื่องนี้ไม่จำเป็นต้องส่งแบบฟอร์มหรือจุดสิ้นสุดการอัปโหลดรูปภาพ และการทดสอบการแยกเครือข่ายจะฝึกรูปแบบที่รองรับทั้งสามรูปแบบโดยไม่ต้องบันทึกคำขอ

ค้นหาส่วน APP1 — เดินเครื่องหมาย JPEG จาก SOI ไปยังส่วนหัว 'Exif' และข้ามส่วนที่มี ICC หรือ XMP แทน

สำหรับ JPEG เครื่องอ่านจะเริ่มต้นหลังจากเครื่องหมายเริ่มต้นของรูปภาพ และเดินตามส่วนของเครื่องหมายไปจนถึงเครื่องหมายเริ่มต้นการสแกน โดยจะจดจำเพย์โหลด APP1 ที่ขึ้นต้นด้วย Exif และแยกวิเคราะห์ข้อมูลเหล่านั้น ในขณะที่ XMP ถูกตรวจพบเพื่อการลบเท่านั้น และ ICC ถูกจงใจเก็บไว้เป็นข้อมูลการแสดงผล ทุกอย่างตั้งแต่เครื่องหมายการสแกนเป็นต้นไปเป็นของเส้นทางรูปภาพที่ถูกบีบอัด ไม่ใช่รายงาน EXIF

การถอดรหัสส่วนหัว TIFF และ IFD - ลำดับไบต์ (II หรือ MM), ออฟเซ็ตเป็น IFD0 และรายการ 12 ไบต์ที่ชี้ไปยังไดเร็กทอรีย่อย Exif และ GPS

เพย์โหลด EXIF มีบล็อก TIFF โปรแกรมแยกวิเคราะห์จะอ่านเครื่องหมายลำดับไบต์ II หรือ MM ตรวจสอบค่าวิเศษ TIFF และติดตามออฟเซ็ตไปที่ IFD0 แต่ละรายการในไดเรกทอรีจะระบุแท็ก ประเภท การนับ และค่าอินไลน์หรือออฟเซ็ต จาก IFD0 โค้ดจะตามหลังเฉพาะตัวชี้ไดเร็กทอรีย่อย Exif และ GPS ทำให้ขอบเขตการข้ามผ่านแทนที่จะไล่ตามโครงสร้างส่วนตัวที่เป็นไปได้ทั้งหมด

การเปลี่ยนค่าแท็กดิบให้เป็นฟิลด์ที่อ่านได้ เช่น ID แท็ก ประเภทข้อมูล เหตุผล และสตริง ASCII และเหตุใดค่าบางค่าจึงจำเป็นต้องมีตารางการค้นหา

ค่าดิบจะมีประโยชน์หลังจากตีความประเภทและแท็กแล้วเท่านั้น ช่อง ASCII จะกลายเป็นสตริง ประเภทตัวเลขใช้ลำดับไบต์ TIFF และคู่ตรรกยะกลายเป็นตัวเลขหลังจากอ่านตัวเศษและส่วนแล้ว พจนานุกรมแท็กจะติดป้ายกำกับยี่ห้อ รุ่น เวลาประทับ ซอฟต์แวร์ ฟิลด์ซีเรียล และค่า GPS จากนั้นจัดประเภทตำแหน่งและข้อมูลประจำตัวของอุปกรณ์ก่อนฟิลด์ทางเทคนิคที่มีความละเอียดอ่อนน้อยกว่า

ตัวอย่างการทำงาน: ภาพถ่ายโทรศัพท์ที่แยกวิเคราะห์ในเธรดหลัก

สมุดงานอธิบายตัวอย่างนี้ว่าทำงานใน Web Worker แต่แผงที่จัดส่งจะเรียก readMetadata โดยตรงหลังจากรอ file.arrayBuffer(); ไม่มีคนงานเข้าร่วมในเส้นทางนี้ ดังนั้น โทรศัพท์ที่เลือก JPEG จะถูกอ่านและแยกวิเคราะห์บนเธรดหลักของหน้า หลังจากนั้นละติจูดและลองจิจูดจะถูกพิมพ์เป็นตัวเลข และแสดงผลตารางฟิลด์แบบเต็ม การแก้ไขมีความสำคัญเนื่องจากการประมวลผลในท้องถิ่นและการประมวลผลของผู้ปฏิบัติงานเป็นการเรียกร้องที่แตกต่างกัน

สิ่งนี้ไม่ครอบคลุมถึง — MakerNote ภายใน, รูปแบบ RAW, HEIC และคอนเทนเนอร์วิดีโออยู่นอกคำแนะนำนี้และอยู่นอกเครื่องมือ

ผู้อ่านมีเจตนาไม่สมบูรณ์ มันไม่ได้ถอดรหัสภายใน MakerNote, IFD1 ช่องภาพย่อ, JPEG XMP เนื้อหาหรือไม่รองรับ RAW, HEIC, AVIF, TIFF, GIF และ SVG ตู้คอนเทนเนอร์ เซ็กเมนต์ EXIF ที่เสียหายถูกข้าม ดังนั้นจึงไม่สามารถบล็อกการลบออกในภายหลังได้ รายงานเปล่าหมายถึงเพียงว่า parser ที่มีขอบเขตนี้ไม่พบฟิลด์ที่สามารถอ่านได้ ไม่ใช่ว่าไม่มีช่องทางข้อมูลที่เป็นไปได้ทั้งหมด

ประเด็นสำคัญ: การอ่านข้อมูลเมตาเป็นงานระดับไบต์ในเครื่อง — เครื่องมือความเป็นส่วนตัวของข้อมูลเมตาของรูปภาพทำหน้าที่นี้ทุกประการ ดังนั้นคุณจึงตรวจสอบได้ก่อนที่จะแชร์โดยไม่ต้องเชื่อถือเซิร์ฟเวอร์

การอ่านข้อมูลเมตาเป็นงานระดับไบต์ในเครื่องเมื่อการใช้งานเก็บไบต์ที่เลือกไว้ในแท็บและไม่ดำเนินการตามคำขอ ใช้รายงานเพื่อระบุสิ่งที่ parser นี้สามารถมองเห็นได้ จากนั้นใช้การดำเนินการลบแยกต่างหากเมื่อจำเป็นต้องมีสำเนาที่ล้างแล้ว การตรวจสอบไม่เคยเปลี่ยนแปลงภาพถ่ายต้นฉบับ และการทดสอบซอร์สโค้ดและการแยกเครือข่ายให้หลักฐานที่ชัดเจนกว่าตราสัญลักษณ์การประมวลผลเบราว์เซอร์ทั่วไป