Imágenes y fotografías · Herramienta de privacidad de metadatos de imágenes
Cómo un navegador lee EXIF desde un JPEG sin cargarlo
· Cómo funciona
exif imagen-privacidad procesamiento del navegador formatos de archivo
Un tutorial de lo que realmente sucede entre colocar un JPEG en la página y ver sus metadatos: los bytes se leen localmente, se ubica el segmento APP1 y los directorios TIFF que contiene se decodifican en JavaScript, sin ningún servidor involucrado.
El reclamo para probar: 'no se cargó nada': por qué un inspector de metadatos solo necesita leer los bytes que ya tiene y cómo confirmar que ninguna solicitud sale de la pestaña
La afirmación de que una fotografía no está cargada es comprobable y no decorativa. La herramienta lee el archivo seleccionado en un ArrayBuffer, lo convierte en bytes y pasa esos bytes directamente al lector de metadatos. Su declaración de privacidad limita cuidadosamente la promesa: la fotografía se analiza en la pestaña del navegador, no se almacena ninguna copia y las solicitudes de análisis reveladas están separadas de la ruta del código que maneja el archivo.
Lectura del archivo localmente con File API: cómo el navegador entrega a la herramienta un ArrayBuffer de su foto sin que los bytes salgan del dispositivo
Un selector de archivos proporciona un objeto Archivo del navegador y file.arrayBuffer() pone su contenido a disposición de JavaScript que ya se está ejecutando en la página. ToolAcre aplica un límite 50 MB, luego identifica JPEG, PNG o WebP a partir de los propios bytes. Esta lectura local no necesita el envío de un formulario ni un punto final de carga de imágenes, y la prueba de aislamiento de red ejercita los tres formatos admitidos sin registrar una solicitud.
Encontrar el segmento APP1: recorrer los marcadores JPEG desde SOI hasta el encabezado 'Exif' y omitir los segmentos que contienen ICC o XMP.
Para JPEG, el lector comienza después del marcador de inicio de imagen y recorre los segmentos del marcador hasta el marcador de inicio de escaneo. Reconoce las cargas útiles de APP1 que comienzan con Exif y las analiza, mientras que XMP se detecta solo para su eliminación y ICC se conserva deliberadamente como datos de representación. Todo, desde el marcador de escaneo en adelante, pertenece a la ruta de la imagen comprimida en lugar del informe EXIF.
Decodificación del encabezado TIFF y los IFD: orden de bytes (II o MM), el desplazamiento a IFD0 y las entradas de 12 bytes que apuntan a los subdirectorios Exif y GPS
Una carga útil EXIF contiene un bloque TIFF. El analizador lee el marcador de orden de bytes II o MM, verifica el valor mágico TIFF y sigue el desplazamiento a IFD0. Cada entrada del directorio proporciona una etiqueta, un tipo, un recuento y un valor en línea o un desplazamiento. Desde IFD0, el código sigue solo los punteros de subdirectorio Exif y GPS, manteniendo el recorrido limitado en lugar de perseguir todas las estructuras privadas posibles.
Convertir valores de etiquetas sin procesar en campos legibles: ID de etiquetas, tipos de datos, cadenas racionales y ASCII, y por qué algunos valores necesitan una tabla de búsqueda
Los valores sin procesar se vuelven útiles solo después de que se interpretan sus tipos y etiquetas. Los campos ASCII se convierten en cadenas, los tipos numéricos utilizan el orden de bytes TIFF y los pares racionales se convierten en números después de leer el numerador y el denominador. Un diccionario de etiquetas etiqueta la marca, el modelo, las marcas de tiempo, el software, los campos de serie y los valores de GPS de la cámara, luego clasifica la ubicación y la identidad del dispositivo por delante de campos técnicos menos sensibles.
Ejemplo resuelto: una foto de teléfono analizada en el hilo principal
El libro de trabajo describe que este ejemplo se ejecuta en un Web Worker, pero el panel enviado llama a readMetadata directamente después de esperar file.arrayBuffer(); ningún trabajador participa en este camino. Por lo tanto, se lee y analiza un teléfono seleccionado JPEG en el hilo principal de la página, después de lo cual cualquier latitud y longitud se imprime como números y se representa la tabla de campos completa. La corrección es importante porque el procesamiento local y el procesamiento de trabajadores son reclamos diferentes.
Lo que esto no cubre: los componentes internos de MakerNote, los formatos RAW, HEIC y los contenedores de video están fuera de este tutorial y fuera de la herramienta.
El lector está intencionalmente incompleto. No decodifica los componentes internos de MakerNote, los campos de miniaturas IFD1, los contenidos JPEG XMP ni los contenedores RAW, HEIC, AVIF, TIFF, GIF y SVG no compatibles. Un segmento EXIF corrupto se omite para que no pueda bloquear su eliminación posterior. Un informe vacío significa sólo que este analizador limitado no encontró campos legibles, no que todos los canales de información posibles estén ausentes.
Conclusión: leer metadatos es un trabajo local a nivel de bytes; la herramienta de privacidad de metadatos de imágenes hace exactamente esto, por lo que puedes inspeccionar antes de compartir sin confiar en un servidor.
La lectura de metadatos es un trabajo local a nivel de bytes cuando la implementación mantiene los bytes seleccionados en la pestaña y no realiza ninguna solicitud con ellos. Utilice el informe para identificar lo que puede ver este analizador y luego utilice la acción de eliminación independiente cuando necesite una copia limpia. La inspección nunca cambia la fotografía original, y el código fuente y la prueba de aislamiento de red proporcionan evidencia más sólida que una insignia genérica de procesamiento del navegador.