Можно ли хранить произвольные данные, например документы или программу, в виде файла изображения, например изображения PNG? Меня беспокоит то, что кто-то может кодировать данные для использования вредоносными программами в изображение и загружать их на сайт, такой как Flickr.
25
:-P
Ответы:
Для большинства форматов файлов, да. Например, файлы PNG состоят из типизированных блоков, поэтому вы можете добавить фрагмент с именем
aAAA
илиlOLZ
с произвольными данными. JPEG имеет «специфичные для приложения» сегменты ; теги Exif в JPEG - это фактически полная структура TIFF внутри такого тега. Другие форматы, такие как GIF, не расширяемы, но они часто имеют поле для текстовых комментариев; этим уже злоупотребили .APPn
Однако есть способы защиты от этого - например, такие веб-сайты, как Imgur, автоматически обрабатывают все загрузки с помощью
pngcrush
аналогичных инструментов, которые отбрасывают все, что не является абсолютно необходимым.Но, в конце концов, обмен данными не может быть предотвращен. Помимо вышеупомянутой стеганографии изображения, у вас есть Твиттер и его клоны, десятки вставок (в которых непонятные посты считаются вполне нормальными), формы комментариев старых постов в блоге (я все еще пытаюсь вспомнить книгу, в которой это было предложено), ... более реалистично, большинство вредоносных программ просто связываются со своими "собственными" серверами.
источник
Вредоносных данных не существует. Данные не становятся вредоносными, пока они не будут выполнены, после чего они больше не будут данными. Проблема такого рода вещей не в изображении, а в программном обеспечении (Windows, Photoshop и т. Д.), Содержащем ошибку, приводящую к выполнению данных. Это, очевидно, важная проблема для крупных поставщиков программного обеспечения, и вы можете быть уверены, что они исправят эти ошибки очень скоро после их обнаружения.
Тем не менее, как указано в других ответах, можно добавить в файл данные, которые не являются частью самого изображения. Однако это часто бывает полезной или даже стандартной практикой. Я думаю, что гораздо важнее быть осторожным с исполняемыми файлами, чем со случайными изображениями, которые вы можете найти в Интернете. Риск здесь не так велик.
источник
Файлы изображений, включая PNG, имеют определенный формат. Часть заголовка файла описывает изображение, и любые последующие данные будут интерпретироваться как данные изображения (основанные на заголовках).
Однако вы можете добавить произвольные данные в конец PNG, после данных изображения, которые затем можно будет прочитать позже. Это было бы довольно легко обнаружить - после конца данных изображения не должно быть никаких данных.
Кроме того, вы можете кодировать произвольные данные в само изображение, используя стеганографию . Это слегка изменяет само изображение таким образом, что его невозможно обнаружить, если вы не знаете точно, что искать (часто требуется предварительное знание метода кодирования).
источник