EMZETT.
Войти

Типы файлов

Коротко: Категории файлов, определяющие, как структурировано их содержимое и какие программы могут их открывать, — например, текст, изображение, видео или архив.

Подробнее: Тип файла обычно обозначается расширением (.txt, .jpg, .zip), но достоверно определяется только по фактическому байтовому содержимому (магические числа/сигнатура в начале файла) — переименованный файл сохраняет свой настоящий тип, даже если расширение подсказывает иное.

Подробности

Простой пример разницы между расширением файла и настоящим типом: изображение PNG внутри всегда начинается с одних и тех же восьми байт (89 50 4E 47 0D 0A 1A 0A) — как бы ни назывался файл. Если переименовать image.png в image.txt, содержимое останется допустимым PNG; только программы, слепо полагающиеся на расширение, ошибочно сочтут его текстовым файлом.

Грубые категории типов файлов:

  • Текстовые: читаемые человеком как простой текст, например .txt, .md, .csv, JSON, XML.
  • Двоичные (binary): осмысленно интерпретируются только подходящей программой, например изображения (.png, .jpg), видео, скомпилированные программы.
  • Архивы/контейнеры: объединяют или сжимают несколько файлов в один, например ZIP, .tar.
  • Структурированные форматы Office: внутри часто сами являются ZIP-архивом из файлов XML, например .docx, .xlsx.

Многие проблемы безопасности возникают именно здесь: загруженный файл с расширением .jpg, фактическое содержимое которого — исполняемый код, может быть ошибочно признан безобидным сервером, проверяющим только расширение, — поэтому надёжные системы загрузки дополнительно проверяют настоящую сигнатуру в начале файла.

См. также: Файлы