INI nustatymai (.ini)

De Standartinis

„Windows" paleidimo konfigūracija (INI) yra klasikinis, žmogui lengvai skaitomas konfigūracijos failo formatas, kurį išpopuliarino „Microsoft Windows", organizuojantis programos nustatymus į pavadintus [skyrius], kuriuose yra raktas=reikšmė porų.

Konvertuoti INI į JSON

Nemokamas INI į JSON konverteris naršyklėje. Konvertuokite failus akimirksniu savo įrenginyje.

Tikrinti ir metaduomenys

Operacinės sistemos ir failų analizatoriai atpažįsta INI failus tikrindami pradinę dvejetainę baitų seką:

Pasirinkite arba nuvilkite failus čia

100% privatus konvertavimas naršyklėje - failai niekada nepalieka jūsų įrenginio

arba įklijuokite Ctrl+V
Nulinio tinklo perdavimo privatumo garantija: 0 baitų įkelta į išorinius serverius. Visas apdorojimas vyko vietoje, jūsų naršyklės smėlio dėžėje (sandbox).

Baitų lygio antraštės parašas (magiškieji baitai)

Operacinės sistemos ir failų analizatoriai atpažįsta INI failus tikrindami pradinę dvejetainę baitų seką:

ŠEŠIOLIKTAINIS PARAŠAS (POSLINKIS 0):

5B ... 5D

ASCII ATVAIZDAVIMAS: [...]

Standartizacija: De facto industry configuration standard

Techninės specifikacijos

Konteinerio architektūraPlaintext configuration file structured into [section] headers containing key = value pairs and comments (; or #)
GlaudinimasUncompressed text file
Baitų seka (Endianness)UTF-8 or ANSI text stream
Spalvų erdvėsN/A (Configuration File)
Kanalai ir struktūraKey-value configuration properties categorized by section namespaces
Maksimalūs matmenysHistorical 64 KB limit in 16-bit Windows; unlimited in modern implementations
SkaidrumasNone
Srautas ir progresyvusis įkėlimasSequential line-by-line streaming parser

Techninė palyginimo matrica: INI vs konkurentai

Techninis atributasINI (Dabartinis)JSONYAMLTOML
Sintaksės sudėtingumasPats paprasčiausias (skyrius + raktas=reikšmė)Griežti skliaustai ir kabutėsNuo įtraukos priklausomi tarpaiŠiuolaikinės tipizuotos lentelės
Komentarų palaikymasGimtasis (; ir # komentarai)Komentarai specifikacijoje nepalaikomiGimtasis (# komentarai)Gimtasis (# komentarai)
Įdėtos struktūrosTik 1 lygio skyriaiBegaliniai įdėti objektai / masyvaiBegaliniai įdėti medžiaiStruktūrizuoti lentelių masyvai
Duomenų tipizavimasNumanomos eilutės (programa pati analizuoja tipus)Eksplicitiniai skaičiai, Būlio reikšmės, masyvaiEksplicitiniai tipai ir gairėsEksplicitinės datos, skaičiai, masyvai

Dažni sugadinimo režimai ir šešioliktainio atkūrimo vadovas

Programa ignoroja nustatymus arba nepaleidžia.

Pirminė priežastis: Trūksta skyriaus antraštės skliausto (pvz., „[Settings" vietoj „[Settings]") arba neapdorotas lygybės ženklas reikšmėje.

Atkūrimas: Patikrinkite ir pataisykite INI sintaksę naudodami „File2File Config Formatter".

Saugumo analizė ir analizatoriaus atakos vektoriai

INI analizatoriai turi apsisaugoti nuo skyriaus injekcijos atakų ir prototipų taršos (prototype pollution) deserializuojant į objektus.

Žinomi atakos vektoriai

  • INI injekcija, kai naujos eilutės įterpimas vartotojo įvestyje sukuria neleistinus konfigūracijos skyrius.
  • Prototipų tarša „JavaScript" INI analizatoriuose, priskiriant reikšmes prie '__proto__'.
  • Paslaugos trikdymo atakos (DoS) per giliai rekursyvų skyriaus pavadinimo išplėtimą.

Geriausia apsaugos praktika:

Istorinė kilmė ir svarbiausi etapai

2000„Python" standartinė biblioteka integruoja „ConfigParser" modulį, įtvirtindama INI kaip universalų programinės įrangos konfigūracijos formatą.
1995„Windows 95" pristato „Windows" registrą, kuris pakeičia monolitus sistemos INI failus (SYSTEM.INI, WIN.INI).
1985„Microsoft Windows 1.0" pristato WIN.INI kaip pagrindinę operacinės sistemos konfigūracijos duomenų bazę.

Pagrindiniai privalumai

  • Išskirtinai švari, intuityvi sintaksė: netechniniai vartotojai gali lengvai perskaityti ir modifikuoti nustatymus.
  • Gimtosios analizės programavimo sąsajos (API) beveik kiekvienoje programavimo kalboje („Python configparser", „PHP parse_ini_file", C#).
  • Skyrių vardų erdvės (namespaces) apsaugo nuo nustatymų susidūrimo tarp skirtingų programos funkcijų.

Techniniai apribojimai ir trūkumai

  • Nėra formalaus tarptautinio standarto: komentarų simboliai (; prieš #) ir kaitos taisyklės skiriasi įvairiuose analizatoriuose.
  • Plokščia hierarchija: nepalaiko giliai įdėtų masyvų arba sudėtingų struktūrinių objektų be pasirinktinių skyriklių.
  • Visos reikšmės nuskaitomos kaip tekstinės eilutės, todėl programos turi rankiniu būdu išanalizuoti sveikuosius skaičius, Būlio reikšmes ir slankiojo kablelio skaičius.

Įdomūs techniniai faktai

  • „Windows 3.1" operacinėje sistemoje kiekvienas nustatymas buvo saugomas tik dviejuose failuose: WIN.INI ir SYSTEM.INI.
  • „Git" naudoja INI formatą savo pagrindiniam saugyklos konfigūracijos failui, esančiam „.git/config".
  • Darbalaukio nuorodų failai „Linux" sistemoje („XDG Desktop Entry .desktop" failai) yra struktūrizuojami naudojant standartinę INI sintaksę.

Dažniausiai užduodami techniniai klausimai

Kam naudojamas INI failas?

INI failus naudoja darbalaukio programinė įranga, žaidimai ir kūrėjų įrankiai (pvz., Git konfigūracija ir PHP.ini), kad lengvai skaitomu formatu saugotų naudotojo nuostatas ir konfigūracijos nustatymus.

Kaip galiu redaguoti INI failą?

Galite atidaryti ir redaguoti INI failus naudodami bet kurį paprastą teksto redaktorių, pvz., Notepad, TextEdit, VS Code, arba tiesiogiai internete naudodami File2File.app.

Ar galiu konvertuoti INI į JSON arba YAML?

Taip. File2File.app gali akimirksniu naršyklėje konvertuoti INI failus į švarius JSON, YAML arba TOML formatus.