Типи файлів
Коротко: Категорії файлів, що визначають, як структуровано їхній вміст і які програми можуть їх відкривати, — наприклад, текст, зображення, відео чи архів.
Докладніше: Тип файлу зазвичай позначається розширенням (.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, фактичний вміст якого — виконуваний код, може бути помилково визнаний нешкідливим сервером, що перевіряє лише розширення, — тому надійні системи завантаження додатково перевіряють справжню сигнатуру на початку файлу.
Див. також: Файли