INI podešavanja (.ini)

De Standard

Konfiguracija inicijalizacije Windowsa (INI) klasičan je, ljudima čitljiv format konfiguracionih datoteka koji je popularizovao Microsoft Windows. Podešavanja aplikacije organizuje u imenovane [odeljke] koji sadrže parove ključ=vrednost.

Konvertujte INI u JSON

Besplatan konvertor INI u JSON u pregledaču. Konvertujte datoteke odmah na svom uređaju.

Pregled i metapodaci

Operativni sistemi i analizatori datoteka identifikuju INI datoteke proverom početnog binarnog niza bajtova:

Izaberite ili prevucite datoteke ovde

Privatno - datoteke nikada ne napuštaju vaš uređaj

ili nalepite Ctrl+V
Garancija privatnosti: bez prenosa podataka preko mreže 0 bajtova poslato spoljnim serverima. Sva obrada je izvršena lokalno u bezbednom okruženju vašeg pregledača.

Potpis zaglavlja na nivou bajtova (magični bajtovi)

Operativni sistemi i analizatori datoteka identifikuju INI datoteke proverom početnog binarnog niza bajtova:

HEKSADECIMALNI POTPIS (OFFSET 0):

5B ... 5D

ASCII REPREZENTACIJA: [...]

Standardizacija: De facto industrijski standard za konfiguraciju

Tehničke specifikacije

Arhitektura kontejneraTekstualna konfiguraciona datoteka organizovana pomoću zaglavlja [odeljak], koja sadrže parove ključ = vrednost i komentare (; ili #)
KompresijaNekomprimovana tekstualna datoteka
Bajtni redosled (Endianness)Tekstualni tok UTF-8 ili ANSI
Prostori bojaNije primenljivo (konfiguraciona datoteka)
Kanali i strukturaKonfiguraciona svojstva ključ-vrednost grupisana po imenskim prostorima odeljaka
Maksimalne dimenzijeIstorijsko ograničenje od 64 KB u 16-bitnom Windowsu; neograničeno u savremenim implementacijama
TransparentnostNema
Strimovanje i progresivno učitavanjeParser koji obrađuje tok red po red

Tehnička matrica poređenja: INI u odnosu na konkurente

Tehnički atributINI (Trenutno)JSONYAMLTOML
Složenost sintakseNajjednostavnija moguća (odeljak + ključ=vrednost)Stroge zagrade i navodniciRazmaci osetljivi na uvlačenjeSavremene tipizirane tabele
Podrška za komentareIzvorna podrška za komentare (; i #)Nema podrške za komentare u specifikacijiIzvorna podrška za komentare (#)Izvorna podrška za komentare (#)
Ugnježđene struktureSamo odeljci sa 1 nivoomBeskonačni ugnježđeni objekti/nizoviBeskonačna ugnježđena stablaNizovi strukturiranih tabela
Tipizacija podatakaImplicitne niske (aplikacija parsira tipove)Eksplicitni brojevi, logičke vrednosti, nizoviEksplicitni tipovi i sidraEksplicitni datumi, brojevi, nizovi

Uobičajeni režimi oštećenja i vodič za heksadecimalni oporavak

Aplikacija ignoriše postavke ili ne uspeva da se pokrene.

Osnovni uzrok: Nedostaje zatvorena zagrada u zaglavlju odeljka (npr. '[Settings' umesto '[Settings]') ili znak jednakosti u vrednosti nije escapeovan.

Oporavak: Potvrdite i popravite INI sintaksu pomoću alata File2File.app Config Formatter.

Bezbednosna analiza i vektori napada parsera

INI parseri moraju da se zaštite od napada ubacivanjem odeljaka i zagađenja prototipa (prototype pollution) prilikom deserijalizacije u objekte.

Poznati vektori napada

  • INI injekcija pri kojoj ubacivanje znaka za novi red u korisnički unos stvara neovlašćene konfiguracione odeljke.
  • Zagađenje prototipa u JavaScript INI parserima dodelom vrednosti za '__proto__'.
  • Uskraćivanje usluge (DoS) usled duboko rekurzivnog proširivanja imena odeljaka.

Najbolje prakse za zaštitu: Sanitizujte korisničke ulaze da biste zabranili znakove za novi red i zaštitili se od zagađenja prototipa (prototype pollution).

Istorijat i prekretnice

2000Standardna biblioteka Pythona sadrži configparser za rad sa INI datotekama.
1995Windows 95 uvodi Windows registar da bi zamenio monolitne sistemske INI datoteke (SYSTEM.INI, WIN.INI).
1985Microsoft Windows 1.0 uvodi WIN.INI kao osnovnu konfiguracionu bazu podataka operativnog sistema.

Ključne prednosti

  • Izuzetno čista, intuitivna sintaksa: tehnički manje obučeni korisnici mogu lako pročitati i izmeniti postavke.
  • Izvorni API-ji za parsiranje u skoro svakom programskom jeziku (Python configparser, PHP parse_ini_file, C#).
  • Imenski prostori odeljaka sprečavaju preklapanje postavki u različitim funkcijama aplikacije.

Tehnička ograničenja i nedostaci

  • Ne postoji formalni međunarodni standard: znakovi za komentare (; i #) i pravila za escapeovanje razlikuju se među parserima.
  • Ravna hijerarhija: ne podržava duboko ugnježđene nizove ili složene strukturisane objekte bez prilagođenih separatora.
  • Sve vrednosti se čitaju kao niske (stringovi), pa aplikacije moraju ručno da parsiraju cele brojeve, logičke vrednosti i brojeve sa pokretnim zarezom.

Zanimljivosti

  • U Windowsu 3.1, svako pojedinačno podešavanje čitavog operativnog sistema bilo je sačuvano u samo dve datoteke: WIN.INI i SYSTEM.INI.
  • Git koristi INI format za svoju primarnu konfiguracionu datoteku skladišta koja se nalazi na lokaciji '.git/config'.
  • Datoteke prečica na radnoj površini u Linuxu (XDG Desktop Entry '.desktop' datoteke) strukturisane su pomoću standardne INI sintakse.

Često postavljana tehnička pitanja

Čemu služi INI fajl?

INI datoteke koriste desktop softver, igre i razvojni alati (kao što su Git config i PHP.ini) za čuvanje korisničkih podešavanja i konfiguracionih opcija u lako čitljivom formatu.

Kako mogu da izmenim INI fajl?

INI datoteke možete da otvorite i izmenite pomoću bilo kog osnovnog uređivača teksta, kao što su Notepad, TextEdit i VS Code, ili direktno na internetu pomoću File2File.app.

Mogu li da konvertujem INI u JSON ili YAML?

Da. File2File.app može odmah da konvertuje INI datoteke u čist JSON, YAML ili TOML format direktno u vašem pregledaču.