INI настройки (.ini)

Фактически Стандарт

Windows Initialization Configuration (INI) е класически четим за хора конфигурационен формат, популяризиран от Microsoft Windows. В него настройките на приложенията се организират в именувани секции с двойки ключ=стойност.

Конвертиране от INI към JSON

Безплатен конвертор от INI към JSON в браузъра. Конвертирайте файлове незабавно на вашето устройство.

Проверка и метаданни

Операционните системи и файловите анализатори идентифицират INI файлове чрез проверка на началната двоична байтова последователност:

Изберете или пуснете файлове тук

Поверително - файловете никога не напускат устройството ви

или поставете Ctrl+V
Гаранция за поверителност с нулево мрежово предаване: 0 байта са качени на външни сървъри. Цялата обработка се извършва локално в пясъчниците на вашия браузър.

Байтов подпис на заглавката (сигнатурни байтове)

Операционните системи и файловите анализатори идентифицират INI файлове чрез проверка на началната двоична байтова последователност:

HEX ПОДПИС (ОФСЕТ 0):

5B ... 5D

ASCII ПРЕДСТАВЯНЕ: [...]

Стандартизация: Фактически индустриален стандарт за конфигурационни файлове

Технически спецификации

Контейнерна архитектураОбикновен текстов конфигурационен файл със заглавни части [section], съдържащи двойки key = value и коментари (; или #)
КомпресияНекомпресиран текстов файл
Поредност на байтовете (Endianness)Текстов поток в UTF-8 или ANSI
Цветови пространстваНеприложимо (конфигурационен файл)
Канали и структураКонфигурационни свойства тип ключ-стойност, групирани по имена на секции
Максимални размериИсторическо ограничение от 64 KB в 16-битовите версии на Windows; без ограничение в съвременните реализации
ПрозрачностНяма
Поточно предаване и прогресивно зарежданеПоследователен парсер, който обработва текста ред по ред

Техническа сравнителна матрица: INI спрямо конкуренти

Технически атрибутINI (Текущ)JSONYAMLTOML
Сложност на синтаксисаВъзможно най-прост (секция + ключ=стойност)Строги скоби и кавичкиИнтервали, зависещи от отстъпитеСъвременни типизирани таблици
Поддръжка на коментариНативна (коментари с ; и #)Няма поддръжка на коментари в спецификациятаНативна (коментари с #)Нативна (коментари с #)
Вложени структуриСекции само на едно нивоОбекти и масиви с неограничено влаганеДървета с неограничена дълбочинаСтруктурирани масиви от таблици
Типизиране на данниНизове по подразбиране (приложението определя типовете)Експлицитни числа, булеви стойности, масивиЕксплицитни типове и котвиЕксплицитни дати, числа, масиви

Често срещани видове повреди и ръководство за възстановяване на шестнадесетични данни

Приложението игнорира настройките или не успява да стартира.

Първопричина: Липсваща лява скоба на заглавката на секция (напр. '[Settings' вместо '[Settings]') или неекраниран знак за равенство в стойността.

Възстановяване: Валидирайте и поправете INI синтаксиса с помощта на инструмента за форматиране на конфигурации на File2File.app.

Анализ на сигурността и вектори на атака към парсера

INI парсерите трябва да се защитават срещу атаки с инжектиране на секции и замърсяване на прототипа (prototype pollution) при десериализиране в обекти.

Известни вектори на атака

  • INI инжектиране, при което вмъкването на нов ред в потребителския вход създава неоторизирани конфигурационни секции.
  • Замърсяване на прототипа в JavaScript INI парсери, присвояващи към '__proto__'.
  • Отказ от услуга (DoS) чрез дълбоко рекурсивно разширяване на имена на секции.

Най-добри практики за защита: Проверявайте и почиствайте потребителските входни данни, за да забраните знаците за нов ред и да се предпазите от замърсяване на прототипи (prototype pollution).

Исторически произход и етапи

2000Стандартната библиотека на Python включва configparser за работа с INI файлове.
1995Windows 95 въвежда системния регистър на Windows (Windows Registry), за да замени монолитните системни INI файлове (SYSTEM.INI, WIN.INI).
1985Microsoft Windows 1.0 въвежда WIN.INI като основна конфигурационна база данни на операционната система.

Основни предимства

  • Чист и интуитивен синтаксис: потребителите без технически опит могат лесно да четат и променят настройките.
  • Почти всеки програмен език има API за обработка на INI файлове (Python configparser, PHP parse_ini_file, C#).
  • Пространствата от имена на секциите предотвратяват сблъсъци на настройки в различните функционалности на приложението.

Технически ограничения и минуси

  • Липсва официален международен стандарт: знаците за коментар (; срещу #) и правилата за екраниране варират при различните парсери.
  • Плоска йерархия: не поддържа дълбоко вложени масиви или сложни структурирани обекти без потребителски разделители.
  • Всички стойности се четат като низове, което изисква приложенията ръчно да обработват цели числа, булеви стойности и числа с плаваща запетая.

Интересни технически факти

  • В Windows 3.1 всяка настройка в цялата операционна система се съхраняваше само в два файла: WIN.INI и SYSTEM.INI.
  • Git използва формата INI за своя основен конфигурационен файл на хранилището, разположен в '.git/config'.
  • Файловете с преки пътища на работния плот в Linux (файлове за десктоп записи на XDG '.desktop') са структурирани с помощта на стандартен INI синтаксис.

Често задавани технически въпроси

За какво се използва INI файлът?

INI файловете се използват от софтуер за настолни компютри, игри и инструменти за разработчици (като Git config и PHP.ini) за съхраняване на потребителски предпочитания и конфигурационни настройки в лесно четим формат.

Как мога да редактирам INI файл?

Можете да отваряте и редактирате INI файлове с всеки обикновен текстов редактор като Notepad, TextEdit, VS Code или директно онлайн с помощта на File2File.app.

Мога ли да конвертирам INI в JSON или YAML?

Да. File2File.app може незабавно да конвертира INI файлове в чисти формати JSON, YAML или TOML направо във вашия браузър.