INI-asetukset (.ini)

De Standardi

Windows Initialization Configuration (INI) on klassinen, ihmisen luettavissa oleva asetustiedostomuoto, jonka Microsoft Windows teki suosituksi. Se järjestää sovelluksen asetukset nimitettyihin [osioihin], jotka sisältävät avain=arvo-pareja.

Muunna tiedostot muodosta INI muotoon JSON

Ilmainen selaimen sisäinen INI - JSON-muunnin. Muunna tiedostoja välittömästi laitteellasi.

Tarkastele ja metatiedot

Käyttöjärjestelmät ja tiedostoanalyysaattorit tunnistavat INI-tiedostot tarkistamalla tiedoston alun binäärisarjan:

Valitse tai pudota tiedostot tähän

100 % yksityinen selaimen sisäinen muunnos - tiedostot eivät poistu laitteeltasi

tai liitä Ctrl+V
Tietosuojatakuu: 0 % verkkosiirtoa 0 tavua ladattu ulkoisille palvelimille. Kaikki käsittely tapahtui paikallisesti selaimen hiekkalaatikossa.

Tavutason otsikon allekirjoitus (Magic Bytes)

Käyttöjärjestelmät ja tiedostoanalyysaattorit tunnistavat INI-tiedostot tarkistamalla tiedoston alun binäärisarjan:

HEX-ALLEKIRJOITUS (OFFSET 0):

5B ... 5D

ASCII-ESITYSTAPA: [...]

Standardointi: De facto industry configuration standard

Tekniset tiedot

SäiliöarkkitehtuuriPlaintext configuration file structured into [section] headers containing key = value pairs and comments (; or #)
PakkausUncompressed text file
Tavujärjestys (Endianness)UTF-8 or ANSI text stream
VäriavaruudetN/A (Configuration File)
Kanavat ja rakenneKey-value configuration properties categorized by section namespaces
Suurimmat mitatHistorical 64 KB limit in 16-bit Windows; unlimited in modern implementations
LäpinäkyvyysNone
Suoratoisto ja progressiivinen latausSequential line-by-line streaming parser

Tekninen vertailumatriisi: INI vs. kilpailijat

Tekninen attribuuttiINI (Nykyinen)JSONYAMLTOML
Syntaksin monimutkaisuusYksinkertaisin mahdollinen (osio + avain=arvo)Tiukat hakasulkeet ja lainausmerkitSisennusherkkä tyhjä tilaModernit tyypitetyt taulukot
KommenttitukiSisäänrakennettu (; ja # -kommentit)Ei kommenttitukea spesifikaatiossaSisäänrakennettu (# -kommentit)Sisäänrakennettu (# -kommentit)
Sisäkkäiset rakenteetVain 1-tason osiotÄärettömästi sisäkkäisiä objekteja/taulukoitaÄärettömästi sisäkkäisiä puitaRakenteelliset taulukkomatriisit
DatatypitysEpäsuorat merkkijonot (sovellus jäsennetään tyypit)Eksplisiittiset numerot, totuusarvot, taulukotEksplisiittiset tyypit ja ankkuritEksplisiittiset päivämäärät, numerot, taulukot

Yleiset korruptiotilat ja heksatietojehdotusopas

Sovellus ohittaa asetukset tai ei käynnisty.

Perussyy: Puuttuva osion otsikon hakasulje (esim. '[Settings' eikä '[Settings]') tai välttämätön yhtäsuurmerkin puuttuminen arvosta.

Korjaus: Validoi ja korjaa INI-syntaksi File2File Config Formatter -työkalulla.

Turvallisuusanalyysi ja jäsenninhyökkäysvektorit

INI-jäsentimien on suojauduttava osioiden injektiohyökkäyksiltä ja prototyypin saastuttamiselta (prototype pollution) purettaessa objekteiksi.

Tunnetut hyökkäysvektorit

  • INI-injektio, jossa rivinvaihdon lisäys käyttäjän syötteeseen luo luvattomia asetustiedoston osioita.
  • Prototyypin saastuttaminen JavaScriptin INI-jäsentimissä, jotka kohdistavat __proto__-kenttään.
  • Palvelunestohyökkäys syvästi rekursiivisen osion nimen laajennuksen kautta.

Parhaat puolustuskäytännöt:

Historia ja virstanpylväät

2000Pythonin standardikirjasto integroi ConfigParser-moduulin, mikä vakiinnuttaa INI:n universaaliksi ohjelmistojen asetustiedostomuodoksi.
1995Windows 95 esittelee Windowsin rekisterin korvaamaan monoliittiset järjestelmän INI-tiedostot (SYSTEM.INI, WIN.INI).
1985Microsoft Windows 1.0 esittelee WIN.INI-tiedoston käyttöjärjestelmän ytimen asetustietokantana.

Tärkeimmät edut

  • Poikkeuksellisen selkeä ja intuitiivinen syntaksi: ei-tekniset käyttäjät voivat helposti lukea ja muokata asetuksia.
  • Sisäänrakennetut jäsennysrajapinnat lähes kaikissa ohjelmointikielissä (Python configparser, PHP parse_ini_file, C#).
  • Osionimiavaruudet estävät asetusten yhteentörmäykset eri sovellusominaisuuksien välillä.

Tekniset rajoitukset

  • Ei virallista kansainvälistä standardia: kommenttimerkit (; vs #) ja esiintymien välttämisäännöt (escaping) vaihtelevat jäsentimien välillä.
  • Litteä hierarkia: ei tue syvästi sisäkkäisiä taulukoita tai monimutkaisia rakenteellisia objekteja ilman mukautettuja erottimia.
  • Kaikki arvot luetaan merkkijonoina, mikä edellyttää sovelluksilta kokonaislukujen, totuusarvojen ja liukulukujen manuaalista jäsennystä.

Mielenkiintoisia teknisiä faktoja

  • Windows 3.1:ssä jokainen koko käyttöjärjestelmän asetus oli tallennettu vain kahteen tiedostoon: WIN.INI ja SYSTEM.INI.
  • Git käyttää INI-muotoa ensisijaiseen arkiston asetustiedostoonsa, joka sijaitsee polussa '.git/config'.
  • Linuxin työpöydän pikakuvaketiedostot (XDG Desktop Entry '.desktop' -tiedostot) on jäsennetty käyttäen standardia INI-syntaksia.

Usein kysytyt tekniset kysymykset

Mihin INI-tiedostoa käytetään?

Pöytäkoneohjelmistot, pelit ja kehitystyökalut (kuten Gitin asetukset ja PHP.ini) käyttävät INI-tiedostoja käyttäjien asetusten ja määritysten tallentamiseen helposti luettavassa muodossa.

Miten voin muokata INI-tiedostoa?

Voit avata ja muokata INI-tiedostoja millä tahansa perusmuokkaimella, kuten Notepadilla, TextEditillä, VS Codella tai suoraan verkossa File2File.app-sovelluksella.

Voinko muuntaa INI-tiedoston JSON- tai YAML-muotoon?

Kyllä. File2File.app voi muuntaa INI-tiedostot selkeään JSON-, YAML- tai TOML-muotoon hetkessä selaimessasi.