Что делает инструмент
Каждое фото с современного смартфона содержит «скрытое досье» — GPS-координаты съёмки, точное время, модель устройства, иногда даже IP-адрес роутера. Это EXIF-метаданные. При публикации фото в интернете без очистки эти данные могут раскрыть приватную информацию.
Этот инструмент работает в два шага: сначала показывает что внутри (с красной плашкой если найдены GPS-координаты), потом удаляет всё через перекодирование Canvas. Полностью клиентский — файл не уходит на сервер.
Геолокационные данные относятся к категории персональных данных. Их обработка требует согласия субъекта или иных правовых оснований.— Роскомнадзор, методические рекомендации по 152-ФЗ
Почему это критично
152-ФЗ «О персональных данных» относит геолокацию к ПДн. Публикация фото с GPS-координатами третьих лиц без их согласия — формально нарушение. Но даже своих фото это касается:
- Соцсети сохраняют EXIF при отправке файлом. Telegram «как файл», Discord, форумы — оригинальный JPEG с EXIF.
- Авито, Юла. Фото квартиры для продажи → точные координаты раскрываются всем смотрящим объявление.
- Файлообменники, облака. При шеринге через ссылку EXIF доступен.
- Email-вложения. Сохраняются как есть.
- Web-форумы. Картинка скачивается из вложения с полным EXIF.
Реальные риски — сценарии
- Анонимный эксперт делится скрином. Скрин не содержит EXIF (Canvas), но если приложить «исходник» — раскроет рабочее место.
- Журналист публикует фото жертвы. Без удаления EXIF — координаты её дома попадают в открытый доступ.
- Свидетель происшествия. Если он опубликует фото-доказательство в TG, EXIF может его деанонимизировать.
- Психотерапевт публикует «случай из практики». Даже без имени, дата + IP раскроют клиента.
- Бизнесмен прикрепляет «фото к договору». Случайно раскрывает дату/место подписания (если фактическая дата отличается от документа).
Как технически работает
Парсинг EXIF без сторонних библиотек — наш собственный код через DataView/ArrayBuffer:
- Поиск маркера APP1. JPEG-файл состоит из сегментов; APP1 (0xFFE1) с сигнатурой "Exif" — место хранения метаданных.
- Чтение TIFF-структуры. Внутри APP1 — TIFF с порядком байт (II/MM), указатель на IFD0.
- Обход тегов. Каждая запись = 12 байт (тег, тип, count, value/offset).
- Извлечение GPS, камеры, даты. По карте известных тегов (0x10F=Make, 0x110=Model, 0x9003=DateTimeOriginal, 0x8825=GPS-IFD).
Удаление через Canvas: img.onload → canvas.drawImage → canvas.toBlob('image/jpeg', 0.95). Новый JPEG не содержит APP1 (Canvas сам его не пишет).
- EXIF specification 2.32. CIPA / JEITA. cipa.jp. 2019.
- 152-ФЗ "О персональных данных". Правительство РФ. pravo.gov.ru. 2006 (с поправками 2024).
- Canvas 2D Context Specification. WHATWG. whatwg.org. 2024.
- JPEG specification (ITU T.81). ITU-T. itu.int. 1992.
