INI-indstillinger (.ini)
De StandardWindows Initialization Configuration (INI) er det klassiske menneskevenlige konfigurationsfilformat populariseret af Microsoft Windows, som organiserer applikationsindstillinger i navngivne [sektioner], der indeholder nøgle=værdi-par.
Konverter INI til JSON
Gratis INI til JSON-konverter i browseren. Konverter filer med det samme på din enhed.
Undersøgelse og metadata
Operativsystemer og filanalysatorer identificerer INI-filer ved at inspicere den indledende binære bytesekvens:
Byte-niveau Header-signatur (Magic Bytes)
Operativsystemer og filanalysatorer identificerer INI-filer ved at inspicere den indledende binære bytesekvens:
HEX-SIGNATUR (OFFSET 0):
5B ... 5DASCII-REPRÆSENTATION: [...]
Standardisering: De facto-standard for konfigurationsfiler i branchen
Tekniske specifikationer
| Containerarkitektur | Ren tekstbaseret konfigurationsfil struktureret med [section]-headers, nøgle = værdi-par og kommentarer (; eller #) |
| Komprimering | Ukomprimeret tekstfil |
| Byte-rækkefølge | UTF-8- eller ANSI-tekststrøm |
| Farverum | Ikke relevant (konfigurationsfil) |
| Kanaler og struktur | Nøgle-værdi-konfigurationsegenskaber grupperet efter sektionsnavneområder |
| Maks. dimensioner | Historisk grænse på 64 KB i 16-bit Windows; ubegrænset i moderne implementeringer |
| Gennemsigtighed | Ingen |
| Streaming og progressiv | Sekventiel streamingfortolker, der læser linje for linje |
Teknisk sammenligningsmatrix: INI sammenlignet med konkurrenterne
| Teknisk attribut | INI (Aktuel) | JSON | YAML | TOML |
|---|---|---|---|---|
| Syntaksens kompleksitet | Så enkel som muligt (sektion + nøgle=værdi) | Strenge klammer og anførselstegn | Mellemrum, hvor indrykningen har betydning | Moderne typede tabeller |
| Kommentarunderstøttelse | Indbygget (; og # kommentarer) | Ingen kommentarer understøttet i specifikationen | Indbygget (# kommentarer) | Indbygget (# kommentarer) |
| Indlejrede strukturer | Kun sektioner på ét niveau | Uendelige indlejrede objekter/arrays | Uendelige indlejrede træer | Strukturerede tabel-arrays |
| Datatypning | Implicitte strenge (appen fortolker typer) | Eksplicitte tal, booleske værdier, arrays | Eksplicitte typer og ankre | Eksplicitte datoer, tal, arrays |
Almindelige korruptionstilstande og hex-gendannelsesvejledning
Applikationen ignorerer indstillinger eller undlader at starte.
Grundlæggende årsag: Manglende sektionshovedklamme (f.eks. '[Settings' i stedet for '[Settings]') eller ikke-escapet lighedstegn i værdien.
Gendannelse: Validér og ret INI-syntaks ved hjælp af File2File.app Config Formatter.
Sikkerhedsanalyse og parser-angrebsvektorer
INI-parsere skal beskytte mod sektionsindsprøjtningsangreb og prototypeforurening ved deserialisering til objekter.
Kendte angrebsvektorer
- INI-indsprøjtning, hvor linjeskiftindsættelse i brugerinput skaber uautoriserede konfigurationssektioner.
- Prototypeforurening i JavaScript INI-parsere ved tildeling til '__proto__'.
- Nægtelse af tjeneste (DoS) gennem dybt rekursiv sektionsnavneudvidelse.
Defensive bedste praksisser: Rens brugerinput for at forbyde linjeskiftstegn og beskytte mod prototypeforurening.
Historisk oprindelse og milepæle
Vigtige fordele og styrker
- Ekstremt ren, intuitiv syntaks: ikke-tekniske brugere kan nemt læse og ændre indstillinger.
- Indbyggede parser-API'er i næsten alle programmeringssprog (Python configparser, PHP parse_ini_file, C#).
- Sektionsnavnerum forhindrer indstillingskollisioner på tværs af forskellige applikationsfunktioner.
Tekniske begrænsninger og ulemper
- Ingen formel international standard: kommentarstegn (; vs #) og escape-regler varierer på tværs af parsere.
- Fladt hierarki: understøtter ikke dybt indlejrede arrays eller komplekse strukturerede objekter uden tilpassede afgrænsere.
- Alle værdier læses som strenge, hvilket kræver, at applikationer manuelt parser heltal, booleske værdier og flydende tal.
Interessante tekniske fakta
- I Windows 3.1 blev hver eneste indstilling i hele operativsystemet gemt i blot to filer: WIN.INI og SYSTEM.INI.
- Git bruger INI-formatet til sin primære lagringskonfigurationsfil placeret i '.git/config'.
- Skrivebordsgenvejsfiler på Linux (XDG Desktop Entry '.desktop'-filer) er struktureret ved hjælp af standard INI-syntaks.
Ofte stillede tekniske spørgsmål
Hvad bruges en INI-fil til?
INI-filer bruges af skrivebordsprogrammer, spil og udviklerværktøjer (såsom Git-konfiguration og PHP.ini) til at gemme brugerpræferencer og konfigurationsindstillinger i et letlæseligt format.
Hvordan kan jeg redigere en INI-fil?
Du kan åbne og redigere INI-filer med en hvilken som helst simpel teksteditor som Notepad, TextEdit, VS Code eller direkte online ved hjælp af File2File.app.
Kan jeg konvertere INI til JSON eller YAML?
Ja. File2File.app kan øjeblikkeligt konvertere INI-filer til rene JSON-, YAML- eller TOML-formater direkte i din browser.