Ustawienia INI (.ini)

De Standard

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 [sections] 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

Prywatnie - 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 tekstowy plik konfiguracyjny uporządkowany według nagłówków [section], zawierający 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 w postaci par klucz-wartość, pogrupowane 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=wartość)Obowiązkowe nawiasy i cudzysłowyBiałe znaki wrażliwe na wcięciaNowoczesne tabele o określonych typach
Obsługa komentarzyNatywna obsługa komentarzy (; i #)Brak obsługi komentarzy w specyfikacjiNatywna obsługa komentarzy (#)Natywna obsługa komentarzy (#)
Zagnieżdżone strukturyTylko sekcje jednopoziomoweDowolnie głęboko zagnieżdżone obiekty i tabliceDowolnie głęboko zagnieżdżone drzewaTablice tabel o określonej strukturze
Typowanie danychWartości są domyślnie ciągami znaków (aplikacja rozpoznaje 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 zamykającego nagłówek sekcji (np. '[Settings' zamiast '[Settings]') lub znak równości w wartości niepoprzedzony znakiem ucieczki.

Odzyskiwanie: Zweryfikuj i napraw składnię pliku INI za pomocą narzędzia File2File.app 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

2000Biblioteka standardowa Pythona zawiera configparser do obsługi plików INI.
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 (; lub #) i reguły zapisu znaków specjalnych różnią się w zależności od parsera.
  • 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 pulpitu w systemie Linux (pliki XDG Desktop Entry z rozszerzeniem „.desktop”) mają standardową składnię INI.

Często zadawane pytania techniczne

Do czego używany jest plik INI?

Pliki INI służą do przechowywania preferencji użytkownika i ustawień przez programy komputerowe, gry oraz narzędzia programistyczne (takie jak konfiguracja Gita i plik PHP.ini). Zapisane w nich dane są łatwe do odczytania.

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.