INI-asetukset (.ini)
Käytännössä StandardiWindows 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 selaimessa toimiva muunnin, jolla voit muuntaa tiedostoja muodosta INI muotoon JSON. Muunna tiedostot hetkessä laitteellasi.
Tarkastele tiedostoa ja sen metatietoja
Käyttöjärjestelmät ja tiedostoanalyysaattorit tunnistavat INI-tiedostot tarkistamalla tiedoston alun binäärisarjan:
Otsaketunniste tavutasolla (tunnistetavut)
Käyttöjärjestelmät ja tiedostoanalyysaattorit tunnistavat INI-tiedostot tarkistamalla tiedoston alun binäärisarjan:
HEKSADEKSIMAALINEN TUNNISTE (SIJAINTI 0):
5B ... 5DASCII-ESITYSTAPA: [...]
Standardointi: Käytännössä muodostunut alan asetustiedostostandardi
Tekniset tiedot
| Säiliöarkkitehtuuri | Pelkkä tekstitiedosto, jonka osionimikkeiden ([section]) alla on avain=arvo-pareja ja kommentteja (; tai #) |
| Pakkaus | Pakkaamaton tekstitiedosto |
| Tavujärjestys (Endianness) | UTF-8- tai ANSI-tekstivirta |
| Väriavaruudet | Ei sovellu (asetustiedosto) |
| Kanavat ja rakenne | Osioittain ryhmiteltyjä avain-arvo-muotoisia asetuksia |
| Suurimmat mitat | Vanhoissa 16-bittisissä Windows-versioissa 64 kt:n raja; nykyisissä toteutuksissa ei kokorajaa |
| Läpinäkyvyys | Ei läpinäkyvyyttä |
| Suoratoisto ja progressiivinen lataus | Peräkkäinen, rivi kerrallaan toimiva jäsennin |
Tekninen vertailumatriisi: INI vs. kilpailijat
| Tekninen attribuutti | INI (Nykyinen) | JSON | YAML | TOML |
|---|---|---|---|---|
| Syntaksin monimutkaisuus | Yksinkertaisin mahdollinen (osio + avain=arvo) | Tiukat hakasulkeet ja lainausmerkit | Sisennusherkkä tyhjä tila | Modernit tyypitetyt taulukot |
| Kommenttituki | Sisäänrakennettu (;- ja #-kommentit) | Ei kommenttitukea spesifikaatiossa | Sisäänrakennettu (#-kommentit) | Sisäänrakennettu (#-kommentit) |
| Sisäkkäiset rakenteet | Vain 1-tason osiot | Äärettömästi sisäkkäisiä objekteja/taulukoita | Äärettömästi sisäkkäisiä puita | Rakenteiset taulukot |
| Datatypitys | Implisiittiset merkkijonot (sovellus päättelee tyypit) | Eksplisiittiset numerot, totuusarvot, taulukot | Eksplisiittiset tyypit ja ankkurit | Eksplisiittiset päivämäärät, numerot, taulukot |
Yleiset vioittumistavat ja heksadesimaalinen palautusopas
Sovellus ohittaa asetukset tai ei käynnisty.
Perussyy: Puuttuva hakasulje osion otsikosta (esim. '[Settings' eikä '[Settings]') tai arvoon merkitsemätön yhtäläisyysmerkki.
Korjaus: Tarkista ja korjaa INI-syntaksi File2File.app Config Formatter -työkalulla.
Tietoturva-analyysi ja tiedostojäsentimien hyökkäysvektorit
INI-jäsentimien on suojauduttava osioiden injektiohyökkäyksiltä ja prototyypin saastuttamiselta (prototype pollution), kun data muunnetaan 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 asettavat arvoja __proto__-kenttään.
- Palvelunestohyökkäys syvästi rekursiivisen osion nimen laajennuksen kautta.
Tietoturvan parhaat käytännöt: Puhdista käyttäjän syötteet, jotta voit kieltää rivinvaihtomerkit ja suojautua prototyypin saastumiselta.
Historia ja virstanpylväät
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 erikoismerkkien suojaussää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.