INI beállítások (.ini)
De SzabványA Windows Initialization Configuration (INI) a Microsoft Windows által népszerűsített klasszikus, ember által olvasható konfigurációsfájl-formátum, amely az alkalmazásbeállításokat kulcs=érték párokat tartalmazó, elnevezett [szakaszokba] szervezi.
INI konvertálása erre: JSON
Ingyenes, böngészőben használható INI-konverter JSON formátumba. A fájlokat azonnal konvertálhatja az eszközén.
Vizsgálat és metaadatok
Az operációs rendszerek és a fájlelemzők a kezdő bináris bájtsorozat vizsgálatával azonosítják a(z) INI fájlokat:
Bájtszintű fejlécaláírás (fájlazonosító bájtok)
Az operációs rendszerek és a fájlelemzők a kezdő bináris bájtsorozat vizsgálatával azonosítják a(z) INI fájlokat:
HEX ALÁÍRÁS (ELTOLÁS 0):
5B ... 5DASCII ÁBRÁZOLÁS: [...]
Szabványosítás: De facto iparági konfigurációs szabvány
Műszaki specifikációk
| Konténer architektúra | Egyszerű szöveges konfigurációs fájl [section] fejlécekkel, kulcs = érték párokkal és megjegyzésekkel (; vagy #) |
| Tömörítés | Tömörítetlen szövegfájl |
| Bájtsorrend | UTF-8 vagy ANSI kódolású szövegfolyam |
| Színterek | Nem alkalmazható (konfigurációs fájl) |
| Csatornák és struktúra | Szakaszok szerint csoportosított kulcs-érték konfigurációs tulajdonságok |
| Max. méretek | A 16 bites Windowsban történetileg 64 KB-os korlát volt érvényben; a modern megvalósításokban nincs méretkorlát |
| Átlátszóság | Nincs |
| Streaming és progresszív | Szekvenciális, sorról sorra haladó adatfolyam-elemzés |
Műszaki összehasonlító mátrix: INI vs. versenytársak
| Technikai attribútum | INI (Jelenlegi) | JSON | YAML | TOML |
|---|---|---|---|---|
| Szintaxis összetettsége | A lehető legegyszerűbb (szakasz + kulcs=érték) | Szigorú zárójelek és idézőjelek | Behúzásérzékeny szóközök | Modern típusos táblák |
| Megjegyzések támogatása | Natív támogatás (; és # jelű megjegyzések) | A specifikáció nem támogatja a megjegyzéseket | Natív támogatás (# jelű megjegyzések) | Natív támogatás (# jelű megjegyzések) |
| Beágyazott struktúrák | Csak 1 szintes szakaszok | Végtelen beágyazott objektumok/tömbök | Végtelen beágyazott fák | Strukturált táblatömbök |
| Adattípusok | Implicit karakterláncok (az alkalmazás elemzi a típusokat) | Kifejezetten megadott számok, logikai értékek és tömbök | Kifejezetten megadott típusok és horgonyok | Kifejezetten megadott dátumok, számok és tömbök |
Gyakori sérülési módok és hexadecimális helyreállítási útmutató
Az alkalmazás figyelmen kívül hagyja a beállításokat, vagy nem indul el.
Kiváltó ok: Hiányzó szakaszfejléc-zárójel (pl. „[Settings" a „[Settings]" helyett) vagy escape-elés nélküli egyenlőségjel az értékben.
Helyreállítás: Ellenőrizze és javítsa ki az INI szintaxisát a File2File.app Config Formatter segítségével.
Biztonsági elemzés és elemző (parser) támadási vektorok
Az INI elemzőknek védekezniük kell a szakaszbeszúrásos támadások és a prototípus-szennyezés ellen az objektumokká történő deszerializálás során.
Ismert támadási vektorok
- INI-injekció, amelynél a felhasználói bemenetbe illesztett új sor jogosulatlan konfigurációs szakaszokat hoz létre.
- Prototípus-szennyezés a JavaScript INI elemzőkben, amelyek a '__proto__' tulajdonsághoz rendelnek értéket.
- Szolgáltatásmegtagadás (DoS) a mélyen rekurzív szakasznév-bővítés révén.
Ajánlott védekezési módszerek: Tisztítsa meg a felhasználói bemeneteket, hogy tiltsa az újsor karaktereket, és védekezzen a prototípus-szennyezés (prototype pollution) ellen.
Történeti háttér és mérföldkövek
Főbb előnyök
- Kivételesen tiszta, intuitív szintaxis: a nem műszaki felhasználók is könnyen olvashatják és módosíthatják a beállításokat.
- Natív elemző API-k szinte minden programozási nyelvben (Python configparser, PHP parse_ini_file, C#).
- A szakasznévterek megakadályozzák, hogy ütközzenek egymással a különböző alkalmazásfunkciók beállításai.
Technikai korlátok és hátrányok
- Nincs hivatalos nemzetközi szabvány: a megjegyzésjelek (; vs #) és a karakterek escape-elésének szabályai elemzőnként eltérőek lehetnek.
- Lapos hierarchia: egyedi elválasztók nélkül nem támogatja a mélyen beágyazott tömböket vagy összetett strukturált objektumokat.
- Minden érték karakterláncként olvasódik be, ami megköveteli az alkalmazásoktól az egész számok, logikai értékek és lebegőpontos számok manuális elemzését.
Érdekes technikai tudnivalók
- A Windows 3.1-ben a teljes operációs rendszer minden egyes beállítása mindössze két fájlban volt tárolva: a WIN.INI-ben és a SYSTEM.INI-ben.
- A Git az INI formátumot használja a „.git/config" útvonalon található elsődleges adattár-konfigurációs fájljához.
- A Linux asztali parancsikonfájljai (XDG Desktop Entry „.desktop" fájlok) a szabványos INI szintaxist használva vannak felépítve.
Gyakran Ismételt Műszaki Kérdések
Mire használatos egy INI fájl?
Az INI fájlokat asztali szoftverek, játékok és fejlesztői eszközök (például a Git konfiguráció és a PHP.ini) használják a felhasználói beállítások és konfigurációs opciók könnyen olvasható formátumban történő tárolására.
Hogyan szerkeszthetem az INI-fájlt?
Az INI-fájlokat bármilyen egyszerű szövegszerkesztővel, például a Jegyzettömbbel (Notepad), a TextEdittel vagy a VS Code-dal, illetve közvetlenül online, a File2File.app használatával nyithatja meg és szerkesztheti.
Konvertálhatok INI-t JSON-be vagy YAML-be?
Igen. A File2File.app azonnal, az Ön böngészőjében konvertálja az INI-fájlokat tiszta JSON-, YAML- vagy TOML-formátumba.