Ustawienia INI (.ini)

De Standardowy

Windows Initialization Configuration (INI) to klasyczny, czytelny dla człowieka format plików konfiguracyjnych spopularyzowany przez system Microsoft Windows, organizujący ustawienia aplikacji w nazwane [sekcje] zawierające pary klucz=wartość.

Konwertuj INI na JSON

Darmowy konwerter z INI na JSON w przeglądarce. Konwertuj pliki natychmiast na swoim urządzeniu.

Inspekcja i metadane

Systemy operacyjne i analizatory plików identyfikują pliki INI, sprawdzając początkową sekwencję bajtów binarnych:

Wybierz lub upuść pliki tutaj

Konwersja w 100% prywatna w przeglądarce - pliki nigdy nie opuszczają Twojego urządzenia

lub wklej Ctrl+V
Gwarancja prywatności bez przesyłania danych do sieci: 0 bajtów przesłanych na zewnętrzne serwery. Całe przetwarzanie odbyło się lokalnie w piaskownicy przeglądarki.

Podpis nagłówka na poziomie bajtów (Magic Bytes)

Systemy operacyjne i analizatory plików identyfikują pliki INI, sprawdzając początkową sekwencję bajtów binarnych:

PODPIS HEX (OFFSET 0):

5B ... 5D

REPREZENTACJA ASCII: [...]

Normalizacja: De facto industry configuration standard

Specyfikacja techniczna

Architektura konteneraZwykły plik konfiguracyjny ustrukturyzowany w nagłówki [sekcji] zawierające pary klucz = wartość oraz komentarze (; lub #)
KompresjaNieskompresowany plik tekstowy
Kolejność bajtów (Endianness)Strumień tekstowy UTF-8 lub ANSI
Przestrzenie kolorówNie dotyczy (plik konfiguracyjny)
Kanały i strukturaWłaściwości konfiguracyjne typu klucz-wartość podzielone na kategorie według przestrzeni nazw sekcji
Maks. wymiaryHistoryczny limit 64 KB w 16-bitowym systemie Windows; brak limitów w nowoczesnych implementacjach
PrzezroczystośćBrak
Streaming i progresywne ładowanieSekwencyjny parser strumieniowy wiersz po wierszu

Techniczna macierz porównawcza: INI a konkurencja

Atrybut technicznyINI (Bieżący)JSONYAMLTOML
Złożoność składniNajprostsza możliwa (sekcja + klucz=wart)Ścisłe nawiasy i cudzysłowyBiałe znaki wrażliwe na wcięciaNowoczesne typowane tabele
Obsługa komentarzyNatywna (komentarze ; oraz #)Brak obsługi komentarzy w specyfikacjiNatywna (komentarze #)Natywna (komentarze #)
Zagnieżdżone strukturyTylko 1-poziomowe sekcjeNieskończenie zagnieżdżone obiekty/tabliceNieskończenie zagnieżdżone drzewaStrukturalne tablice tabel
Typowanie danychNiejawne ciągi znaków (aplikacja parsuje typy)Jawne liczby, wartości logiczne, tabliceJawne typy i kotwiceJawne daty, liczby, tablice

Typowe tryby uszkodzeń i przewodnik odzyskiwania szesnastkowego

Aplikacja ignoruje ustawienia lub nie uruchamia się.

Główna przyczyna: Brak nawiasu nagłówka sekcji (np. '[Settings' zamiast '[Settings]') lub niezescapowany znak równości w wartości.

Odzyskiwanie: Zweryfikuj i napraw składnię pliku INI za pomocą narzędzia File2File Config Formatter.

Analiza bezpieczeństwa i wektory ataku na parser

Parsery plików INI muszą chronić przed atakami iniekcji sekcji oraz zanieczyszczeniem prototypu (prototype pollution) podczas deserializacji do obiektów.

Znane wektory ataku

  • Iniekcja INI, w której wstawienie nowego wiersza w danych wejściowych użytkownika tworzy nieautoryzowane sekcje konfiguracyjne.
  • Zanieczyszczenie prototypu w parserach INI języka JavaScript przypisujące wartości do '__proto__'.
  • Odmowa usługi (DoS) poprzez głęboko rekurencyjne rozwijanie nazw sekcji.

Najlepsze praktyki obronne: Oczyszczaj dane wprowadzane przez użytkownika, aby zabronić używania znaków nowej linii i chronić przed zanieczyszczeniem prototypu.

Pochodzenie historyczne i kamienie milowe

2000Standardowa biblioteka Pythona integruje moduł ConfigParser, utrwalając format INI jako uniwersalny format konfiguracji oprogramowania.
1995System Windows 95 wprowadza rejestr systemu Windows (Windows Registry) w celu zastąpienia monolitycznych systemowych plików INI (SYSTEM.INI, WIN.INI).
1985Microsoft Windows 1.0 wprowadza plik WIN.INI jako główną bazę danych konfiguracji systemu operacyjnego.

Główne zalety

  • Wyjątkowo przejrzysta, intuicyjna składnia: użytkownicy nietechniczni mogą łatwo odczytywać i modyfikować ustawienia.
  • Natywne interfejsy API parsowania w niemal każdym języku programowania (Python configparser, PHP parse_ini_file, C#).
  • Przestrzenie nazw sekcji zapobiegają kolizjom ustawień pomiędzy różnymi funkcjami aplikacji.

Ograniczenia techniczne i wady

  • Brak formalnego standardu międzynarodowego: znaki komentarza (; vs #) i reguły ucieczki (escaping) różnią się w zależności od parserów.
  • Płaska hierarchia: nie obsługuje głęboko zagnieżdżonych tablic lub złożonych obiektów strukturalnych bez niestandardowych separatorów.
  • Wszystkie wartości są odczytywane jako ciągi znaków, co wymaga od aplikacji ręcznego parsowania liczb całkowitych, wartości logicznych i zmiennoprzecinkowych.

Ciekawe informacje techniczne

  • W systemie Windows 3.1 każde pojedyncze ustawienie w całym systemie operacyjnym było przechowywane w zaledwie dwóch plikach: WIN.INI oraz SYSTEM.INI.
  • Git używa formatu INI dla swojego głównego pliku konfiguracyjnego repozytorium znajdującego się w lokalizacji '.git/config'.
  • Pliki skrótów pulpitów w systemie Linux (pliki XDG Desktop Entry '.desktop') są ustrukturyzowane przy użyciu standardowej składni INI.

Często zadawane pytania techniczne

Do czego używany jest plik INI?

Pliki INI są używane przez oprogramowanie komputerowe, gry i narzędzia programistyczne (takie jak konfiguracja Gita i plik PHP.ini) do przechowywania preferencji użytkownika i ustawień konfiguracji w łatwo czytelnym formacie.

Jak mogę edytować plik INI?

Możesz otwierać i edytować pliki INI za pomocą dowolnego podstawowego edytora tekstu, takiego jak Notatnik, TextEdit, VS Code, lub bezpośrednio online za pomocą File2File.app.

Czy mogę przekonwertować plik INI do formatu JSON lub YAML?

Tak. File2File.app pozwala błyskawicznie przekonwertować pliki INI do czystego formatu JSON, YAML lub TOML bezpośrednio w przeglądarce.