Параметри INI (.ini)
Де-факто СтандартWindows Initialization Configuration (INI) - це класичний, зручний для читання людиною формат файлу конфігурації, популяризований Microsoft Windows, який організовує налаштування додатків у пойменовані [розділи], що містять пари ключ=значення.
Конвертувати з INI у JSON
Безкоштовний конвертер з INI у JSON у браузері. Миттєво конвертуйте файли на своєму пристрої.
Аналіз та метадані
Операційні системи та аналізатори файлів ідентифікують файли INI, перевіряючи початкову послідовність бінарних байтів:
Сигнатура заголовка на байтовому рівні (Magic Bytes)
Операційні системи та аналізатори файлів ідентифікують файли INI, перевіряючи початкову послідовність бінарних байтів:
ШІСТНАДЦЯТКОВА СИГНАТУРА (ЗСУВ 0):
5B ... 5DASCII-УЯВЛЕННЯ: [...]
Стандартизація: Де-факто галузевий стандарт конфігурації
Технічні характеристики
| Архітектура контейнера | Звичайний текстовий файл конфігурації, структурований у заголовки [section], що містять пари ключ = значення та коментарі (; або #) |
| Стиснення | Нестиснений текстовий файл |
| Порядок байтів (Endianness) | Текстовий потік UTF-8 або ANSI |
| Колірні простори | Н/Д (Файл конфігурації) |
| Канали та структура | Властивості конфігурації ключ-значення, за категоріями просторів імен розділів |
| Максимальні розміри | Історичне обмеження у 64 КБ у 16-бітній Windows; необмежено в сучасних реалізаціях |
| Прозорість | Відсутня |
| Потокове та прогресивне завантаження | Послідовний построковий потоковий парсер |
Технічна матриця порівняння: INI проти конкурентів
| Технічний атрибут | INI (Поточний) | JSON | YAML | TOML |
|---|---|---|---|---|
| Складність синтаксису | Найпростіший із можливих (розділ + ключ=знач) | Суворі дужки та лапки | Чутливі до відступів пробіли | Сучасні типізовані таблиці |
| Підтримка коментарів | Нативна (коментарі ; та #) | Коментарі не підтримуються в специфікації | Нативна (коментарі #) | Нативна (коментарі #) |
| Вкладені структури | Лише 1-рівневі розділи | Нескінченно вкладені об'єкти/масиви | Нескінченно вкладені дерева | Структуровані масиви таблиць |
| Типізація даних | Неявні рядки (додаток аналізує типи) | Явні числа, логічні значення, масиви | Явні типи та прив'язки | Явні дати, числа, масиви |
Типові режими пошкодження та посібник з відновлення в шістнадцятковому форматі
Додаток ігнорує налаштування або не запускається.
Першопричина: Відсутня дужка заголовка розділу (наприклад, '[Settings' замість '[Settings]') або неэкранований знак рівності у значенні.
Відновлення: Перевірте та виправте синтаксис INI за допомогою форматувальника конфігурацій File2File.
Аналіз безпеки та векторів атак на парсери
Парсери INI повинні захищати від атак з впровадженням розділів та забруднення прототипів під час десеріалізації в об'єкти.
Відомі вектори атак
- Впровадження INI, де вставка нового рядка у введених користувачем даних створює несанкціоновані розділи конфігурації.
- Забруднення прототипів (prototype pollution) у парсерах INI на JavaScript при призначенні у '__proto__'.
- Відмова в обслуговуванні за допомогою глибоко рекурсивного розширення назв розділів.
Захисні найкращі практики:
Історичне походження та віхи
Головні переваги та плюси
- Винятково чистий, інтуїтивно зрозумілий синтаксис: нетехнічні користувачі можуть легко читати та змінювати налаштування.
- Нативні API синтаксичного аналізу майже кожною мовою програмування (configparser у Python, parse_ini_file у PHP, C#).
- Простори імен розділів запобігають колізіям налаштувань у різних функціях додатків.
Технічні обмеження та мінуси
- Відсутній офіційний міжнародний стандарт: символи коментарів (; проти #) та правила екранування відрізняються в різних парсерах.
- Плоска ієрархія: не підтримує глибоко вкладені масиви або складні структуровані об'єкти без спеціальних роздільників.
- Усі значення зчитуються як рядки, що вимагає від додатків вручну аналізувати цілі числа, логічні значення та числа з плавною комою.
Цікаві технічні факти
- У Windows 3.1 кожне окреме налаштування всієї операційної системи зберігалося лише у двох файлах: WIN.INI та SYSTEM.INI.
- Git використовує формат INI для свого основного файлу конфігурації репозиторію, розташованого за адресою '.git/config'.
- Файли ярликів робочого столу на Linux (файли '.desktop' XDG Desktop Entry) структуровані за допомогою стандартного синтаксису INI.
Поширені технічні запитання
Для чого використовується файл INI?
Файли INI використовуються настільним програмним забезпеченням, іграми та інструментами розробників (як-от конфігурація Git та PHP.ini) для зберігання вподобань користувача та налаштувань конфігурації у зручному для читання форматі.
Як я можу редагувати файл INI?
Ви можете відкривати та редагувати файли INI за допомогою будь-якого базового текстового редактора, такого як Notepad, TextEdit, VS Code або прямо онлайн за допомогою File2File.app.
Чи можу я конвертувати INI у JSON або YAML?
Так. File2File.app може миттєво конвертувати файли INI у формати JSON, YAML або TOML прямо у вашому браузері.